netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v3 net-next 00/22] bnx2x: support SR-IOV
@ 2012-12-10 15:46 Ariel Elior
  2012-12-10 15:46 ` [PATCH net-next v3 01/22] bnx2x: Support probing and removing of VF device Ariel Elior
                   ` (21 more replies)
  0 siblings, 22 replies; 27+ messages in thread
From: Ariel Elior @ 2012-12-10 15:46 UTC (permalink / raw)
  To: David Miller; +Cc: netdev, Ariel Elior

Hi Dave,

Changes for v2:
-Remove redundant empty lines
-Remove redundant 'inline'

Changes for v3:
-Really remove all redundant empty lines
-Remove __dev* attributes from series

This patch series adds support for SR-IOV in the bnx2x driver.
In bnx2x SR-IOV scheme the same bnx2x driver drives both VFs and PFs (single
binary).
The bulk of the communication between the VF drivers and the PF driver is done
via the VF <-> PF channel, a hardware-based communications channel with TLV
messages. The TLVs are designed to support different versions of VF drivers
(from multiple VMs) communicating with the same PF driver.

Patches:
01-03 - Probing and removing a VF driver
Includes sending the 'acquire' and 'release' messages on the VF PF channel.
Here the VF PF channel infrastructure is added, including the allocations of
the mailboxes and the definition of thin API structures (which will fill out 
with more content as the series progresses).

04-07 - Loading/Unloading a VF driver
Includes refactoring of the driver load code and differentiating the VF flow
from the PF flow. This also includes requests from the VF for the PF to open
a queue in the HW on its behalf, configure the device with macs/vlans/rxmode
data, etc. Likewise the unload flow has been modified for the PF to undo these
configurations when the VF indicates it is going down.

08    - Modify fastpath flows for VFs
VFs have almost identical behavior in fastpath to PFs. In this patch the
VFs prepare transmit transaction for tx-switching, and the code for acking a
fastpath interrupt has been reorganized to allow a VF or PF to preconfigure the
offset of the interrupt's location in the BAR (as they have BARs with different
mapping) so as not to do so in fastpath.

09-10 - Probe and Load a PF driver with SR-IOV
The PF driver allocates and initializes the VF database to manage and keep track
of its VFs, their resources, queues, etc.

11-19 - The PF side of the VF <-> PF channel requests
Here is the implementation on the PF's side of the requests submitted in patches
01 through 07 by the VF. Patch 14 adds support for statistics collection by the 
PF for all of its VFs (stats are DMAEed directly to VM GPA memory).

20    - Support for VF function level reset
When FLR indication is received for VFs, the PF reclaims all the resources
allocated for these VFs (interrupts, queues) and releases allocation it
performed for the FLRed VFs (it does so by consulting the VF database).

21    - Bulletin Board interface
This patch adds the PF <-> VF Bulletin Board interface. This interface is a
simple interface where the PF can be the initiator, and indicate to a VF that
it has a new MAC for it to use. In this interface each post "covers" any
previous posts (hence the name).

22    - Add the VF device ids and enable feature
In this patch we add the VF device ids of the various devices driven by bnx2x.
Here we also add the calls to "pci_enable_sriov" and "pci_disable_sriov".

Important: In this patch series we have laid the ground work for interfacing
with the infrastructure submitted to the PCI tree for dynamically controlling
the number of VFs of a physical device.

Meanwhile, in patch 9 this code is added to bnx2x_init_one():
--snip snip--
rc = bnx2x_iov_init_one(bp, int_mode, 0/*num vfs*/);
--snip snip--
recompiling the bnx2x with a number of vfs which is not 0 will enable SR-IOV
with that number of VFs.

Please consider applying these patches.

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

end of thread, other threads:[~2012-12-10 18:50 UTC | newest]

Thread overview: 27+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-12-10 15:46 [PATCH v3 net-next 00/22] bnx2x: support SR-IOV Ariel Elior
2012-12-10 15:46 ` [PATCH net-next v3 01/22] bnx2x: Support probing and removing of VF device Ariel Elior
2012-12-10 18:35   ` David Miller
2012-12-10 18:50     ` Joe Perches
2012-12-10 15:46 ` [PATCH net-next v3 02/22] bnx2x: VF <-> PF channel 'acquire' at vf probe Ariel Elior
2012-12-10 18:37   ` David Miller
2012-12-10 15:46 ` [PATCH net-next v3 03/22] bnx2x: Add to VF <-> PF channel the release request Ariel Elior
2012-12-10 18:39   ` David Miller
2012-12-10 15:46 ` [PATCH net-next v3 04/22] bnx2x: Separate VF and PF logic Ariel Elior
2012-12-10 15:46 ` [PATCH net-next v3 05/22] bnx2x: Add init, setup_q, set_mac to VF <-> PF channel Ariel Elior
2012-12-10 15:46 ` [PATCH net-next v3 06/22] bnx2x: Add teardown_q and close " Ariel Elior
2012-12-10 15:46 ` [PATCH net-next v3 07/22] bnx2x: Support ndo_set_rxmode in VF driver Ariel Elior
2012-12-10 15:46 ` [PATCH net-next v3 08/22] bnx2x: VF fastpath Ariel Elior
2012-12-10 15:46 ` [PATCH net-next v3 09/22] bnx2x: Allocate VF database in PF when VFs are present Ariel Elior
2012-12-10 15:46 ` [PATCH net-next v3 10/22] bnx2x: Prepare device and initialize VF database Ariel Elior
2012-12-10 15:46 ` [PATCH net-next v3 11/22] bnx2x: Infrastructure for VF <-> PF request on PF side Ariel Elior
2012-12-10 15:46 ` [PATCH net-next v3 12/22] bnx2x: Support of PF driver of a VF acquire request Ariel Elior
2012-12-10 15:46 ` [PATCH net-next v3 13/22] bnx2x: Support of PF driver of a VF init request Ariel Elior
2012-12-10 15:46 ` [PATCH net-next v3 14/22] bnx2x: Support statistics collection for VFs by the PF Ariel Elior
2012-12-10 15:46 ` [PATCH net-next v3 15/22] bnx2x: Support of PF driver of a VF setup_q request Ariel Elior
2012-12-10 15:46 ` [PATCH net-next v3 16/22] bnx2x: Support of PF driver of a VF q_filters request Ariel Elior
2012-12-10 15:46 ` [PATCH net-next v3 17/22] bnx2x: Support of PF driver of a VF q_teardown request Ariel Elior
2012-12-10 15:46 ` [PATCH net-next v3 18/22] bnx2x: Support of PF driver of a VF close request Ariel Elior
2012-12-10 15:46 ` [PATCH net-next v3 19/22] bnx2x: Support of PF driver of a VF release request Ariel Elior
2012-12-10 15:46 ` [PATCH net-next v3 20/22] bnx2x: Support VF FLR Ariel Elior
2012-12-10 15:46 ` [PATCH net-next v3 21/22] bnx2x: Support PF <-> VF Bulletin Board Ariel Elior
2012-12-10 15:46 ` [PATCH net-next v3 22/22] bnx2x: Add VF device ids and enable feature Ariel Elior

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).