DPDK patches and discussions
 help / color / mirror / Atom feed
From: Maxime Coquelin <maxime.coquelin@redhat.com>
To: dev@dpdk.org, chenbo.xia@intel.com, amorenoz@redhat.com,
	david.marchand@redhat.com, olivier.matz@6wind.com,
	bnemeth@redhat.com
Cc: Maxime Coquelin <maxime.coquelin@redhat.com>
Subject: [dpdk-dev] [PATCH v4 0/3] vhost: make virtqueue cache-friendly
Date: Tue, 23 Mar 2021 10:02:16 +0100	[thread overview]
Message-ID: <20210323090219.126712-1-maxime.coquelin@redhat.com> (raw)

As done for Virtio PMD, this series improves cache utilization
of the vhost_virtqueue struct by removing unused field,
make the live-migration cache dynamically allocated at
live-migration setup time and by moving fields
around so that hot fields are on the first cachelines.

With this series, The struct vhost_virtqueue size goes
from 832B (13 cachelines) down to 320B (5 cachelines).

With this series and the virtio one, I measure a gain
of up to 8% in IO loop micro-benchmark with packed
ring, and 5% with split ring.

I don't have a setup at hand to run PVP testing, but
it might be interresting to get the numbers as I
suspect the cache pressure is higher in this test as
in real use-cases.

Changes in v4:
==============
- Fix missing changes to boolean (Chenbo)

Changes in v3:
==============
- Don't check pointer validity before freeing (David)
- Don't use deprecated rte_smp_wmb() (David, Checkpatch)
- Handle booleans properly (David)
- Prevent VQ size field overflow (David)
- Fix typo and indent (David)

Changes in v2:
==============
- Add log_cache freeing in free_vq (Chenbo)

Maxime Coquelin (3):
  vhost: remove unused Vhost virtqueue field
  vhost: move dirty logging cache out of the virtqueue
  vhost: optimize vhost virtqueue struct

 lib/librte_vhost/vhost.c      | 21 +++++++++----
 lib/librte_vhost/vhost.h      | 56 +++++++++++++++++------------------
 lib/librte_vhost/vhost_user.c | 44 +++++++++++++++++++--------
 lib/librte_vhost/virtio_net.c | 12 ++++----
 4 files changed, 82 insertions(+), 51 deletions(-)

-- 
2.30.2


             reply	other threads:[~2021-03-23  9:02 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-03-23  9:02 Maxime Coquelin [this message]
2021-03-23  9:02 ` [dpdk-dev] [PATCH v4 1/3] vhost: remove unused Vhost virtqueue field Maxime Coquelin
2021-03-23  9:02 ` [dpdk-dev] [PATCH v4 2/3] vhost: move dirty logging cache out of the virtqueue Maxime Coquelin
2021-03-23  9:02 ` [dpdk-dev] [PATCH v4 3/3] vhost: optimize vhost virtqueue struct Maxime Coquelin
2021-03-25  2:30   ` Xia, Chenbo
2021-03-23 10:30 ` [dpdk-dev] [PATCH v4 0/3] vhost: make virtqueue cache-friendly David Marchand
2021-03-29 10:52   ` Balazs Nemeth
2021-03-31  6:04 ` Xia, Chenbo

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20210323090219.126712-1-maxime.coquelin@redhat.com \
    --to=maxime.coquelin@redhat.com \
    --cc=amorenoz@redhat.com \
    --cc=bnemeth@redhat.com \
    --cc=chenbo.xia@intel.com \
    --cc=david.marchand@redhat.com \
    --cc=dev@dpdk.org \
    --cc=olivier.matz@6wind.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).