> -----Original Message----- > From: Pravin Shelar [mailto:pshe...@nicira.com] > Sent: Tuesday, May 12, 2015 5:24 PM > To: Traynor, Kevin > Cc: dev@openvswitch.org > Subject: Re: [ovs-dev] [PATCH] netdev-dpdk: Add vhost enqueue retries. > > On Mon, May 11, 2015 at 5:28 AM, Kevin Traynor <kevin.tray...@intel.com> > wrote: > > The max allowed burst size for a single vhost enqueue is 32. > > This code facilitates trying to send greater than the burst > > size of packets to the vhost interface by adding a retry loop > > and calling vhost enqueue multiple times. As this could > > potentially block, a timeout is added. > > > > Signed-off-by: Kevin Traynor <kevin.tray...@intel.com> > > > --- > > lib/netdev-dpdk.c | 43 +++++++++++++++++++++++++++++++++++++------ > > 1 files changed, 37 insertions(+), 6 deletions(-) > > > > diff --git a/lib/netdev-dpdk.c b/lib/netdev-dpdk.c > > index cbb266d..3ab5995 100644 > > --- a/lib/netdev-dpdk.c > > +++ b/lib/netdev-dpdk.c > > @@ -104,6 +104,11 @@ BUILD_ASSERT_DECL((MAX_NB_MBUF / > ROUND_DOWN_POW2(MAX_NB_MBUF/MIN_NB_MBUF)) > > /* Character device cuse_dev_name. */ > > char *cuse_dev_name = NULL; > > > > +/* > > + * Maximum amount of time in micro seconds to try and enqueue to vhost. > > + */ > > +#define VHOST_ENQ_RETRY_USECS 100 > > + > > static const struct rte_eth_conf port_conf = { > > .rxmode = { > > .mq_mode = ETH_MQ_RX_RSS, > > @@ -901,7 +906,12 @@ __netdev_dpdk_vhost_send(struct netdev *netdev, struct > dp_packet **pkts, > > { > > struct netdev_dpdk *vhost_dev = netdev_dpdk_cast(netdev); > > struct virtio_net *virtio_dev = netdev_dpdk_get_virtio(vhost_dev); > > - int tx_pkts, i; > > + struct rte_mbuf **cur_pkts = (struct rte_mbuf **) pkts; > > + unsigned int total_pkts = cnt; > > + unsigned int tx_pkts, i; > > + unsigned int expired = 0; > > + uint64_t start; > > + uint64_t timeout = VHOST_ENQ_RETRY_USECS * rte_get_timer_hz() / 1E6; > > > > I changed the transmit function a bit to avoid the division on every > transmit call and pushed patch to master. > > Thanks.
The changes look good - minimize the timer impact on the normal case, thanks. _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev