summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorIlya Maximets <i.maximets@samsung.com>2019-08-06 18:57:09 +0300
committerIlya Maximets <i.maximets@samsung.com>2019-08-26 14:03:37 +0300
commit5c7ba90d8189ee7b35a1723d5a76dc205720af50 (patch)
tree11b9ef2ad188498fcd7cc716dfbb977a8e212d28 /lib
parent18366d165162051463fd28e9f46d1c2cbe355eb3 (diff)
downloadopenvswitch-5c7ba90d8189ee7b35a1723d5a76dc205720af50.tar.gz
netdev-dpdk: Refactor vhost custom stats for extensibility.
vHost interfaces currently has only one custom statistic, but there might be others in the near future. This refactoring makes the code work in the same way as it done for dpdk and afxdp stats to keep the common style over the different code places and makes it easily extensible for the new stats addition. Signed-off-by: Ilya Maximets <i.maximets@samsung.com> Reviewed-by: David Marchand <david.marchand@redhat.com> Acked-by: Kevin Traynor <ktraynor@redhat.com>
Diffstat (limited to 'lib')
-rw-r--r--lib/netdev-dpdk.c28
1 files changed, 18 insertions, 10 deletions
diff --git a/lib/netdev-dpdk.c b/lib/netdev-dpdk.c
index 52ecf7576..bc20d6843 100644
--- a/lib/netdev-dpdk.c
+++ b/lib/netdev-dpdk.c
@@ -110,12 +110,6 @@ BUILD_ASSERT_DECL(MAX_NB_MBUF % ROUND_DOWN_POW2(MAX_NB_MBUF / MIN_NB_MBUF)
BUILD_ASSERT_DECL((MAX_NB_MBUF / ROUND_DOWN_POW2(MAX_NB_MBUF / MIN_NB_MBUF))
% MP_CACHE_SZ == 0);
-/* Size of vHost custom stats. */
-#define VHOST_CUSTOM_STATS_SIZE 1
-
-/* Names of vHost custom stats. */
-#define VHOST_STAT_TX_RETRIES "tx_retries"
-
#define SOCKET0 0
/* Default size of Physical NIC RXQ */
@@ -2827,17 +2821,31 @@ netdev_dpdk_vhost_get_custom_stats(const struct netdev *netdev,
struct netdev_custom_stats *custom_stats)
{
struct netdev_dpdk *dev = netdev_dpdk_cast(netdev);
+ int i;
- ovs_mutex_lock(&dev->mutex);
+#define VHOST_CSTATS \
+ VHOST_CSTAT(tx_retries)
- custom_stats->size = VHOST_CUSTOM_STATS_SIZE;
+#define VHOST_CSTAT(NAME) + 1
+ custom_stats->size = VHOST_CSTATS;
+#undef VHOST_CSTAT
custom_stats->counters = xcalloc(custom_stats->size,
sizeof *custom_stats->counters);
- ovs_strlcpy(custom_stats->counters[0].name, VHOST_STAT_TX_RETRIES,
+ i = 0;
+#define VHOST_CSTAT(NAME) \
+ ovs_strlcpy(custom_stats->counters[i++].name, #NAME, \
NETDEV_CUSTOM_STATS_NAME_SIZE);
+ VHOST_CSTATS;
+#undef VHOST_CSTAT
+
+ ovs_mutex_lock(&dev->mutex);
rte_spinlock_lock(&dev->stats_lock);
- custom_stats->counters[0].value = dev->tx_retries;
+ i = 0;
+#define VHOST_CSTAT(NAME) \
+ custom_stats->counters[i++].value = dev->NAME;
+ VHOST_CSTATS;
+#undef VHOST_CSTAT
rte_spinlock_unlock(&dev->stats_lock);
ovs_mutex_unlock(&dev->mutex);