> -----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

Reply via email to