ping
W dniu 26.08.2016 o 18:53, Kamil Rytarowski pisze: > This series of patches adds support for secondary queue set in nicvf thunderx > driver > > There are two types of VFs: > - Primary VF > - Secondary VF > > Each port consist of a primary VF and n secondary VF(s). Each VF provides 8 > Tx/Rx queues to a port. In case port is configured to use more than 8 queues, > then it requires one (or more) secondary VF. Each secondary VF adds additional > 8 queues to the queue set. > > During PMD driver initialization, the primary VF's are enumerated by checking > the > specific flag (see READY message). They are at the beginning of VF list (the > remain > ones are secondary VF's). > > The primary VFs are used as master queue sets. Secondary VFs provide > additional queue sets for primary ones. If a port is configured for more then > 8 queues then it will request for additional queues from secondary VFs. > > Secondary VFs cannot be shared between primary VFs. > > Primary VFs are present on the tail of the 'Network devices using kernel > driver' list, secondary VFs are on the remaining tail of the list. > > The VNIC driver in the multiqueue setup works differently than other drivers > like `ixgbe`. We need to bind separately each specific queue set device with > the ``tools/dpdk-devbind.py`` utility. > > Depending on the hardware used, the kernel driver sets a threshold ``vf_id``. > VFs that try to attach with an id below or equal to this boundary are > considered primary VFs. VFs that try to attach with an id above this boundary > are considered secondary VFs. > > This patchset also contains other cleanups and improvements like fixing > erroneous checksum calculation and preparing the thunderx driver for the multi > queue set feature support. > > > These changes base on the following pending patches: > > [dpdk-dev,1/3] net/thunderx: remove generic passx references from the driver > http://dpdk.org/dev/patchwork/patch/14963/ > > [dpdk-dev,2/3] net/thunderx: introduce cqe_rx2 HW capability flag > http://dpdk.org/dev/patchwork/patch/14964/ > > [dpdk-dev,3/3] net/thunderx: add 81xx SoC support > http://dpdk.org/dev/patchwork/patch/14965/ > > Kamil Rytarowski (13): > net/thunderx: cleanup the driver before adding new features > net/thunderx: correct transmit checksum handling > net/thunderx/base: add family of functions to store qsets > net/thunderx/base: add secondary queue set support > net/thunderx: add family of functions to store DPDK qsets > net/thunderx: add secondary queue set in interrupt functions > net/thunderx: fix multiprocess support in stats > net/thunderx: add helper utils for secondary qset support > net/thunderx: add secondary qset support in dev stop/close > net/thunderx: add secondary qset support in device start > net/thunderx: add secondary qset support in device configure > net/thunderx: add final bits for secondary queue support > net/thunderx: document secondary queue set support > > doc/guides/nics/thunderx.rst | 114 ++++- > drivers/net/thunderx/Makefile | 2 + > drivers/net/thunderx/base/nicvf_bsvf.c | 72 +++ > drivers/net/thunderx/base/nicvf_bsvf.h | 76 +++ > drivers/net/thunderx/base/nicvf_hw.c | 10 +- > drivers/net/thunderx/base/nicvf_hw.h | 6 +- > drivers/net/thunderx/base/nicvf_hw_defs.h | 1 + > drivers/net/thunderx/base/nicvf_mbox.c | 34 +- > drivers/net/thunderx/base/nicvf_mbox.h | 21 +- > drivers/net/thunderx/nicvf_ethdev.c | 753 > +++++++++++++++++++++--------- > drivers/net/thunderx/nicvf_ethdev.h | 39 ++ > drivers/net/thunderx/nicvf_rxtx.c | 14 +- > drivers/net/thunderx/nicvf_struct.h | 6 +- > drivers/net/thunderx/nicvf_svf.c | 78 ++++ > drivers/net/thunderx/nicvf_svf.h | 66 +++ > 15 files changed, 1046 insertions(+), 246 deletions(-) > create mode 100644 drivers/net/thunderx/base/nicvf_bsvf.c > create mode 100644 drivers/net/thunderx/base/nicvf_bsvf.h > create mode 100644 drivers/net/thunderx/nicvf_svf.c > create mode 100644 drivers/net/thunderx/nicvf_svf.h >