Re: [ovs-dev] [PATCH] netdev-dpdk: Track vhost tx contention.
On 26.08.2019 16:33, David Marchand wrote: Add a coverage counter to help diagnose contention on the vhost txqs. This is seen as dropped packets on the physical ports for rates that are usually handled fine by OVS. Signed-off-by: David Marchand --- Thanks! I changed 'unlikely' to 'OVS_UNLIKELY' and applied to master. Best regards, Ilya Maximets. ___ dev mailing list d...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-dev
Re: [ovs-dev] [PATCH] netdev-dpdk: Track vhost tx contention.
On 26 Aug 2019, at 16:33, David Marchand wrote: > Add a coverage counter to help diagnose contention on the vhost txqs. > This is seen as dropped packets on the physical ports for rates that > are usually handled fine by OVS. > > Signed-off-by: David Marchand LGTM, Acked-by: Eelco Chaudron ___ dev mailing list d...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-dev
Re: [ovs-dev] [PATCH] netdev-dpdk: Track vhost tx contention.
On Mon, Aug 26, 2019 at 4:36 PM David Marchand wrote: > > Add a coverage counter to help diagnose contention on the vhost txqs. > This is seen as dropped packets on the physical ports for rates that > are usually handled fine by OVS. > > Signed-off-by: David Marchand Hey guys, can somebody look at this approach and tell me if something is wrong with it? Thanks. -- David Marchand ___ dev mailing list d...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-dev
[ovs-dev] [PATCH] netdev-dpdk: Track vhost tx contention.
Add a coverage counter to help diagnose contention on the vhost txqs. This is seen as dropped packets on the physical ports for rates that are usually handled fine by OVS. Signed-off-by: David Marchand --- lib/netdev-dpdk.c | 8 +++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/lib/netdev-dpdk.c b/lib/netdev-dpdk.c index 4805783..ea8599b 100644 --- a/lib/netdev-dpdk.c +++ b/lib/netdev-dpdk.c @@ -41,6 +41,7 @@ #include #include "cmap.h" +#include "coverage.h" #include "dirs.h" #include "dp-packet.h" #include "dpdk.h" @@ -72,6 +73,8 @@ enum {VIRTIO_RXQ, VIRTIO_TXQ, VIRTIO_QNUM}; VLOG_DEFINE_THIS_MODULE(netdev_dpdk); static struct vlog_rate_limit rl = VLOG_RATE_LIMIT_INIT(5, 20); +COVERAGE_DEFINE(vhost_tx_contention); + #define DPDK_PORT_WATCHDOG_INTERVAL 5 #define OVS_CACHE_LINE_SIZE CACHE_LINE_SIZE @@ -2387,7 +2390,10 @@ __netdev_dpdk_vhost_send(struct netdev *netdev, int qid, goto out; } -rte_spinlock_lock(>tx_q[qid].tx_lock); +if (unlikely(!rte_spinlock_trylock(>tx_q[qid].tx_lock))) { +COVERAGE_INC(vhost_tx_contention); +rte_spinlock_lock(>tx_q[qid].tx_lock); +} cnt = netdev_dpdk_filter_packet_len(dev, cur_pkts, cnt); /* Check has QoS has been configured for the netdev */ -- 1.8.3.1 ___ dev mailing list d...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-dev