Subject: netconsole breaks netpoll on bridge

Hi,

i'm using a vanilla 3.10.43 kernel and netconsole on top of a bridge.

netconsole is used with vmbr0 (bridge) which is on top of bond0.

If i want to add another bridge to vmbr0 is fails as long as netconsole
is in use.

# brctl addif vmbr0 fwpr2004p0
can't add fwpr2004p0 to bridge vmbr0: Unknown error 524

Kernel output:
netpoll: (null): fwpr2004p0 doesn't support polling, aborting

If i do rmmod netconsole - everything is working fine again.

Greets,
Stefan


2014-06-16 18:06:01

by Cong Wang

[permalink] [raw]
Subject: Re: netconsole breaks netpoll on bridge

On Mon, Jun 16, 2014 at 5:51 AM, Stefan Priebe - Profihost AG
<[email protected]> wrote:
> Hi,
>
> i'm using a vanilla 3.10.43 kernel and netconsole on top of a bridge.
>
> netconsole is used with vmbr0 (bridge) which is on top of bond0.
>
> If i want to add another bridge to vmbr0 is fails as long as netconsole
> is in use.
>
> # brctl addif vmbr0 fwpr2004p0
> can't add fwpr2004p0 to bridge vmbr0: Unknown error 524
>
> Kernel output:
> netpoll: (null): fwpr2004p0 doesn't support polling, aborting
>
> If i do rmmod netconsole - everything is working fine again.
>

This is expected, you can't add an interface which doesn't support
netpoll to a bridge which is running netpoll.

You should stop netpoll before adding it.

Subject: Re: netconsole breaks netpoll on bridge


> Am 16.06.2014 um 20:05 schrieb Cong Wang <[email protected]>:
>
> On Mon, Jun 16, 2014 at 5:51 AM, Stefan Priebe - Profihost AG
> <[email protected]> wrote:
>> Hi,
>>
>> i'm using a vanilla 3.10.43 kernel and netconsole on top of a bridge.
>>
>> netconsole is used with vmbr0 (bridge) which is on top of bond0.
>>
>> If i want to add another bridge to vmbr0 is fails as long as netconsole
>> is in use.
>>
>> # brctl addif vmbr0 fwpr2004p0
>> can't add fwpr2004p0 to bridge vmbr0: Unknown error 524
>>
>> Kernel output:
>> netpoll: (null): fwpr2004p0 doesn't support polling, aborting
>>
>> If i do rmmod netconsole - everything is working fine again.
>
> This is expected, you can't add an interface which doesn't support
> netpoll to a bridge which is running netpoll.

Thanks, so i can't use netconsole at a bridge used for vms?

>
> You should stop netpoll before adding it.

How to do that? What disadvantage does this have?

Thanks!

Stefan

2014-06-16 18:51:31

by Cong Wang

[permalink] [raw]
Subject: Re: netconsole breaks netpoll on bridge

On Mon, Jun 16, 2014 at 11:41 AM, Stefan Priebe - Profihost AG
<[email protected]> wrote:
>
>> Am 16.06.2014 um 20:05 schrieb Cong Wang <[email protected]>:
>>
>> On Mon, Jun 16, 2014 at 5:51 AM, Stefan Priebe - Profihost AG
>> <[email protected]> wrote:
>>> Hi,
>>>
>>> i'm using a vanilla 3.10.43 kernel and netconsole on top of a bridge.
>>>
>>> netconsole is used with vmbr0 (bridge) which is on top of bond0.
>>>
>>> If i want to add another bridge to vmbr0 is fails as long as netconsole
>>> is in use.
>>>
>>> # brctl addif vmbr0 fwpr2004p0
>>> can't add fwpr2004p0 to bridge vmbr0: Unknown error 524
>>>
>>> Kernel output:
>>> netpoll: (null): fwpr2004p0 doesn't support polling, aborting
>>>
>>> If i do rmmod netconsole - everything is working fine again.
>>
>> This is expected, you can't add an interface which doesn't support
>> netpoll to a bridge which is running netpoll.
>
> Thanks, so i can't use netconsole at a bridge used for vms?

You can, but you need to make sure all the devices under
this bridge support netpoll. Not considering mac learning,
bridge just broadcasts all the packets to its ports, if one of them
doesn't support netpoll, how could it work?

>
>>
>> You should stop netpoll before adding it.
>
> How to do that? What disadvantage does this have?
>

If you are using a redhat distro, run `service netconsole stop`.

Or you can disable it via configfs, check
Documentation/networking/netconsole.txt.

Subject: Re: netconsole breaks netpoll on bridge


> Am 16.06.2014 um 20:51 schrieb Cong Wang <[email protected]>:
>
> On Mon, Jun 16, 2014 at 11:41 AM, Stefan Priebe - Profihost AG
> <[email protected]> wrote:
>>
>>> Am 16.06.2014 um 20:05 schrieb Cong Wang <[email protected]>:
>>>
>>> On Mon, Jun 16, 2014 at 5:51 AM, Stefan Priebe - Profihost AG
>>> <[email protected]> wrote:
>>>> Hi,
>>>>
>>>> i'm using a vanilla 3.10.43 kernel and netconsole on top of a bridge.
>>>>
>>>> netconsole is used with vmbr0 (bridge) which is on top of bond0.
>>>>
>>>> If i want to add another bridge to vmbr0 is fails as long as netconsole
>>>> is in use.
>>>>
>>>> # brctl addif vmbr0 fwpr2004p0
>>>> can't add fwpr2004p0 to bridge vmbr0: Unknown error 524
>>>>
>>>> Kernel output:
>>>> netpoll: (null): fwpr2004p0 doesn't support polling, aborting
>>>>
>>>> If i do rmmod netconsole - everything is working fine again.
>>>
>>> This is expected, you can't add an interface which doesn't support
>>> netpoll to a bridge which is running netpoll.
>>
>> Thanks, so i can't use netconsole at a bridge used for vms?
>
> You can, but you need to make sure all the devices under
> this bridge support netpoll. Not considering mac learning,
> bridge just broadcasts all the packets to its ports, if one of them
> doesn't support netpoll, how could it work?

Ok i was trying to add a veth device so this is the problematic device.

>>> You should stop netpoll before adding it.
>>
>> How to do that? What disadvantage does this have?
>
> If you are using a redhat distro, run `service netconsole stop`.
>
> Or you can disable it via configfs, check
> Documentation/networking/netconsole.txt.

Ok but this means disabling netconsole nothing I want.

Stefan

2014-06-16 19:12:10

by Cong Wang

[permalink] [raw]
Subject: Re: netconsole breaks netpoll on bridge

On Mon, Jun 16, 2014 at 12:05 PM, Stefan Priebe - Profihost AG
<[email protected]> wrote:
>
>> Am 16.06.2014 um 20:51 schrieb Cong Wang <[email protected]>:
>>
>> On Mon, Jun 16, 2014 at 11:41 AM, Stefan Priebe - Profihost AG
>> <[email protected]> wrote:
>>>
>>>> Am 16.06.2014 um 20:05 schrieb Cong Wang <[email protected]>:
>>>>
>>>> On Mon, Jun 16, 2014 at 5:51 AM, Stefan Priebe - Profihost AG
>>>> <[email protected]> wrote:
>>>>> Hi,
>>>>>
>>>>> i'm using a vanilla 3.10.43 kernel and netconsole on top of a bridge.
>>>>>
>>>>> netconsole is used with vmbr0 (bridge) which is on top of bond0.
>>>>>
>>>>> If i want to add another bridge to vmbr0 is fails as long as netconsole
>>>>> is in use.
>>>>>
>>>>> # brctl addif vmbr0 fwpr2004p0
>>>>> can't add fwpr2004p0 to bridge vmbr0: Unknown error 524
>>>>>
>>>>> Kernel output:
>>>>> netpoll: (null): fwpr2004p0 doesn't support polling, aborting
>>>>>
>>>>> If i do rmmod netconsole - everything is working fine again.
>>>>
>>>> This is expected, you can't add an interface which doesn't support
>>>> netpoll to a bridge which is running netpoll.
>>>
>>> Thanks, so i can't use netconsole at a bridge used for vms?
>>
>> You can, but you need to make sure all the devices under
>> this bridge support netpoll. Not considering mac learning,
>> bridge just broadcasts all the packets to its ports, if one of them
>> doesn't support netpoll, how could it work?
>
> Ok i was trying to add a veth device so this is the problematic device.
>

We can just add netpoll support to veth device, it should not be hard.
I will work on it once net-next is open.

Thanks.

Subject: Re: netconsole breaks netpoll on bridge


> Am 16.06.2014 um 21:12 schrieb Cong Wang <[email protected]>:
>
> On Mon, Jun 16, 2014 at 12:05 PM, Stefan Priebe - Profihost AG
> <[email protected]> wrote:
>>
>>> Am 16.06.2014 um 20:51 schrieb Cong Wang <[email protected]>:
>>>
>>> On Mon, Jun 16, 2014 at 11:41 AM, Stefan Priebe - Profihost AG
>>> <[email protected]> wrote:
>>>>
>>>>> Am 16.06.2014 um 20:05 schrieb Cong Wang <[email protected]>:
>>>>>
>>>>> On Mon, Jun 16, 2014 at 5:51 AM, Stefan Priebe - Profihost AG
>>>>> <[email protected]> wrote:
>>>>>> Hi,
>>>>>>
>>>>>> i'm using a vanilla 3.10.43 kernel and netconsole on top of a bridge.
>>>>>>
>>>>>> netconsole is used with vmbr0 (bridge) which is on top of bond0.
>>>>>>
>>>>>> If i want to add another bridge to vmbr0 is fails as long as netconsole
>>>>>> is in use.
>>>>>>
>>>>>> # brctl addif vmbr0 fwpr2004p0
>>>>>> can't add fwpr2004p0 to bridge vmbr0: Unknown error 524
>>>>>>
>>>>>> Kernel output:
>>>>>> netpoll: (null): fwpr2004p0 doesn't support polling, aborting
>>>>>>
>>>>>> If i do rmmod netconsole - everything is working fine again.
>>>>>
>>>>> This is expected, you can't add an interface which doesn't support
>>>>> netpoll to a bridge which is running netpoll.
>>>>
>>>> Thanks, so i can't use netconsole at a bridge used for vms?
>>>
>>> You can, but you need to make sure all the devices under
>>> this bridge support netpoll. Not considering mac learning,
>>> bridge just broadcasts all the packets to its ports, if one of them
>>> doesn't support netpoll, how could it work?
>>
>> Ok i was trying to add a veth device so this is the problematic device.
>
> We can just add netpoll support to veth device, it should not be hard.
> I will work on it once net-next is open.

That sounds great! Is there anything I can do or some code I can port to veth?

Greets,
Stefan

2014-06-16 21:30:45

by Francois Romieu

[permalink] [raw]
Subject: Re: netconsole breaks netpoll on bridge

Stefan Priebe - Profihost AG <[email protected]> :
[...]
> That sounds great! Is there anything I can do or some code I can port to veth?

You may add an empty handler for .ndo_poll_controller in drivers/net/veth.c
and give it a try on current kernel.

It should not be too bad.

--
Ueimor

Subject: Re: netconsole breaks netpoll on bridge

Am 16.06.2014 23:30, schrieb Francois Romieu:
> Stefan Priebe - Profihost AG <[email protected]> :
> [...]
>> That sounds great! Is there anything I can do or some code I can port to veth?
>
> You may add an empty handler for .ndo_poll_controller in drivers/net/veth.c
> and give it a try on current kernel.
>
> It should not be too bad.
>
Why is an empty poll controller enough to fix it? This sounds a bit
crazy to me.


Greets,
Stefan

2014-06-17 11:35:49

by Neil Horman

[permalink] [raw]
Subject: Re: netconsole breaks netpoll on bridge

On Mon, Jun 16, 2014 at 11:05:57AM -0700, Cong Wang wrote:
> On Mon, Jun 16, 2014 at 5:51 AM, Stefan Priebe - Profihost AG
> <[email protected]> wrote:
> > Hi,
> >
> > i'm using a vanilla 3.10.43 kernel and netconsole on top of a bridge.
> >
> > netconsole is used with vmbr0 (bridge) which is on top of bond0.
> >
> > If i want to add another bridge to vmbr0 is fails as long as netconsole
> > is in use.
> >
> > # brctl addif vmbr0 fwpr2004p0
> > can't add fwpr2004p0 to bridge vmbr0: Unknown error 524
> >
> > Kernel output:
> > netpoll: (null): fwpr2004p0 doesn't support polling, aborting
> >
> > If i do rmmod netconsole - everything is working fine again.
> >
>
> This is expected, you can't add an interface which doesn't support
> netpoll to a bridge which is running netpoll.
>
> You should stop netpoll before adding it.
Or alternatively, update the driver for the fwpr2004p0 to support netpoll, and
you'll be able to add it with netpoll running

Neil

> --
> To unsubscribe from this list: send the line "unsubscribe netdev" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>

2014-06-17 11:40:22

by Neil Horman

[permalink] [raw]
Subject: Re: netconsole breaks netpoll on bridge

On Tue, Jun 17, 2014 at 08:06:58AM +0200, Stefan Priebe - Profihost AG wrote:
> Am 16.06.2014 23:30, schrieb Francois Romieu:
> > Stefan Priebe - Profihost AG <[email protected]> :
> > [...]
> >> That sounds great! Is there anything I can do or some code I can port to veth?
> >
> > You may add an empty handler for .ndo_poll_controller in drivers/net/veth.c
> > and give it a try on current kernel.
> >
> > It should not be too bad.
> >
> Why is an empty poll controller enough to fix it? This sounds a bit
> crazy to me.
>
Because the presence of a non-null poll_controller method is how we determine if
a device supports netpoll. Most devices require a ndo_poll_controller function
to simulate an interrupt for receiving packets, but virtual devices really
don't, so an empty function sufficies to get the device recognized as having
netpoll support. See tun_poll_controller as an example
Neil

>
> Greets,
> Stefan
> --
> To unsubscribe from this list: send the line "unsubscribe netdev" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>