Skip to contentSkip to conversation

netconsole regression w/ 8d8fc29d

DISCUSSION Rik van Riel 3 participants 4 messages Jun 15, 2011

lore
Share & tools
lore
#0 lore raw

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
#1 lore raw
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.

#2 lore raw
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
#3 lore raw
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
							vnet2
Signature · 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