RE: [PATCH RESEND net] ice: Correctly deal with PFs that do not support RDMA
From: "Ertman, David M" <david.m.ertman@intel.com>
Date: 2021-09-13 16:08:07
Also in:
intel-wired-lan, lkml, netdev
-----Original Message----- From: Saleem, Shiraz <redacted> Sent: Monday, September 13, 2021 8:50 AM To: Leon Romanovsky <leon@kernel.org>; Ertman, David M [off-list ref] Cc: davem@davemloft.net; kuba@kernel.org; yongxin.liu@windriver.com; Nguyen, Anthony L [off-list ref]; netdev@vger.kernel.org; linux-kernel@vger.kernel.org; Brandeburg, Jesse [off-list ref]; intel-wired-lan@lists.osuosl.org; linux- rdma@vger.kernel.org; jgg@ziepe.ca; Williams, Dan J [off-list ref]; Singhai, Anjali [off-list ref]; Parikh, Neerav [off-list ref]; Samudrala, Sridhar [off-list ref] Subject: RE: [PATCH RESEND net] ice: Correctly deal with PFs that do not support RDMAquoted
Subject: Re: [PATCH RESEND net] ice: Correctly deal with PFs that do not support RDMA On Thu, Sep 09, 2021 at 08:12:23AM -0700, Dave Ertman wrote:quoted
There are two cases where the current PF does not support RDMA functionality. The first is if the NVM loaded on the device is set to not support RDMA (common_caps.rdma is false). The second is if the kernel bonding driver has included the current PF in an active link aggregate. When the driver has determined that this PF does not support RDMA, then auxiliary devices should not be created on the auxiliary bus.This part is wrong, auxiliary devices should always be created, in your case itwillquoted
be one eth device only without extra irdma device.It is worth considering having an eth aux device/driver but is it a hard-and- fast rule? In this case, the RDMA-capable PCI network device spawns an auxiliary device for RDMA and the core driver is a network driver.quoted
Your "bug" is that you mixed auxiliary bus devices with "regular" ones andcreatedquoted
eth device not as auxiliary one. This is why you are calling toauxiliary_device_init()quoted
for RDMA only and fallback to non-auxiliary mode.It's a design choice on how you carve out function(s) off your PCI core device to be managed by auxiliary driver(s) and not a bug. Shiraz
Also, regardless of whether netdev functionality is carved out into an auxiliary device or not, this code would still be necessary. We don't want to carve out an auxiliary device to support a functionality that the base PCI device does not support. Not having the RDMA auxiliary device for an auxiliary driver to bind to is how we differentiate between devices that support RDMA and those that don't. Thanks, DaveE