lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Wed, 16 Dec 2009 21:30:39 +0800 From: Herbert Xu <herbert@...dor.apana.org.au> To: Rusty Russell <rusty@...tcorp.com.au> Cc: Sridhar Samudrala <sri@...ibm.com>, mst@...hat.com, netdev@...r.kernel.org Subject: Re: [RFC PATCH] Regression in linux 2.6.32 virtio_net seen with vhost-net On Wed, Dec 16, 2009 at 11:15:38PM +1030, Rusty Russell wrote: > > virtio_net: use NAPI for xmit (UNTESTED) > > This is closer to the way tg3 and ixgbe do it: use the NAPI framework to > free transmitted packets. It neatens things a little as well. Looks good to me. > @@ -544,15 +552,16 @@ again: > > /* Apparently nice girls don't return TX_BUSY; stop the queue > * before it gets out of hand. Naturally, this wastes entries. */ > - if (capacity < 2+MAX_SKB_FRAGS) { > - netif_stop_queue(dev); > - if (unlikely(!vi->svq->vq_ops->enable_cb(vi->svq))) { > - /* More just got used, free them then recheck. */ > - capacity += free_old_xmit_skbs(vi); > - if (capacity >= 2+MAX_SKB_FRAGS) { > - netif_start_queue(dev); > - vi->svq->vq_ops->disable_cb(vi->svq); > - } > + if (unlikely(capacity < 2+MAX_SKB_FRAGS)) { > + /* Free old skbs; might make more capacity. */ > + vi->capacity = capacity + free_old_xmit_skbs(vi); > + if (unlikely(vi->capacity < 2+MAX_SKB_FRAGS)) { > + /* Make sure virtnet_xmit_poll sees updated capacity */ > + wmb(); You only need smp_wmb() since this is protecting against the guest only as opposed to the host. Cheers, -- Visit Openswan at http://www.openswan.org/ Email: Herbert Xu ~{PmV>HI~} <herbert@...dor.apana.org.au> Home Page: http://gondor.apana.org.au/~herbert/ PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@...r.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists