]> git.baikalelectronics.ru Git - kernel.git/commit
net/mlx5e: Add clock info page to mlx5 core devices
authorFeras Daoud <ferasda@mellanox.com>
Tue, 16 Jan 2018 18:08:40 +0000 (20:08 +0200)
committerDoug Ledford <dledford@redhat.com>
Thu, 18 Jan 2018 19:49:21 +0000 (14:49 -0500)
commit0fb5a326b20ee56cab2ccd7e564fcd26c301b112
treecb353d5f02e6d1c61c06a10fbdfd8798e41c808b
parente76849188cbb91b37d4c7ac6aa76061b9eb8d090
net/mlx5e: Add clock info page to mlx5 core devices

Adds a new page to mlx5 core containing clock info data that allows
user level applications to translate between cqe timestamp to
nanoseconds. The information stored into this page is represented
through mlx5_ib_clock_info.

In order to synchronize between kernel and user space a sequence
number is incremented at the beginning and end of each update.
An odd number means the data is being updated while an even means
the access was already done. To guarantee that the data structure
was accessed atomically user will:

repeat:
        seq1 = <read sequence>
        goto <repeate> while odd
        <read data structure>
        seq2 = <read sequence>
        if seq1 != seq2 goto repeat

Reviewed-by: Yishai Hadas <yishaih@mellanox.com>
Reviewed-by: Jason Gunthorpe <jgg@mellanox.com>
Reviewed-by: Alex Vesker <valex@mellanox.com>
Signed-off-by: Feras Daoud <ferasda@mellanox.com>
Signed-off-by: Eitan Rabin <rabin@mellanox.com>
Signed-off-by: Leon Romanovsky <leon@kernel.org>
Signed-off-by: Doug Ledford <dledford@redhat.com>
drivers/net/ethernet/mellanox/mlx5/core/lib/clock.c
include/linux/mlx5/driver.h
include/uapi/rdma/mlx5-abi.h