After commit 8d8fc29d02a33e4bd5f4fa47823c1fd386346093
(netpoll: disable netpoll when enslave a device), it is
no longer possible to use netconsole together with bridged
KVM guests.
I can see why the change looked reasonable from a networking
point of view, but this has completely disabled netconsole
functionality for a common KVM use case.
After the change, netconsole refuses to bind to eth0.
Since the bridge interface does not support polling,
netconsole cannot use that, either.
I am now reduced to taking digital photos of the last screen
of a kernel oops, instead of getting oopses streamed to my
logging server.
To me the "unpredictable results" were way preferable to
what we have now.
Is there a way forward to restore netconsole functionality
for people who use KVM with bridging, or is it best to just
revert this commit?
commit 8d8fc29d02a33e4bd5f4fa47823c1fd386346093
Author: Amerigo Wang <[email protected]>
Date: Thu May 19 21:39:10 2011 +0000
netpoll: disable netpoll when enslave a device
V3: rename NETDEV_ENSLAVE to NETDEV_JOIN
Currently we do nothing when we enslave a net device which is
running netcon
Neil pointed out that we may get weird results in such case, so
let's disabl
netpoll on the device being enslaved. I think it is too harsh to
prevent
the device being ensalved if it is running netconsole.
By the way, this patch also removes the NETDEV_GOING_DOWN from
netconsole
netdev notifier, because netpoll will check if the device is
running or not
and we don't handle NETDEV_PRE_UP neither.
This patch is based on net-next-2.6.
Signed-off-by: WANG Cong <[email protected]>
Cc: Neil Horman <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
--
All rights reversed
于 2011年06月15日 15:58, Rik van Riel 写道:
> After commit 8d8fc29d02a33e4bd5f4fa47823c1fd386346093
> (netpoll: disable netpoll when enslave a device), it is
> no longer possible to use netconsole together with bridged
> KVM guests.
>
> I can see why the change looked reasonable from a networking
> point of view, but this has completely disabled netconsole
> functionality for a common KVM use case.
>
> After the change, netconsole refuses to bind to eth0.
>
> Since the bridge interface does not support polling,
> netconsole cannot use that, either.
Bridge does support polling now. :) You can just setup
netconsole on a bridge device.
Thanks.
On 06/15/2011 04:10 AM, Cong Wang wrote:
> 于 2011年06月15日 15:58, Rik van Riel 写道:
>> After commit 8d8fc29d02a33e4bd5f4fa47823c1fd386346093
>> (netpoll: disable netpoll when enslave a device), it is
>> no longer possible to use netconsole together with bridged
>> KVM guests.
>>
>> I can see why the change looked reasonable from a networking
>> point of view, but this has completely disabled netconsole
>> functionality for a common KVM use case.
>>
>> After the change, netconsole refuses to bind to eth0.
>>
>> Since the bridge interface does not support polling,
>> netconsole cannot use that, either.
>
>
> Bridge does support polling now. :) You can just setup
> netconsole on a bridge device.
This turns out to be mutually exclusive with attaching
virtual interfaces (for KVM guests) to a bridge.
If I start netconsole first, my KVM guests won't start.
If I start the KVM guests first, netconsole won't start,
and fails with these errors:
netconsole:: inserting netconsole module with arguments
[email protected]/br0,[email protected]/00:13:72:17:4A:9C
kernel: [ 1020.927240] netconsole: local port 6666
kernel: [ 1020.927243] netconsole: local IP 74.92.59.68
kernel: [ 1020.927245] netconsole: interface 'br0'
kernel: [ 1020.927246] netconsole: remote port 514
kernel: [ 1020.927247] netconsole: remote IP 74.92.59.66
kernel: [ 1020.927252] netconsole: remote ethernet address 00:13:72:17:4a:9c
kernel: [ 1020.927256] (null): doesn't support polling, aborting.
kernel: [ 1020.927258] netconsole: cleaning up
systemd[1]: netconsole.service: control process exited, code=exited status=1
systemd[1]: Unit netconsole.service entered failed state.
In short, I am still not able to use netconsole and bridged
KVM guests at the same time...
# brctl show
bridge name bridge id STP enabled interfaces
br0 8000.0024e838995c no eth0
vnet0
vnet1
vnet2
--
All rights reversed
On Wed, Jun 15, 2011 at 10:05:54AM -0400, Rik van Riel wrote:
> On 06/15/2011 04:10 AM, Cong Wang wrote:
> >于 2011年06月15日 15:58, Rik van Riel 写道:
> >>After commit 8d8fc29d02a33e4bd5f4fa47823c1fd386346093
> >>(netpoll: disable netpoll when enslave a device), it is
> >>no longer possible to use netconsole together with bridged
> >>KVM guests.
> >>
> >>I can see why the change looked reasonable from a networking
> >>point of view, but this has completely disabled netconsole
> >>functionality for a common KVM use case.
> >>
> >>After the change, netconsole refuses to bind to eth0.
> >>
> >>Since the bridge interface does not support polling,
> >>netconsole cannot use that, either.
> >
> >
> >Bridge does support polling now. :) You can just setup
> >netconsole on a bridge device.
>
> This turns out to be mutually exclusive with attaching
> virtual interfaces (for KVM guests) to a bridge.
>
> If I start netconsole first, my KVM guests won't start.
>
> If I start the KVM guests first, netconsole won't start,
> and fails with these errors:
>
> netconsole:: inserting netconsole module with arguments
> [email protected]/br0,[email protected]/00:13:72:17:4A:9C
> kernel: [ 1020.927240] netconsole: local port 6666
> kernel: [ 1020.927243] netconsole: local IP 74.92.59.68
> kernel: [ 1020.927245] netconsole: interface 'br0'
> kernel: [ 1020.927246] netconsole: remote port 514
> kernel: [ 1020.927247] netconsole: remote IP 74.92.59.66
> kernel: [ 1020.927252] netconsole: remote ethernet address 00:13:72:17:4a:9c
> kernel: [ 1020.927256] (null): doesn't support polling, aborting.
> kernel: [ 1020.927258] netconsole: cleaning up
> systemd[1]: netconsole.service: control process exited, code=exited status=1
> systemd[1]: Unit netconsole.service entered failed state.
>
> In short, I am still not able to use netconsole and bridged
> KVM guests at the same time...
>
> # brctl show
> bridge name bridge id STP enabled interfaces
> br0 8000.0024e838995c no eth0
> vnet0
> vnet1
> vnet2
>
>
> --
> All rights reversed
Looks like we need to teach the tun-tap driver to support netpoll that shouldn't
be too hard. I'll send up a patch shortly
Neil