mbox series

[0/3] net/virtio: Rx paths cleanup

Message ID 20181203151036.11293-1-maxime.coquelin@redhat.com (mailing list archive)
Headers
Series net/virtio: Rx paths cleanup |

Message

Maxime Coquelin Dec. 3, 2018, 3:10 p.m. UTC
  This is series mainly merges out-of-order mergeable and
non-mergeable Rx paths.

Doing so, we remove one path, and micro-benchmark does not
show any performance regression:

                +---------+----------+----------+----------+----------+----------+
                |            V18.11             |    v18.11 + Rx paths merge     |
                +---------+----------+----------+----------+----------+----------+
                | 1 queue | 2 queues | 3 queues | 1 queue  | 2 queues | 3 queues |
+-----+---------+---------+----------+----------+----------+----------+----------+
| MRG | Rxonly  | 16.22   | 32.47    | 48.81    | 16.31    | 32.62    | 48.88    |
| OFF | IO loop | 12.86   | 25.69    | 38.16    | 12.88    | 25.74    | 38.53    |
+-----+---------+---------+----------+----------+----------+----------+----------+
| MRG | Rxonly  | 16.27   | 32.65    | 48.81    | 16.29    | 32.67    | 48.77    |
| ON  | IO loop | 12.82   | 25.59    | 37.86    | 12.86    | 25.68    | 37.9     |
+-----+---------+---------+----------+----------+----------+----------+----------+

Note that to avoid vector path to be selected as this benchmark is done
without offloads, I had to do this small change to disable it in
virtio_dev_configure():
-       hw->use_simple_rx = 1;
+       hw->use_simple_rx = 0;

The series also enables in-order path selection when mergeable buffers feature
is disabled. Offload and refill helpers are also changed to be inlined.

Maxime Coquelin (3):
  net/virtio: inline refill and offload helpers
  net/virtio: merge Rx mergeable and non-mergeable paths
  net/virtio: add non-mergeable support to in-order path

 drivers/net/virtio/virtio_ethdev.c |  16 +---
 drivers/net/virtio/virtio_ethdev.h |   5 +-
 drivers/net/virtio/virtio_rxtx.c   | 133 ++++-------------------------
 3 files changed, 22 insertions(+), 132 deletions(-)