linux-rdma.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Leon Romanovsky <leon-2ukJVAZIZ/Y@public.gmane.org>
To: dledford-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org
Cc: linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	Leon Romanovsky <leonro-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
Subject: [PATCH V1 libibverbs 0/5] Add cross-channel support
Date: Sat, 16 Jan 2016 17:53:39 +0200	[thread overview]
Message-ID: <1452959624-29454-1-git-send-email-leon@leon.nu> (raw)

From: Leon Romanovsky <leonro-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>

The following set of patches adds cross-channel (CC) support
in the libibverbs.

The cross-channel feature allows to execute WQEs that involve
cross-channel synchronization of IO operations’ on different QPs.

Complex applications usually require synchronizations for IO
operations from multiple sources before continuing their
execution.

In order to implement this, the host software usually needs
to handle completions from each one of the receive queues
(arriving in arbitrary order), process the data after last
message arrival and only then post work request on the send
queue to send the combined data to its destination.

Execution of such operation generates multiple interrupts at
an unpredictable time with an overhead of interrupts handling
and context switches.

This patchset adds synchronization primitives which gives
ability to perform conditional operations and a following
submission will introduce arithmetic calculation offload.

Synchronization abilities combined with arithmetic calculations
will allow us to program complex scenarios with a single function
call, hereby significantly reducing overhead associated with IO
processing.

Patch #1 adds CQ ignore overrun flag.
Patch #2 implements QP flags to configure master/slave properties
         of queue.
Patch #3 expands work request structure to have cross-channel
         specific primitives.
Patch #4 exports cross-channel device capability flag.
Patch #5 provides an example of cross-channel synchronizations.

These patches were added on top of "Completion timestamping" [1]
and "Expose QP block self multicast loopback creation flag" [2]
series.

[1] https://www.mail-archive.com/linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org/msg28895.html
[2] http://comments.gmane.org/gmane.linux.drivers.rdma/30158

Changes from v0:
  * Enrich cover message and commit messages.
  * Add ibv_cc_pingpong example.
  * Add manual to all newly created flags.

Leon Romanovsky (5):
  Add CQ ignore overrun flag
  Add cross-channel QP flags
  Add cross-channel work requests primitives
  Export cross-channel capability flag
  Add an example of cross-channel synchronization

 Makefile.am                |   6 +-
 examples/.gitignore        |   1 +
 examples/cc_pingpong.c     | 991 +++++++++++++++++++++++++++++++++++++++++++++
 include/infiniband/verbs.h |  23 +-
 man/ibv_cc_pingpong.1      |  66 +++
 man/ibv_create_cq_ex.3     |  18 +-
 man/ibv_create_qp_ex.3     |  18 +-
 man/ibv_post_send.3        |  25 +-
 src/cmd.c                  |   5 +-
 9 files changed, 1141 insertions(+), 12 deletions(-)
 create mode 100644 examples/cc_pingpong.c
 create mode 100644 man/ibv_cc_pingpong.1

-- 
1.7.12.4
--
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

             reply	other threads:[~2016-01-16 15:53 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-01-16 15:53 Leon Romanovsky [this message]
     [not found] ` <1452959624-29454-1-git-send-email-leon-2ukJVAZIZ/Y@public.gmane.org>
2016-01-16 15:53   ` [PATCH libibverbs V1 1/5] Add CQ ignore overrun flag Leon Romanovsky
2016-01-16 15:53   ` [PATCH libibverbs V1 2/5] Add cross-channel QP flags Leon Romanovsky
2016-01-16 15:53   ` [PATCH libibverbs V1 3/5] Add cross-channel work requests primitives Leon Romanovsky
2016-01-16 15:53   ` [PATCH libibverbs V1 4/5] Export cross-channel capability flag Leon Romanovsky
2016-01-16 15:53   ` [PATCH libibverbs V1 5/5] Add an example of cross-channel synchronization Leon Romanovsky

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1452959624-29454-1-git-send-email-leon@leon.nu \
    --to=leon-2ukjvaziz/y@public.gmane.org \
    --cc=dledford-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org \
    --cc=leonro-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org \
    --cc=linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).