From: Maxime Coquelin <maxime.coquelin@redhat.com>
To: dev@dpdk.org, chenbo.xia@intel.com, david.marchand@redhat.com,
i.maximets@ovn.org
Cc: Maxime Coquelin <maxime.coquelin@redhat.com>
Subject: [PATCH v2 4/5] vhost: add statistics for guest notifications
Date: Thu, 24 Mar 2022 13:46:37 +0100 [thread overview]
Message-ID: <20220324124638.32672-5-maxime.coquelin@redhat.com> (raw)
In-Reply-To: <20220324124638.32672-1-maxime.coquelin@redhat.com>
This patch adds a new virtqueue statistic for guest
notifications. It is useful to deduce from hypervisor side
whether the corresponding guest Virtio device is using
Kernel Virtio-net driver or DPDK Virtio PMD.
Signed-off-by: Maxime Coquelin <maxime.coquelin@redhat.com>
---
lib/vhost/vhost.c | 1 +
lib/vhost/vhost.h | 5 +++++
2 files changed, 6 insertions(+)
diff --git a/lib/vhost/vhost.c b/lib/vhost/vhost.c
index 80ed024019..58b58fc40e 100644
--- a/lib/vhost/vhost.c
+++ b/lib/vhost/vhost.c
@@ -42,6 +42,7 @@ static const struct vhost_vq_stats_name_off vhost_vq_stat_strings[] = {
{"size_512_1023_packets", offsetof(struct vhost_virtqueue, stats.size_bins[5])},
{"size_1024_1518_packets", offsetof(struct vhost_virtqueue, stats.size_bins[6])},
{"size_1519_max_packets", offsetof(struct vhost_virtqueue, stats.size_bins[7])},
+ {"guest_notifications", offsetof(struct vhost_virtqueue, stats.guest_notifications)},
};
#define VHOST_NB_VQ_STATS RTE_DIM(vhost_vq_stat_strings)
diff --git a/lib/vhost/vhost.h b/lib/vhost/vhost.h
index 01b97011aa..13c5c2266d 100644
--- a/lib/vhost/vhost.h
+++ b/lib/vhost/vhost.h
@@ -133,6 +133,7 @@ struct virtqueue_stats {
uint64_t broadcast;
/* Size bins in array as RFC 2819, undersized [0], 64 [1], etc */
uint64_t size_bins[8];
+ uint64_t guest_notifications;
};
/**
@@ -871,6 +872,8 @@ vhost_vring_call_split(struct virtio_net *dev, struct vhost_virtqueue *vq)
(vq->callfd >= 0)) ||
unlikely(!signalled_used_valid)) {
eventfd_write(vq->callfd, (eventfd_t) 1);
+ if (dev->flags & VIRTIO_DEV_STATS_ENABLED)
+ vq->stats.guest_notifications++;
if (dev->notify_ops->guest_notified)
dev->notify_ops->guest_notified(dev->vid);
}
@@ -879,6 +882,8 @@ vhost_vring_call_split(struct virtio_net *dev, struct vhost_virtqueue *vq)
if (!(vq->avail->flags & VRING_AVAIL_F_NO_INTERRUPT)
&& (vq->callfd >= 0)) {
eventfd_write(vq->callfd, (eventfd_t)1);
+ if (dev->flags & VIRTIO_DEV_STATS_ENABLED)
+ vq->stats.guest_notifications++;
if (dev->notify_ops->guest_notified)
dev->notify_ops->guest_notified(dev->vid);
}
--
2.35.1
next prev parent reply other threads:[~2022-03-24 12:47 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-03-24 12:46 [PATCH v2 0/5] vhost: introduce per-virtqueue stats API Maxime Coquelin
2022-03-24 12:46 ` [PATCH v2 1/5] vhost: fix missing virtqueue lock protection Maxime Coquelin
2022-03-28 8:07 ` David Marchand
2022-03-28 14:59 ` Maxime Coquelin
2022-03-24 12:46 ` [PATCH v2 2/5] vhost: add per-virtqueue statistics support Maxime Coquelin
2022-03-24 12:46 ` [PATCH v2 3/5] net/vhost: move to Vhost library stats API Maxime Coquelin
2022-04-25 12:06 ` Xia, Chenbo
2022-03-24 12:46 ` Maxime Coquelin [this message]
2022-04-25 12:09 ` [PATCH v2 4/5] vhost: add statistics for guest notifications Xia, Chenbo
2022-03-24 12:46 ` [PATCH v2 5/5] vhost: add statistics for IOTLB Maxime Coquelin
2022-04-25 12:10 ` Xia, Chenbo
2022-05-10 14:15 ` Maxime Coquelin
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=20220324124638.32672-5-maxime.coquelin@redhat.com \
--to=maxime.coquelin@redhat.com \
--cc=chenbo.xia@intel.com \
--cc=david.marchand@redhat.com \
--cc=dev@dpdk.org \
--cc=i.maximets@ovn.org \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.