All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH libmlx5 0/7] Completion timestamping
@ 2015-11-15 12:30 Matan Barak
       [not found] ` <1447590634-12858-1-git-send-email-matanb-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
  0 siblings, 1 reply; 13+ messages in thread
From: Matan Barak @ 2015-11-15 12:30 UTC (permalink / raw)
  To: Eli Cohen
  Cc: linux-rdma-u79uwXL29TY76Z2rM5mHXA, Doug Ledford, Matan Barak,
	Eran Ben Elisha, Christoph Lameter

Hi Eli,

This series adds support for completion timestamp. In order to
support this feature, several extended verbs were implemented
(as instructed in libibverbs).

ibv_query_device_ex was extended to support reading the
hca_core_clock and timestamp mask. The same verb was extended
with vendor dependant data which is used in order to map the
HCA's free running clock register.
When libmlx5 initializes, it tries to mmap this free running
clock register. This mapping is used in order to implement
ibv_query_values_ex efficiently.

In order to support CQ completion timestmap reporting, we implement
ibv_create_cq_ex verb. This verb is used both for creating a CQ
which supports timestamp and in order to state which fields should
be returned via WC. Returning this data is done via implementing
ibv_poll_cq_ex. We query the CQ requested wc_flags for every field
the user has requested and populate it according to the carried
network operation and WC status.

Last but not least, ibv_poll_cq_ex was optimized in order to eliminate
the if statements and or operations for common combinations of wc
fields. This is done by inlining and using a custom poll_one_ex
function for these fields.

Thanks,
Matan

Matan Barak (7):
  Add timestamp support query_device_ex
  Add ibv_poll_cq_ex support
  Add timestmap support for ibv_poll_cq_ex
  Add ibv_create_cq_ex support
  Add ibv_query_values support
  Optimize poll_cq
  Add always_inline check

 configure.ac   |  17 +
 src/cq.c       | 959 ++++++++++++++++++++++++++++++++++++++++++++++++---------
 src/mlx5-abi.h |   9 +
 src/mlx5.c     |  44 +++
 src/mlx5.h     |  46 ++-
 src/verbs.c    | 153 ++++++++-
 6 files changed, 1073 insertions(+), 155 deletions(-)

-- 
2.1.0

--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 13+ messages in thread
* [PATCH libmlx5 0/7] Completion timestamping
@ 2016-06-01 13:47 Yishai Hadas
  0 siblings, 0 replies; 13+ messages in thread
From: Yishai Hadas @ 2016-06-01 13:47 UTC (permalink / raw)
  To: dledford-H+wXaHxf7aLQT0dZR+AlfA
  Cc: linux-rdma-u79uwXL29TY76Z2rM5mHXA,
	yishaih-VPRAkNaXOzVWk0Htik3J/w, matanb-VPRAkNaXOzVWk0Htik3J/w,
	majd-VPRAkNaXOzVWk0Htik3J/w, talal-VPRAkNaXOzVWk0Htik3J/w,
	jgunthorpe-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/

Hi Doug,

This series from Matan and me implements the libibverbs
'Completion timestamping' API.

It can serve as some vendor code to justify the new API,
from both clarity and performance aspects.

As already pointed,
Benchmarks we ran in our test lab found that this new approach generally
equals to current API but *not* worse than. As the new API enables
extending the polled fields we can overall say that it's a better API than
the legacy one.

Yishai
 


Matan Barak (4):
  Refactor mlx5_poll_one
  Add support for creating an extended CQ
  Add ibv_query_rt_values support
  Use configuration symbol for always in-line

Yishai Hadas (3):
  Add lazy CQ polling
  Add inline functions to read completion's attributes
  Add ability to poll CQs through iterator's style API

 Makefile.am                 |   1 +
 configure.ac                |   3 +
 m4/ax_gcc_func_attribute.m4 | 223 +++++++++++++
 src/cq.c                    | 745 ++++++++++++++++++++++++++++++++++++++++----
 src/mlx5-abi.h              |   5 +
 src/mlx5.c                  |  38 +++
 src/mlx5.h                  |  34 +-
 src/verbs.c                 | 139 ++++++++-
 8 files changed, 1106 insertions(+), 82 deletions(-)
 create mode 100644 m4/ax_gcc_func_attribute.m4

-- 
1.8.3.1

--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2016-06-01 13:47 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-11-15 12:30 [PATCH libmlx5 0/7] Completion timestamping Matan Barak
     [not found] ` <1447590634-12858-1-git-send-email-matanb-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
2015-11-15 12:30   ` [PATCH libmlx5 1/7] Add timestamp support query_device_ex Matan Barak
2015-11-15 12:30   ` [PATCH libmlx5 2/7] Add ibv_poll_cq_ex support Matan Barak
2015-11-15 12:30   ` [PATCH libmlx5 3/7] Add timestmap support for ibv_poll_cq_ex Matan Barak
2015-11-15 12:30   ` [PATCH libmlx5 4/7] Add ibv_create_cq_ex support Matan Barak
2015-11-15 12:30   ` [PATCH libmlx5 5/7] Add ibv_query_values support Matan Barak
2015-11-15 12:30   ` [PATCH libmlx5 6/7] Optimize poll_cq Matan Barak
2015-11-15 12:30   ` [PATCH libmlx5 7/7] Add always_inline check Matan Barak
2015-11-15 18:11   ` [PATCH libmlx5 0/7] Completion timestamping Christoph Lameter
     [not found]     ` <alpine.DEB.2.20.1511151209290.31074-wcBtFHqTun5QOdAKl3ChDw@public.gmane.org>
2015-11-16  9:07       ` Matan Barak
2015-11-16 15:46   ` Tom Talpey
     [not found]     ` <5649FA3F.2050209-CLs1Zie5N5HQT0dZR+AlfA@public.gmane.org>
2015-11-16 16:30       ` Matan Barak
2016-06-01 13:47 Yishai Hadas

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.