[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCHv2] tap: set IFF_ONE_QUEUE per default
From: |
Peter Lieven |
Subject: |
[Qemu-devel] [PATCHv2] tap: set IFF_ONE_QUEUE per default |
Date: |
Fri, 15 Feb 2013 10:32:31 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130106 Thunderbird/17.0.2 |
historically the kernel queues packets two times. once
at the device and second in qdisc. this is believed to cause
interface stalls if one of these queues overruns.
setting IFF_ONE_QUEUE is the default in kernels >= 3.8. the
flag is ignored since then. see kernel commit
5d097109257c03a71845729f8db6b5770c4bbedc
v2:
- do only set the flag on linux as it breaks macvtap
- define IFF_ONE_QUEUE in tap-linux.h
Signed-off-by: Peter Lieven <address@hidden>
---
net/tap-linux.c | 4 ++++
net/tap-linux.h | 1 +
2 files changed, 5 insertions(+)
diff --git a/net/tap-linux.c b/net/tap-linux.c
index a953189..d49f2fd 100644
--- a/net/tap-linux.c
+++ b/net/tap-linux.c
@@ -51,6 +51,10 @@ int tap_open(char *ifname, int ifname_size, int *vnet_hdr,
memset(&ifr, 0, sizeof(ifr));
ifr.ifr_flags = IFF_TAP | IFF_NO_PI;
+#ifdef __linux__
+ ifr.ifr_flags |= IFF_ONE_QUEUE;
+#endif
+
if (*vnet_hdr) {
unsigned int features;
diff --git a/net/tap-linux.h b/net/tap-linux.h
index 65087e1..13002fd 100644
--- a/net/tap-linux.h
+++ b/net/tap-linux.h
@@ -36,6 +36,7 @@
/* TUNSETIFF ifr flags */
#define IFF_TAP 0x0002
#define IFF_NO_PI 0x1000
+#define IFF_ONE_QUEUE 0x2000
#define IFF_VNET_HDR 0x4000
#define IFF_MULTI_QUEUE 0x0100
#define IFF_ATTACH_QUEUE 0x0200
--
1.7.9.5
- Re: [Qemu-devel] tap devices not receiving packets from a bridge, (continued)
- Re: [Qemu-devel] tap devices not receiving packets from a bridge, Michael Tokarev, 2013/02/12
- Re: [Qemu-devel] tap devices not receiving packets from a bridge, Michael S. Tsirkin, 2013/02/12
- Re: [Qemu-devel] tap devices not receiving packets from a bridge, Peter Lieven, 2013/02/12
- Re: [Qemu-devel] tap devices not receiving packets from a bridge, Michael S. Tsirkin, 2013/02/12
- [Qemu-devel] [PATCH] tap: set IFF_ONE_QUEUE per default, Peter Lieven, 2013/02/15
- Re: [Qemu-devel] [PATCH] tap: set IFF_ONE_QUEUE per default, Stefan Hajnoczi, 2013/02/15
- Re: [Qemu-devel] [PATCH] tap: set IFF_ONE_QUEUE per default, Peter Lieven, 2013/02/15
- Re: [Qemu-devel] [PATCH] tap: set IFF_ONE_QUEUE per default, Christian Borntraeger, 2013/02/15
- Re: [Qemu-devel] [PATCH] tap: set IFF_ONE_QUEUE per default, Peter Lieven, 2013/02/15
- Re: [Qemu-devel] [PATCH] tap: set IFF_ONE_QUEUE per default, Christian Borntraeger, 2013/02/15
- [Qemu-devel] [PATCHv2] tap: set IFF_ONE_QUEUE per default,
Peter Lieven <=
- Re: [Qemu-devel] [PATCHv2] tap: set IFF_ONE_QUEUE per default, Stefan Hajnoczi, 2013/02/15
- Re: [Qemu-devel] [PATCHv2] tap: set IFF_ONE_QUEUE per default, Peter Lieven, 2013/02/15
- Re: [Qemu-devel] [PATCHv2] tap: set IFF_ONE_QUEUE per default, Christian Borntraeger, 2013/02/15
- Re: [Qemu-devel] [PATCHv2] tap: set IFF_ONE_QUEUE per default, Peter Lieven, 2013/02/18
- Re: [Qemu-devel] [PATCHv2] tap: set IFF_ONE_QUEUE per default, Peter Lieven, 2013/02/25
- Re: [Qemu-devel] [PATCHv2] tap: set IFF_ONE_QUEUE per default, Christian Borntraeger, 2013/02/25
- [Qemu-devel] [PATCHv3] tap: set IFF_ONE_QUEUE per default, Peter Lieven, 2013/02/25
- Re: [Qemu-devel] [PATCHv3] tap: set IFF_ONE_QUEUE per default, Michael S. Tsirkin, 2013/02/25
- Re: [Qemu-devel] [PATCHv3] tap: set IFF_ONE_QUEUE per default, Stefan Hajnoczi, 2013/02/25