On Fri, May 18, 2018 at 10:11:54PM +0800, Jason Wang wrote:
On 2018å05æ18æ 22:06, Michael S. Tsirkin wrote:
On Fri, May 18, 2018 at 10:00:31PM +0800, Jason Wang wrote:We disable tx polling and only enable it on demand for a better rx
On 2018å05æ18æ 21:26, Jason Wang wrote:In fact I don't even understand why does this help any longer.
On 2018å05æ18æ 21:13, Michael S. Tsirkin wrote:Looks no need, vhost will poll socket after it see EIO. So we are ok here?
On Fri, May 18, 2018 at 09:00:43PM +0800, Jason Wang wrote:I think you mean "set at this point"? Then yes, so we probably need to
We return -EIO on device down but can not raise EPOLLOUT after it wasIsn't this racy? What if flag is cleared at this point?
up. This may confuse user like vhost which expects tuntap to raise
EPOLLOUT to re-enable its TX routine after tuntap is down. This could
be easily reproduced by transmitting packets from VM while down and up
the tap device. Fixing this by set SOCKWQ_ASYNC_NOSPACE on -EIO.
Cc: Hannes Frederic Sowa <hannes@xxxxxxxxxxxxxxxxxxx>
Cc: Eric Dumazet <edumazet@xxxxxxxxxx>
Fixes: 1bd4978a88ac2 ("tun: honor IFF_UP in tun_get_user()")
Signed-off-by: Jason Wang <jasowang@xxxxxxxxxx>
---
 drivers/net/tun.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/net/tun.c b/drivers/net/tun.c
index d45ac37..1b29761 100644
--- a/drivers/net/tun.c
+++ b/drivers/net/tun.c
@@ -1734,8 +1734,10 @@ static ssize_t tun_get_user(struct
tun_struct *tun, struct tun_file *tfile,
ÂÂÂÂÂ int skb_xdp = 1;
ÂÂÂÂÂ bool frags = tun_napi_frags_enabled(tun);
 - if (!(tun->dev->flags & IFF_UP))
+ÂÂÂ if (!(tun->dev->flags & IFF_UP)) {
set the bit during tun_net_close().
Thanks
Thanks
performance. You may want to have a look at :
commit feb8892cb441c742d4220cf7ced001e7fa070731
Author: Jason Wang <jasowang@xxxxxxxxxx>
Date:ÂÂ Mon Nov 13 11:45:34 2017 +0800
ÂÂÂ vhost_net: conditionally enable tx polling
Thanks
Question is, what looks at SOCKWQ_ASYNC_NOSPACE.
I think it's tested when packet is transmitted,
but there is no guarantee here any packet will
ever be transmitted.