Message ID | 20210406210125.241-1-shiraz.saleem@intel.com (mailing list archive) |
---|---|
Headers | show |
Series | Add Intel Ethernet Protocol Driver for RDMA (irdma) | expand |
> Subject: [PATCH v4 00/23] Add Intel Ethernet Protocol Driver for RDMA (irdma) > > The following patch series introduces a unified Intel Ethernet Protocol Driver for > RDMA (irdma) for the X722 iWARP device and a new E810 device which supports > iWARP and RoCEv2. The irdma module replaces the legacy i40iw module for X722 > and extends the ABI already defined for i40iw. It is backward compatible with > legacy X722 rdma-core provider (libi40iw). > > X722 and E810 are PCI network devices that are RDMA capable. The RDMA block > of this parent device is represented via an auxiliary device exported to 'irdma' > using the core auxiliary bus infrastructure recently added for 5.11 kernel. > The parent PCI netdev drivers 'i40e' and 'ice' register auxiliary RDMA devices with > private data/ops encapsulated that bind to auxiliary drivers registered in irdma > module. > > This patchset was initially submitted as an RFC where in we got feedback to come > up with a generic scheme for RDMA drivers to attach to a PCI device owned by > netdev PCI driver [1]. Solutions using platform bus and MFD were explored but > rejected by the community and the consensus was to add a new bus infrastructure > to support this usage model. > > Further revisions of this series along with the auxiliary bus were submitted [2]. At > this point, Greg KH requested that we take the auxiliary bus review and revision > process to an internal mailing list and garner the buy-in of a respected kernel > contributor, along with consensus of all major stakeholders including Nvidia (for > mlx5 sub-function use-case) and Intel sound driver. This process took a while and > stalled further development/review of this netdev/irdma series. > The auxiliary bus was eventually merged in 5.11. > > Between v1 to v2 of this submission, the IIDC went through a major re-write based > on the feedback and we hope it is now more in alignment with what the community > wants. > > This series is built against rdma for-next and currently includes the netdev patches > for ease of review. This includes updates to 'ice' driver to provide RDMA support > and converts 'i40e' driver to use the auxiliary bus infrastructure. > Once the patches are closer to merging, a shared pull request will be submitted. > > v3-->v4: > * Fixup W=1 warnings in ice patches > * Fix issues uncovered by pyverbs for create user AH and multicast > * Fix descriptor set issue for fast register introduced during port to FIELD_PREP > in v2 submission > > v2-->v3: > * rebase rdma for-next. Adapt to core change '1fb7f8973f51 ("RDMA: Support > more than 255 rdma ports")' > * irdma Kconfig updates to conform with linux coding style. > * Fix a 0-day build issue > * Remove rdma_resource_limits selector devlink param. Follow on patch to be > submitted for it with suggestion from Parav to use devlink resource. > * Capitalize abbreviations in ice idc. e.g. 'aux' to 'AUX' > > v1-->v2: > * Remove IIDC channel OPs - open, close, peer_register and peer_unregister. > And all its associated FSM in ice PCI core driver. > * Use device_lock in ice PCI core driver while issuing IIDC ops callbacks. > * Remove peer_* verbiage from shared IIDC header and rename the structs and > channel ops > with iidc_core*/iidc_auxiliary*. > * Allocate ib_device at start and register it at the end of drv.probe() in irdma gen2 > auxiliary driver. > * Use ibdev_* printing extensively throughout most of the driver > Remove idev_to_dev, ihw_to_dev macros as no longer required in new print > scheme. > * Do not bump ABI ver. to 6 in irdma. Maintain irdma ABI ver. at 5 for legacy i40iw > user-provider compatibility. > * Add a boundary check in irdma_alloc_ucontext to fail binding with < 4 user-space > provider version. > * Remove devlink from irdma. Add 2 new rdma-related devlink parameters added > to ice PCI core driver. > * Use FIELD_PREP/FIELD_GET/GENMASK on get/set of descriptor fields versus > home grown ones LS_*/RS_*. > * Bind 2 separate auxiliary drivers in irdma - one for gen1 and one for gen2 and > future devices. > * Misc. driver fixes in irdma > > [1] https://patchwork.kernel.org/project/linux-rdma/patch/20190215171107.6464-2- > shiraz.saleem@intel.com/ > [2] https://lore.kernel.org/linux-rdma/20200520070415.3392210-1- > jeffrey.t.kirsher@intel.com/ > The irdma rdma-core provider will be send out shortly. Shiraz
On Tue, Apr 06, 2021 at 04:01:02PM -0500, Shiraz Saleem wrote: > Dave Ertman (4): > iidc: Introduce iidc.h > ice: Initialize RDMA support > ice: Implement iidc operations > ice: Register auxiliary device to provide RDMA > > Michael J. Ruhl (1): > RDMA/irdma: Add dynamic tracing for CM > > Mustafa Ismail (13): > RDMA/irdma: Register auxiliary driver and implement private channel > OPs > RDMA/irdma: Implement device initialization definitions > RDMA/irdma: Implement HW Admin Queue OPs > RDMA/irdma: Add HMC backing store setup functions > RDMA/irdma: Add privileged UDA queue implementation > RDMA/irdma: Add QoS definitions > RDMA/irdma: Add connection manager > RDMA/irdma: Add PBLE resource manager > RDMA/irdma: Implement device supported verb APIs > RDMA/irdma: Add RoCEv2 UD OP support > RDMA/irdma: Add user/kernel shared libraries > RDMA/irdma: Add miscellaneous utility definitions > RDMA/irdma: Add ABI definitions > > Shiraz Saleem (5): > ice: Add devlink params support > i40e: Prep i40e header for aux bus conversion > i40e: Register auxiliary devices to provide RDMA > RDMA/irdma: Add irdma Kconfig/Makefile and remove i40iw > RDMA/irdma: Update MAINTAINERS file This doesn't apply, and I don't really know why: Applying: iidc: Introduce iidc.h Applying: ice: Initialize RDMA support Applying: ice: Implement iidc operations Applying: ice: Register auxiliary device to provide RDMA Applying: ice: Add devlink params support Applying: i40e: Prep i40e header for aux bus conversion Applying: i40e: Register auxiliary devices to provide RDMA Applying: RDMA/irdma: Register auxiliary driver and implement private channel OPs Applying: RDMA/irdma: Implement device initialization definitions Applying: RDMA/irdma: Implement HW Admin Queue OPs Applying: RDMA/irdma: Add HMC backing store setup functions Applying: RDMA/irdma: Add privileged UDA queue implementation Applying: RDMA/irdma: Add QoS definitions Applying: RDMA/irdma: Add connection manager Applying: RDMA/irdma: Add PBLE resource manager Applying: RDMA/irdma: Implement device supported verb APIs Applying: RDMA/irdma: Add RoCEv2 UD OP support Applying: RDMA/irdma: Add user/kernel shared libraries Applying: RDMA/irdma: Add miscellaneous utility definitions Applying: RDMA/irdma: Add dynamic tracing for CM Applying: RDMA/irdma: Add ABI definitions Applying: RDMA/irdma: Add irdma Kconfig/Makefile and remove i40iw Using index info to reconstruct a base tree... error: removal patch leaves file contents error: drivers/infiniband/hw/i40iw/Kconfig: patch does not apply Can you investigate and fix it? Perhaps using a 9 year old version of git is the problem? Jason
> Subject: Re: [PATCH v4 00/23] Add Intel Ethernet Protocol Driver for RDMA > (irdma) > > On Tue, Apr 06, 2021 at 04:01:02PM -0500, Shiraz Saleem wrote: > > Dave Ertman (4): > > iidc: Introduce iidc.h > > ice: Initialize RDMA support > > ice: Implement iidc operations > > ice: Register auxiliary device to provide RDMA > > > > Michael J. Ruhl (1): > > RDMA/irdma: Add dynamic tracing for CM > > > > Mustafa Ismail (13): > > RDMA/irdma: Register auxiliary driver and implement private channel > > OPs > > RDMA/irdma: Implement device initialization definitions > > RDMA/irdma: Implement HW Admin Queue OPs > > RDMA/irdma: Add HMC backing store setup functions > > RDMA/irdma: Add privileged UDA queue implementation > > RDMA/irdma: Add QoS definitions > > RDMA/irdma: Add connection manager > > RDMA/irdma: Add PBLE resource manager > > RDMA/irdma: Implement device supported verb APIs > > RDMA/irdma: Add RoCEv2 UD OP support > > RDMA/irdma: Add user/kernel shared libraries > > RDMA/irdma: Add miscellaneous utility definitions > > RDMA/irdma: Add ABI definitions > > > > Shiraz Saleem (5): > > ice: Add devlink params support > > i40e: Prep i40e header for aux bus conversion > > i40e: Register auxiliary devices to provide RDMA > > RDMA/irdma: Add irdma Kconfig/Makefile and remove i40iw > > RDMA/irdma: Update MAINTAINERS file > > This doesn't apply, and I don't really know why: > > Applying: iidc: Introduce iidc.h > Applying: ice: Initialize RDMA support > Applying: ice: Implement iidc operations > Applying: ice: Register auxiliary device to provide RDMA > Applying: ice: Add devlink params support > Applying: i40e: Prep i40e header for aux bus conversion > Applying: i40e: Register auxiliary devices to provide RDMA > Applying: RDMA/irdma: Register auxiliary driver and implement private channel > OPs > Applying: RDMA/irdma: Implement device initialization definitions > Applying: RDMA/irdma: Implement HW Admin Queue OPs > Applying: RDMA/irdma: Add HMC backing store setup functions > Applying: RDMA/irdma: Add privileged UDA queue implementation > Applying: RDMA/irdma: Add QoS definitions > Applying: RDMA/irdma: Add connection manager > Applying: RDMA/irdma: Add PBLE resource manager > Applying: RDMA/irdma: Implement device supported verb APIs > Applying: RDMA/irdma: Add RoCEv2 UD OP support > Applying: RDMA/irdma: Add user/kernel shared libraries > Applying: RDMA/irdma: Add miscellaneous utility definitions > Applying: RDMA/irdma: Add dynamic tracing for CM > Applying: RDMA/irdma: Add ABI definitions > Applying: RDMA/irdma: Add irdma Kconfig/Makefile and remove i40iw Using index > info to reconstruct a base tree... > error: removal patch leaves file contents > error: drivers/infiniband/hw/i40iw/Kconfig: patch does not apply > > Can you investigate and fix it? Perhaps using a 9 year old version of git is the > problem? > Hi Jason - I think its because I used --irreversible-delete flag in git format-patch for review that this one doesn't apply. I can resend without it if your trying to apply. Shiraz
> Subject: RE: [PATCH v4 00/23] Add Intel Ethernet Protocol Driver for RDMA > (irdma) > > > Subject: Re: [PATCH v4 00/23] Add Intel Ethernet Protocol Driver for > > RDMA > > (irdma) > > > > On Tue, Apr 06, 2021 at 04:01:02PM -0500, Shiraz Saleem wrote: > > > Dave Ertman (4): > > > iidc: Introduce iidc.h > > > ice: Initialize RDMA support > > > ice: Implement iidc operations > > > ice: Register auxiliary device to provide RDMA > > > > > > Michael J. Ruhl (1): > > > RDMA/irdma: Add dynamic tracing for CM > > > > > > Mustafa Ismail (13): > > > RDMA/irdma: Register auxiliary driver and implement private channel > > > OPs > > > RDMA/irdma: Implement device initialization definitions > > > RDMA/irdma: Implement HW Admin Queue OPs > > > RDMA/irdma: Add HMC backing store setup functions > > > RDMA/irdma: Add privileged UDA queue implementation > > > RDMA/irdma: Add QoS definitions > > > RDMA/irdma: Add connection manager > > > RDMA/irdma: Add PBLE resource manager > > > RDMA/irdma: Implement device supported verb APIs > > > RDMA/irdma: Add RoCEv2 UD OP support > > > RDMA/irdma: Add user/kernel shared libraries > > > RDMA/irdma: Add miscellaneous utility definitions > > > RDMA/irdma: Add ABI definitions > > > > > > Shiraz Saleem (5): > > > ice: Add devlink params support > > > i40e: Prep i40e header for aux bus conversion > > > i40e: Register auxiliary devices to provide RDMA > > > RDMA/irdma: Add irdma Kconfig/Makefile and remove i40iw > > > RDMA/irdma: Update MAINTAINERS file > > > > This doesn't apply, and I don't really know why: > > > > Applying: iidc: Introduce iidc.h > > Applying: ice: Initialize RDMA support > > Applying: ice: Implement iidc operations > > Applying: ice: Register auxiliary device to provide RDMA > > Applying: ice: Add devlink params support > > Applying: i40e: Prep i40e header for aux bus conversion > > Applying: i40e: Register auxiliary devices to provide RDMA > > Applying: RDMA/irdma: Register auxiliary driver and implement private > > channel OPs > > Applying: RDMA/irdma: Implement device initialization definitions > > Applying: RDMA/irdma: Implement HW Admin Queue OPs > > Applying: RDMA/irdma: Add HMC backing store setup functions > > Applying: RDMA/irdma: Add privileged UDA queue implementation > > Applying: RDMA/irdma: Add QoS definitions > > Applying: RDMA/irdma: Add connection manager > > Applying: RDMA/irdma: Add PBLE resource manager > > Applying: RDMA/irdma: Implement device supported verb APIs > > Applying: RDMA/irdma: Add RoCEv2 UD OP support > > Applying: RDMA/irdma: Add user/kernel shared libraries > > Applying: RDMA/irdma: Add miscellaneous utility definitions > > Applying: RDMA/irdma: Add dynamic tracing for CM > > Applying: RDMA/irdma: Add ABI definitions > > Applying: RDMA/irdma: Add irdma Kconfig/Makefile and remove i40iw > > Using index info to reconstruct a base tree... > > error: removal patch leaves file contents > > error: drivers/infiniband/hw/i40iw/Kconfig: patch does not apply > > > > Can you investigate and fix it? Perhaps using a 9 year old version of > > git is the problem? > > > > Hi Jason - I think its because I used --irreversible-delete flag in git format-patch for > review that this one doesn't apply. > > I can resend without it if your trying to apply. > I resend it without using --irreversible-delete. Hopefully, it applies cleanly now.
On Tue, Apr 06, 2021 at 11:30:23PM +0000, Saleem, Shiraz wrote: > Hi Jason - I think its because I used --irreversible-delete flag in git format-patch for review that this one doesn't apply. I doubt it > I can resend without it if your trying to apply. Now it is too big to go to the mailing lists Jason
> Subject: Re: [PATCH v4 00/23] Add Intel Ethernet Protocol Driver for RDMA > (irdma) > > On Tue, Apr 06, 2021 at 11:30:23PM +0000, Saleem, Shiraz wrote: > > > Hi Jason - I think its because I used --irreversible-delete flag in git format-patch > for review that this one doesn't apply. > > I doubt it The documentation hints at it. https://git-scm.com/docs/git-format-patch -D --irreversible-delete Omit the preimage for deletes, i.e. print only the header but not the diff between the preimage and /dev/null. The resulting patch is not meant to be applied with patch or git apply; this is solely for people who want to just concentrate on reviewing the text after the change. In addition, the output obviously lacks enough information to apply such a patch in reverse, even manually, hence the name of the option. > > > I can resend without it if your trying to apply. > > Now it is too big to go to the mailing lists > It is showing now. https://patchwork.kernel.org/project/linux-rdma/patch/20210407001502.1890-23-shiraz.saleem@intel.com/