netconsole regression w/ 8d8fc29d
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.
Signature · 1 line
All rights reversed
Quoted 5 lines · 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.
Quoted 8 lines
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.
Quoted 10 lines · Cong Wang
Quoted 9 lines · 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.
Quoted 8 lines
Quoted 4 lines
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
Signature · 1 line
All rights reversed
Quoted 44 lines · Rik van Riel
Quoted 10 lines · Cong Wang
Quoted 9 lines · 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.
Quoted 8 lines
Quoted 4 lines
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...
Quoted 10 lines
# brctl show bridge name bridge id STP enabled interfaces br0 8000.0024e838995c no eth0 vnet0 vnet1 vnet2Signature · 1 line
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