From: Neil Horman <nhorman@tuxdriver.com> Date: 2011-06-15 15:25:17
Commit 8d8fc29d02a33e4bd5f4fa47823c1fd386346093 changed the behavior of slave
devices in regards to netpoll. Specifically it created a mutually exclusive
relationship between being a slave and a netpoll-capable device. This creates
problems for KVM because guests relied on needing netconsole active on a slave
device to a bridge. Ideally libvirtd could just attach netconsole to the bridge
device instead, but thats currently infeasible, because while the bridge device
supports netpoll, it requires that all slave interface also support it, but the
tun/tap driver currently does not. The most direct solution is to teach tun/tap
to support netpoll, which is implemented by the patch below.
I've not tested this yet, but its pretty straightforward.
Signed-off-by: Neil Horman <nhorman@tuxdriver.com>
Reported-by: Rik van Riel <redacted>
CC: Rik van Riel <redacted>
CC: Maxim Krasnyansky <redacted>
CC: Cong Wang <redacted>
CC: "David S. Miller" <davem@davemloft.net>
---
drivers/net/tun.c | 24 +++++++++++++++++++++++-
1 files changed, 23 insertions(+), 1 deletions(-)
From: Rik van Riel <hidden> Date: 2011-06-15 17:50:52
On 06/15/2011 11:25 AM, Neil Horman wrote:
Commit 8d8fc29d02a33e4bd5f4fa47823c1fd386346093 changed the behavior of slave
devices in regards to netpoll. Specifically it created a mutually exclusive
relationship between being a slave and a netpoll-capable device. This creates
problems for KVM because guests relied on needing netconsole active on a slave
device to a bridge. Ideally libvirtd could just attach netconsole to the bridge
device instead, but thats currently infeasible, because while the bridge device
supports netpoll, it requires that all slave interface also support it, but the
tun/tap driver currently does not. The most direct solution is to teach tun/tap
to support netpoll, which is implemented by the patch below.
I've not tested this yet, but its pretty straightforward.
I have tested it. I can run netconsole and my KVM guests
simultaneously again.
Thank you, Neil!
Now all I have to do is log whatever other bugs are haunting
3.0-rc and causing my system to hang :)
Signed-off-by: Neil Horman<nhorman@tuxdriver.com>
Reported-by: Rik van Riel<redacted>
CC: Rik van Riel<redacted>
CC: Maxim Krasnyansky<redacted>
CC: Cong Wang<redacted>
CC: "David S. Miller"<davem@davemloft.net>
Reviewed-by: Rik van Riel <redacted>
Tested-by: Rik van Riel <redacted>
--
All rights reversed
From: Cong Wang <hidden> Date: 2011-06-16 01:45:06
于 2011年06月15日 23:25, Neil Horman 写道:
Commit 8d8fc29d02a33e4bd5f4fa47823c1fd386346093 changed the behavior of slave
devices in regards to netpoll. Specifically it created a mutually exclusive
relationship between being a slave and a netpoll-capable device. This creates
problems for KVM because guests relied on needing netconsole active on a slave
device to a bridge. Ideally libvirtd could just attach netconsole to the bridge
device instead, but thats currently infeasible, because while the bridge device
supports netpoll, it requires that all slave interface also support it, but the
tun/tap driver currently does not. The most direct solution is to teach tun/tap
to support netpoll, which is implemented by the patch below.
Yeah, bridge checks if all the underlying devices support netpoll,
that is why Rik saw the failure.
I've not tested this yet, but its pretty straightforward.
Signed-off-by: Neil Horman<nhorman@tuxdriver.com>
Reported-by: Rik van Riel<redacted>
CC: Rik van Riel<redacted>
CC: Maxim Krasnyansky<redacted>
CC: Cong Wang<redacted>
CC: "David S. Miller"<davem@davemloft.net>
Reviewed-by: WANG Cong <redacted>
Thanks for fixing it!
From: David Miller <davem@davemloft.net> Date: 2011-06-17 03:54:47
From: Neil Horman <nhorman@tuxdriver.com>
Date: Wed, 15 Jun 2011 11:25:01 -0400
Commit 8d8fc29d02a33e4bd5f4fa47823c1fd386346093 changed the behavior of slave
devices in regards to netpoll. Specifically it created a mutually exclusive
relationship between being a slave and a netpoll-capable device. This creates
problems for KVM because guests relied on needing netconsole active on a slave
device to a bridge. Ideally libvirtd could just attach netconsole to the bridge
device instead, but thats currently infeasible, because while the bridge device
supports netpoll, it requires that all slave interface also support it, but the
tun/tap driver currently does not. The most direct solution is to teach tun/tap
to support netpoll, which is implemented by the patch below.
I've not tested this yet, but its pretty straightforward.
Signed-off-by: Neil Horman <nhorman@tuxdriver.com>
Reported-by: Rik van Riel <redacted>
CC: Rik van Riel <redacted>
CC: Maxim Krasnyansky <redacted>
CC: Cong Wang <redacted>
CC: "David S. Miller" <davem@davemloft.net>