From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-io0-f174.google.com (mail-io0-f174.google.com [209.85.223.174]) by dpdk.org (Postfix) with ESMTP id B93C02BD7 for ; Mon, 13 Jun 2016 20:51:08 +0200 (CEST) Received: by mail-io0-f174.google.com with SMTP id n127so128059091iof.3 for ; Mon, 13 Jun 2016 11:51:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=riotgames.com; s=riotgames; h=mime-version:from:date:message-id:subject:to; bh=TcIx/ztQbOa94xEK7EnQ8ElMi9RlTfchzXtRzzNVI0A=; b=lvtNfhaMR4wh6/s1feAt0odLK18ljSb7Nrqv1KFl1gC47NLxkV/gg2pKwu+2MjxK38 POKKQ8vUDEf9Lunx6RgJ1FeRf39nlts0mVe2kSgxhSH+pgbkPFJdyYiuz9dTtqy4mimo 7UXxc0tJaZ0AyXKiWQpc+JdqfPdLkNnb4vWLE= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=TcIx/ztQbOa94xEK7EnQ8ElMi9RlTfchzXtRzzNVI0A=; b=lhNZH31sjxjw3amOTrPVC4d2VHn4tZ81ds2Plz8b6jixwzxa4Elkf3XqFGBM9oimSQ MDgHMvEIB4F7keYLRIK5z1S2UGcerQXcS/6C8b02Ga2UtIqTuXUY6rKxAGT2hQkfOqQi 8xA5hZYsUHClbTf/HEZ56Sd8bu1cnNzm3MOO/Fsu8N3mjO0fjmY9k+qLQrolYxq5hnYy 3ubkbpSw+nkT/59JGyU/KGVEtBD66kUInQrWkNR+c1V3s7+uK0yfigCrGSpi1gxyT/bV Gr+56Nxb6VAa/6Io3+sNzEBlDrucb118O/EuQYGJpOTCZhZGuH/cq38mWJL/NTmWakzR VA8A== X-Gm-Message-State: ALyK8tLgdtf4L6jgNFtG5UmcfpppAN9b8/sNSdKJ075vF1mUg5VBdYmXFrVVVgjs+5THj5lhaTj4ztWoIshmb5OH X-Received: by 10.107.191.7 with SMTP id p7mr27929644iof.115.1465843867960; Mon, 13 Jun 2016 11:51:07 -0700 (PDT) MIME-Version: 1.0 Received: by 10.107.52.205 with HTTP; Mon, 13 Jun 2016 11:50:48 -0700 (PDT) From: Javier Blazquez Date: Mon, 13 Jun 2016 11:50:48 -0700 Message-ID: To: dev@dpdk.org Content-Type: text/plain; charset=UTF-8 X-Content-Filtered-By: Mailman/MimeDel 2.1.15 Subject: Re: [dpdk-dev] [PATCH 00/24] Refactor mlx5 to improve performance X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 13 Jun 2016 18:51:09 -0000 > Enhance mlx5 with a data path that bypasses Verbs. > > The first half of this patchset removes support for functionality completely > rewritten in the second half (scatter/gather, inline send), while the data > path is refactored without Verbs. > > The PMD remains usable during the transition. > > This patchset must be applied after "Miscellaneous fixes for mlx4 and mlx5". > > Adrien Mazarguil (8): > mlx5: replace countdown with threshold for TX completions > mlx5: add debugging information about TX queues capabilities > mlx5: check remaining space while processing TX burst > mlx5: resurrect TX gather support > mlx5: work around spurious compilation errors > mlx5: remove redundant RX queue initialization code > mlx5: make RX queue reinitialization safer > mlx5: resurrect RX scatter support > > Nelio Laranjeiro (15): > mlx5: split memory registration function for better performance > mlx5: remove TX gather support > mlx5: remove RX scatter support > mlx5: remove configuration variable for maximum number of segments > mlx5: remove inline TX support > mlx5: split TX queue structure > mlx5: split RX queue structure > mlx5: update prerequisites for upcoming enhancements > mlx5: add definitions for data path without Verbs > mlx5: add support for configuration through kvargs > mlx5: add TX/RX burst function selection wrapper > mlx5: refactor RX data path > mlx5: refactor TX data path > mlx5: handle RX CQE compression > mlx5: add support for multi-packet send > > Yaacov Hazan (1): > mlx5: add support for inline send > > config/common_base | 2 - > doc/guides/nics/mlx5.rst | 94 +- > drivers/net/mlx5/Makefile | 49 +- > drivers/net/mlx5/mlx5.c | 158 ++- > drivers/net/mlx5/mlx5.h | 10 + > drivers/net/mlx5/mlx5_defs.h | 26 +- > drivers/net/mlx5/mlx5_ethdev.c | 188 +++- > drivers/net/mlx5/mlx5_fdir.c | 20 +- > drivers/net/mlx5/mlx5_mr.c | 280 +++++ > drivers/net/mlx5/mlx5_prm.h | 155 +++ > drivers/net/mlx5/mlx5_rxmode.c | 8 - > drivers/net/mlx5/mlx5_rxq.c | 757 +++++--------- > drivers/net/mlx5/mlx5_rxtx.c | 2206 +++++++++++++++++++++++----------------- > drivers/net/mlx5/mlx5_rxtx.h | 176 ++-- > drivers/net/mlx5/mlx5_txq.c | 362 ++++--- > drivers/net/mlx5/mlx5_vlan.c | 6 +- > 16 files changed, 2578 insertions(+), 1919 deletions(-) > create mode 100644 drivers/net/mlx5/mlx5_mr.c > create mode 100644 drivers/net/mlx5/mlx5_prm.h > > -- > 2.1.4 This is a very exciting patch. I applied it and reran some microbenchmarks of mine that test the TX and RX paths separately. These are the results I got: TX path (burst = 64 packets) 1 thread - 2 ports - 4 queues per port: 39Mpps => 48Mpps 2 threads - 2 ports - 2 queues per port: 60Mpps => 60Mpps (hardware limitation?) RX path (burst = 32 packets) 1 thread - 2 ports - 4 queues per port: 38Mpps => 46Mpps 2 threads - 2 ports - 2 queues per port: 43Mpps => 50Mpps The tests were run on the following hardware, using DPDK master with this patch and the "Miscellaneous fixes for mlx4 and mlx5" patch applied: 2x Intel Xeon E5-2680 v3 2.5GHz 64GB DDR4-2133 1x Mellanox ConnectX-4 EN, 40/56GbE dual-port, PCIe3.0 x8 (MCX414A-BCAT) I haven't test it extensively outside of these microbenchmarks, but so far this patch has been working great on my end, so: tested-by: Javier Blazquez