public inbox for linux-rdma@vger.kernel.org
 help / color / mirror / Atom feed
From: Doug Ledford <dledford-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
To: Yishai Hadas <yishaih-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
Cc: linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	matanb-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org,
	alexv-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org,
	tzahio-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org,
	majd-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org,
	talal-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org
Subject: Re: [PATCH V4 for-next 00/10] Verbs RSS
Date: Thu, 23 Jun 2016 11:11:39 -0400	[thread overview]
Message-ID: <1913d962-c78d-e7db-c711-ddd0b1386e2f@redhat.com> (raw)
In-Reply-To: <1464006056-19653-1-git-send-email-yishaih-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>

[-- Attachment #1: Type: text/plain, Size: 6542 bytes --]

On 05/23/2016 08:20 AM, Yishai Hadas wrote:
> Hi Doug,
> 
> This V4 series addressed the note to move RSS hash capabilities
> from the common udata to be part of vendor specific data.
> As was agreed in the OFAWG meeting, WQ and indirection table
> are common objects. The last 3 patches were changed
> accordingly.
> 
> As the RSS series already missed few kernel merging, would appreciate
> if it can be taken into 4.7.

I've taken this in for 4.8.  It's in my mlx5-4.8 topic branch since it
is so intertwined with mlx5.

> Thanks,
> Yishai
>  
> 
> RSS (Receive Side Scaling) technology allows to spread incoming traffic
> between different receive descriptor queues.
> Assigning each queue to different CPU cores allows to better load
> balance the incoming traffic and improve performance.
> 
> This patch-set introduces some new objects and verbs in order to allow
> verbs based solutions to utilize the RSS offload capability which is
> widely supported today by many modern NICs. It extends the IB and uverbs
> layers to support the above functionality and supplies a specific
> implementation for the mlx5_ib driver.
> 
> The implementation is based on an RFC that was sent to the list some
> months ago and describes the expected verbs and objects.
> RFC: http://www.spinics.net/lists/linux-rdma/msg25012.html
> 
> In addition, below URL can be used as a reference to the motivation and
> the justification to add the new objects that are described below.
> http://lxr.free-electrons.com/source/Documentation/networking/scaling.txt
> 
> Overview of the changes:
> - Add new objects: Work Queue and Receive Work Queues Indirection Table.
> - Add new verbs that are required to handle the new objects:
>   ib_create_wq(), ib_modify_wq(), ib_destory_wq(),
>   ib_create_rwq_ind_table(), ib_destroy_rwq_ind_table().
> - Extend ib_create_qp() to get Receive Work Queues Indirection Table.
> 
> Work Queue: (ib_wq)
> - Work Queue is associated (many to one) with  Completion Queue.
> - It owns Work Queue properties (PD, WQ size etc.).
> - Currently Work Queue type can be IB_WQT_RQ (receive queue), other ones
>   may be added in the future. (e.g. IB_WQT_SQ, send queue)
> - Work Queue from type IB_WQT_RQ contains receive work requests.
> - Work Queue context is subject to a well-defined state transitions done
>   by the modify_wq verb.
> - Work Queue is a necessary component for RSS technology since RSS
>   mechanism is supposed to distribute the traffic between multiple
>   Receive Work Queues.
> 
> Receive Work Queue Indirection Table: (ib_rwq_ind_tbl)
> - Serves to spread traffic between Work Queues from type RQ.
> - Can be modified dynamically to give different queues different relative
>   weights.
> - The receive queue for a packet is determined by computed hash for the
>   incoming packet.
> - Receive Work Queue Indirection Table is associated (one to many) with QPs.
> 
> RSS hashing configuration:
> - Should be used to compute the required RQ entry for the incoming packet.
> - It includes:
>     * The hashing function used to choose the WQ from this table.
>     * The packet's properties that the hashing function should use.
>     * Was changed to be vendor specific based on OFAWG verbs discussion.
> 
> Future extensions to this patch-set:
> - Add ib_modify_rwq_ind_table() verb to enable a dynamic RQ mapping change.
> - Reflect RSS capabilities by the query device verb.
> - User space support (i.e. libibverbs/vendor drivers) to expose the new verbs
>   and objects.
> 
> Patches:
> #1:  Exposes the required APIs from mlx5_core to be used in coming patches
>      by mlx5_ib driver.
> #2:  Introduces the Work Queue object and its verbs in the IB layer.
> #3:  Adds uverbs support for the Work Queue verbs.
> #4:  Implements the Work Queue verbs in mlx5_ib driver.
> #5:  Introduces Receive Work Queue indirection table and its verbs in
>      the IB layer.
> #6:  Adds uverbs support for the Receive Work Queue indirection table verbs.
> #7:  Implements the Receive Work Queue indirection table verbs in mlx5_ib driver.
> #8:  Extends create QP to get indirection table in the IB layer.
> #9:  Extends create QP to get indirection table in the uverbs layer.
> #10: Adds RSS QP support in mlx5_ib driver.
> 
> Changes from V3:
> Move hash properties from the common udata to be vendor specific data.
> 
> Changes from V2:
> - Improve the new verbs to enable clean future extensions in both uverbs
>   and mlx5_ib layers.
> - Add the last three patches to enable RSS QP creation.
> 
> Changes from V1:
> #patch #2: Change ib_modify_wq to use u32 instead of enum for bit wise values.
> #patch #3: Improve usage of attr_mask/comp_mask.
> #patch #4: Fix driver issue in mlx5_ib in PPC.
> #patch #6: Limit un-expected memory allocation.
> 
> Changes from V0:
> patch #2: Move the new verbs documentation to be in the C file,
>           improve the commit message.
> patch #5: Move the new verbs documentation to be in the C file.
> 
> Yishai Hadas (10):
>   net/mlx5: Export required core functions to support RSS
>   IB/core: Introduce Work Queue object and its verbs
>   IB/uverbs: Add WQ support
>   IB/mlx5: Add receive Work Queue verbs
>   IB/core: Introduce Receive Work Queue indirection table
>   IB/uverbs: Introduce RWQ Indirection table
>   IB/mlx5: Add Receive Work Queue Indirection table operations
>   IB/core: Extend create QP to get indirection table
>   IB/uverbs: Extend create QP to get RWQ indirection table
>   IB/mlx5: Add RSS QP support
> 
>  drivers/infiniband/core/uverbs.h                   |  12 +
>  drivers/infiniband/core/uverbs_cmd.c               | 528 ++++++++++++++++++-
>  drivers/infiniband/core/uverbs_main.c              |  38 ++
>  drivers/infiniband/core/verbs.c                    | 163 +++++-
>  drivers/infiniband/hw/mlx5/main.c                  |  12 +-
>  drivers/infiniband/hw/mlx5/mlx5_ib.h               |  54 ++
>  drivers/infiniband/hw/mlx5/qp.c                    | 584 +++++++++++++++++++++
>  drivers/infiniband/hw/mlx5/user.h                  |  64 +++
>  drivers/net/ethernet/mellanox/mlx5/core/transobj.c |   4 +
>  include/rdma/ib_verbs.h                            |  85 ++-
>  include/uapi/rdma/ib_user_verbs.h                  |  77 +++
>  11 files changed, 1605 insertions(+), 16 deletions(-)
> 


-- 
Doug Ledford <dledford-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
              GPG KeyID: 0E572FDD



[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 884 bytes --]

      parent reply	other threads:[~2016-06-23 15:11 UTC|newest]

Thread overview: 36+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-05-23 12:20 [PATCH V4 for-next 00/10] Verbs RSS Yishai Hadas
     [not found] ` <1464006056-19653-1-git-send-email-yishaih-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
2016-05-23 12:20   ` [PATCH V4 for-next 01/10] net/mlx5: Export required core functions to support RSS Yishai Hadas
     [not found]     ` <1464006056-19653-2-git-send-email-yishaih-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
2016-05-29 12:48       ` Sagi Grimberg
2016-05-23 12:20   ` [PATCH V4 for-next 02/10] IB/core: Introduce Work Queue object and its verbs Yishai Hadas
     [not found]     ` <1464006056-19653-3-git-send-email-yishaih-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
2016-05-23 16:57       ` Steve Wise
     [not found]         ` <5d0982d2-3b07-11a3-a74c-a52b8e9fb392-7bPotxP6k4+P2YhJcF5u+vpXobYPEAuW@public.gmane.org>
2016-05-24  8:50           ` Yishai Hadas
     [not found]             ` <d2401170-0ff4-c39a-d7c6-2a5face00fa2-LDSdmyG8hGV8YrgS2mwiifqBs+8SCbDb@public.gmane.org>
2016-05-24 14:25               ` Steve Wise
2016-05-24 14:51                 ` Yishai Hadas
2016-05-29 12:51       ` Sagi Grimberg
     [not found]         ` <574AE5C4.5010707-NQWnxTmZq1alnMjI0IkVqw@public.gmane.org>
2016-05-29 12:56           ` Sagi Grimberg
     [not found]             ` <574AE710.3070901-NQWnxTmZq1alnMjI0IkVqw@public.gmane.org>
2016-05-29 13:30               ` Yishai Hadas
     [not found]                 ` <7747beea-5c96-6c17-a87e-a16a45252487-LDSdmyG8hGV8YrgS2mwiifqBs+8SCbDb@public.gmane.org>
2016-05-30  6:38                   ` Sagi Grimberg
2016-05-23 12:20   ` [PATCH V4 for-next 03/10] IB/uverbs: Add WQ support Yishai Hadas
     [not found]     ` <1464006056-19653-4-git-send-email-yishaih-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
2016-05-29 12:57       ` Sagi Grimberg
2016-05-23 12:20   ` [PATCH V4 for-next 04/10] IB/mlx5: Add receive Work Queue verbs Yishai Hadas
     [not found]     ` <1464006056-19653-5-git-send-email-yishaih-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
2016-05-29 13:02       ` Sagi Grimberg
2016-05-30 20:13       ` Or Gerlitz
2016-05-23 12:20   ` [PATCH V4 for-next 05/10] IB/core: Introduce Receive Work Queue indirection table Yishai Hadas
     [not found]     ` <1464006056-19653-6-git-send-email-yishaih-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
2016-05-23 17:07       ` Steve Wise
2016-05-24  7:39         ` Yishai Hadas
     [not found]           ` <46a7de86-dffe-e44c-3768-10dfb70e8802-LDSdmyG8hGV8YrgS2mwiifqBs+8SCbDb@public.gmane.org>
2016-05-24 14:02             ` Steve Wise
2016-05-29 13:06       ` Sagi Grimberg
2016-05-23 12:20   ` [PATCH V4 for-next 06/10] IB/uverbs: Introduce RWQ Indirection table Yishai Hadas
     [not found]     ` <1464006056-19653-7-git-send-email-yishaih-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
2016-05-29 13:07       ` Sagi Grimberg
2016-05-23 12:20   ` [PATCH V4 for-next 07/10] IB/mlx5: Add Receive Work Queue Indirection table operations Yishai Hadas
     [not found]     ` <1464006056-19653-8-git-send-email-yishaih-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
2016-05-29 13:08       ` Sagi Grimberg
2016-05-23 12:20   ` [PATCH V4 for-next 08/10] IB/core: Extend create QP to get indirection table Yishai Hadas
     [not found]     ` <1464006056-19653-9-git-send-email-yishaih-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
2016-05-29 13:11       ` Sagi Grimberg
     [not found]         ` <574AEA8D.2010909-NQWnxTmZq1alnMjI0IkVqw@public.gmane.org>
2016-05-29 13:55           ` Yishai Hadas
     [not found]             ` <d34f7f40-5e05-2eb9-4b81-649b2cb11174-LDSdmyG8hGV8YrgS2mwiifqBs+8SCbDb@public.gmane.org>
2016-05-30  6:43               ` Sagi Grimberg
2016-05-23 12:20   ` [PATCH V4 for-next 09/10] IB/uverbs: Extend create QP to get RWQ " Yishai Hadas
     [not found]     ` <1464006056-19653-10-git-send-email-yishaih-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
2016-05-29 13:12       ` Sagi Grimberg
2016-05-23 12:20   ` [PATCH V4 for-next 10/10] IB/mlx5: Add RSS QP support Yishai Hadas
     [not found]     ` <1464006056-19653-11-git-send-email-yishaih-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
2016-05-29 13:16       ` Sagi Grimberg
2016-05-29 11:27   ` [PATCH V4 for-next 00/10] Verbs RSS Yuval Shaia
2016-06-23 15:11   ` Doug Ledford [this message]

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=1913d962-c78d-e7db-c711-ddd0b1386e2f@redhat.com \
    --to=dledford-h+wxahxf7alqt0dzr+alfa@public.gmane.org \
    --cc=alexv-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org \
    --cc=linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=majd-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org \
    --cc=matanb-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org \
    --cc=talal-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org \
    --cc=tzahio-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org \
    --cc=yishaih-VPRAkNaXOzVWk0Htik3J/w@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