[dpdk-dev] [PATCH 00/17] Enhance mlx5 with Mellanox OFED 3.1

2015-10-07 Thread Joongi Kim
My laboratory (an.kaist.ac.kr) had tried to build a native kernel driver
for mlx4 a few months ago, and sent the full patch to the patchwork system:
http://dpdk.org/dev/patchwork/patch/6128/
This driver supports only minimal RX/TX of packets, and many standard
features such as VLAN are missing.

The major technical difficulty was to make a memory region that is
persistent even when the user process terminates. We have sent another
patch for this: http://dpdk.org/dev/patchwork/patch/6127/

Nonetheless, we abandoned this approach, because the new mlx4 PMD based on
OFED 3.0 performed almost same or better than our native driver with an
almost complete feature set. Still, I believe that there are rooms to
improve/optimize the native driver but we just do not have enough human
resources for that.
In background, we tried to publish a academic paper about an automated
convertor from Linux NIC drivers to DPDK poll-mode drivers, but
unfortunately this project is being hold back now.

Regards,
Joongi

2015? 10? 6? (?) ?? 5:54, Stephen Hemminger ??
??:

> On Mon,  5 Oct 2015 19:54:35 +0200
> Adrien Mazarguil  wrote:
>
> > Mellanox OFED 3.1 [1] comes with improved APIs that Mellanox ConnectX-4
> > (mlx5) adapters can take advantage of, such as:
> >
> > - Separate post and doorbell operations on all queues.
> > - Lightweight RX queues called Work Queues (WQs).
> > - Low-level RSS indirection table and hash key configuration.
> >
> > This patchset enhances mlx5 with all of these for better performance and
> > flexibility. Documentation is updated accordingly.
>
> Has anybody explored doing a driver without the dependency on OFED?
> It is certainly possible. The Linux kernel drivers don't depend on it.
> And dropping OFED would certainly be faster.
>


[dpdk-dev] [PATCH 00/17] Enhance mlx5 with Mellanox OFED 3.1

2015-10-06 Thread Vincent JARDIN
Le 6 oct. 2015 09:54, "Stephen Hemminger"  a
?crit :
>
> On Mon,  5 Oct 2015 19:54:35 +0200
> Adrien Mazarguil  wrote:
>
> > Mellanox OFED 3.1 [1] comes with improved APIs that Mellanox ConnectX-4
> > (mlx5) adapters can take advantage of, such as:
> >
> > - Separate post and doorbell operations on all queues.
> > - Lightweight RX queues called Work Queues (WQs).
> > - Low-level RSS indirection table and hash key configuration.
> >
> > This patchset enhances mlx5 with all of these for better performance and
> > flexibility. Documentation is updated accordingly.
>
> Has anybody explored doing a driver without the dependency on OFED?
> It is certainly possible. The Linux kernel drivers don't depend on it.
> And dropping OFED would certainly be faster.

OFED is an established kernel API. I agree that F from infiniband should be
deprecated since it has broader scope of use.

It avoid wasting effort by duplicating kernel's code.

It provides security too that UIO could not provide.

Best regards,
  Vincent


[dpdk-dev] [PATCH 00/17] Enhance mlx5 with Mellanox OFED 3.1

2015-10-06 Thread Stephen Hemminger
On Mon,  5 Oct 2015 19:54:35 +0200
Adrien Mazarguil  wrote:

> Mellanox OFED 3.1 [1] comes with improved APIs that Mellanox ConnectX-4
> (mlx5) adapters can take advantage of, such as:
> 
> - Separate post and doorbell operations on all queues.
> - Lightweight RX queues called Work Queues (WQs).
> - Low-level RSS indirection table and hash key configuration.
> 
> This patchset enhances mlx5 with all of these for better performance and
> flexibility. Documentation is updated accordingly.

Has anybody explored doing a driver without the dependency on OFED?
It is certainly possible. The Linux kernel drivers don't depend on it.
And dropping OFED would certainly be faster.


[dpdk-dev] [PATCH 00/17] Enhance mlx5 with Mellanox OFED 3.1

2015-10-05 Thread Adrien Mazarguil
Mellanox OFED 3.1 [1] comes with improved APIs that Mellanox ConnectX-4
(mlx5) adapters can take advantage of, such as:

- Separate post and doorbell operations on all queues.
- Lightweight RX queues called Work Queues (WQs).
- Low-level RSS indirection table and hash key configuration.

This patchset enhances mlx5 with all of these for better performance and
flexibility. Documentation is updated accordingly.

[1] 
http://www.mellanox.com/page/products_dyn?product_family=26&mtag=linux_sw_drivers

Adrien Mazarguil (8):
  mlx5: use fast Verbs interface for scattered RX operation
  mlx5: get rid of the WR structure in RX queue elements
  mlx5: refactor RX code for the new Verbs RSS API
  mlx5: restore allmulti and promisc modes after device restart
  app/testpmd: fix missing initialization in the RSS hash show command
  mlx5: use experimental flows in hash RX queues
  mlx5: enable multi packet send WR in TX CQ
  doc: update mlx5 documentation

Nelio Laranjeiro (5):
  mlx5: adapt indirection table size depending on RX queues number
  mlx5: add RSS hash update/get
  mlx5: use one RSS hash key per flow type
  app/testpmd: add missing type to RSS hash commands
  mlx5: remove normal MAC flows when enabling promiscuous mode

Olga Shern (3):
  mlx5: use separate indirection table for default hash RX queue
  mlx5: define specific flow steering rules for each hash RX QP
  mlx5: use alternate method to configure promiscuous mode

Yaacov Hazan (1):
  mlx5: fix compilation error with GCC < 4.6

 app/test-pmd/cmdline.c  |  45 +-
 app/test-pmd/config.c   |  69 +-
 app/test-pmd/testpmd.h  |   6 +-
 doc/guides/nics/mlx5.rst|  26 +
 doc/guides/testpmd_app_ug/testpmd_funcs.rst |   2 +-
 drivers/net/mlx5/Makefile   |  10 +-
 drivers/net/mlx5/mlx5.c |  69 +-
 drivers/net/mlx5/mlx5.h |  56 +-
 drivers/net/mlx5/mlx5_defs.h|   3 +
 drivers/net/mlx5/mlx5_ethdev.c  |  53 +-
 drivers/net/mlx5/mlx5_mac.c | 214 ---
 drivers/net/mlx5/mlx5_rss.c | 213 +++
 drivers/net/mlx5/mlx5_rxmode.c  | 327 +-
 drivers/net/mlx5/mlx5_rxq.c | 938 ++--
 drivers/net/mlx5/mlx5_rxtx.c|  68 +-
 drivers/net/mlx5/mlx5_rxtx.h|  88 ++-
 drivers/net/mlx5/mlx5_trigger.c |  86 +--
 drivers/net/mlx5/mlx5_txq.c |   7 +
 drivers/net/mlx5/mlx5_utils.h   |   2 -
 drivers/net/mlx5/mlx5_vlan.c|  44 +-
 20 files changed, 1451 insertions(+), 875 deletions(-)
 create mode 100644 drivers/net/mlx5/mlx5_rss.c

-- 
2.1.0