2009-11-06 00:54:33

by Luis R. Rodriguez

[permalink] [raw]
Subject: Using netconsole and getting double prints

I'm getting double prints when using netconsole. This used to happen
to me and then I just enable debugging log level manually (dmesg -n 8)
but now no matter what I try I always get double prints.

For example:

[ 23.425448] console [netcon0] enabled
[ 23.425567] netconsole: network logging started
[ 23.425448] console [netcon0] enabled
[ 23.425567] netconsole: network logging started
[ 32.856073] eth0: no IPv6 routers present
[ 32.856073] eth0: no IPv6 routers present
[ 66.307342] kmemleak: 6 new suspected memory leaks (see
/sys/kernel/debug/kmemleak)
[ 66.307342] kmemleak: 6 new suspected memory leaks (see
/sys/kernel/debug/kmemleak)

Instead of dmesg -8 I'm now using ignore_loglevel as a kernel
parameter but I still get double prints. This also happens if I use
"debug" as a kernel parameter instead.

The netconsole is set up on the dev box as follows through an /etc/rc.local

dhclient eth0
IP=192.168.2
# sudo dmesg -n 8
modprobe netconsole netconsole=@/eth0,6666@${IP}/
exit 0

I capture my data with netcat script (I call it netlog):

#!/bin/bash
echo "You should now run in another window: tail -f $HOME/log"
while true; do
/bin/nc -u -l -p 6666 >> $HOME/log
done

This also just doesn't work if I run the nc manually without a redirect:

while true; do /bin/nc -u -l -p 6666; done

Any ideas?

Luis


2009-11-06 05:17:47

by Matt Mackall

[permalink] [raw]
Subject: Re: Using netconsole and getting double prints

On Thu, 2009-11-05 at 16:54 -0800, Luis R. Rodriguez wrote:
> I'm getting double prints when using netconsole. This used to happen
> to me and then I just enable debugging log level manually (dmesg -n 8)
> but now no matter what I try I always get double prints.

This is the first report I've seen of that. Recommend investigating with
wireshark.

> I capture my data with netcat script (I call it netlog):
>
> #!/bin/bash
> echo "You should now run in another window: tail -f $HOME/log"
> while true; do
> /bin/nc -u -l -p 6666 >> $HOME/log
> done
>
> This also just doesn't work if I run the nc manually without a redirect:
>
> while true; do /bin/nc -u -l -p 6666; done

That really shouldn't make any difference.

--
http://selenic.com : development and support for Mercurial and Linux

2009-11-06 16:32:56

by Luis R. Rodriguez

[permalink] [raw]
Subject: Re: Using netconsole and getting double prints

On Thu, Nov 5, 2009 at 9:17 PM, Matt Mackall <[email protected]> wrote:
> On Thu, 2009-11-05 at 16:54 -0800, Luis R. Rodriguez wrote:
>> I'm getting double prints when using netconsole. This used to happen
>> to me and then I just enable debugging log level manually (dmesg -n 8)
>> but now no matter what I try I always get double prints.
>
> This is the first report I've seen of that. Recommend investigating with
> wireshark.

Matt, did you really mean wireshark? I'm a wireless guy so wireshark
to me is this:

http://www.wireshark.org/

The prints have nothing to do with protocols though. I can get a
double print on a simple hello world driver.

Luis

2009-11-06 16:45:09

by Patrick McHardy

[permalink] [raw]
Subject: Re: Using netconsole and getting double prints

Luis R. Rodriguez wrote:
> I'm getting double prints when using netconsole. This used to happen
> to me and then I just enable debugging log level manually (dmesg -n 8)
> but now no matter what I try I always get double prints.
>
> For example:
>
> [ 23.425448] console [netcon0] enabled
> [ 23.425567] netconsole: network logging started
> [ 23.425448] console [netcon0] enabled
> [ 23.425567] netconsole: network logging started
> [ 32.856073] eth0: no IPv6 routers present
> [ 32.856073] eth0: no IPv6 routers present
> [ 66.307342] kmemleak: 6 new suspected memory leaks (see
> /sys/kernel/debug/kmemleak)
> [ 66.307342] kmemleak: 6 new suspected memory leaks (see
> /sys/kernel/debug/kmemleak)
>
> Instead of dmesg -8 I'm now using ignore_loglevel as a kernel
> parameter but I still get double prints. This also happens if I use
> "debug" as a kernel parameter instead.
>
> The netconsole is set up on the dev box as follows through an /etc/rc.local
>
> dhclient eth0
> IP=192.168.2
> # sudo dmesg -n 8
> modprobe netconsole netconsole=@/eth0,6666@${IP}/

Without a MAC address netconsole broadcasts the messages.
So I'd guess the receiving system has multiple NICs and
receives the message multiple times.

2009-11-06 16:45:43

by Matt Mackall

[permalink] [raw]
Subject: Re: Using netconsole and getting double prints

On Fri, 2009-11-06 at 08:32 -0800, Luis R. Rodriguez wrote:
> On Thu, Nov 5, 2009 at 9:17 PM, Matt Mackall <[email protected]> wrote:
> > On Thu, 2009-11-05 at 16:54 -0800, Luis R. Rodriguez wrote:
> >> I'm getting double prints when using netconsole. This used to happen
> >> to me and then I just enable debugging log level manually (dmesg -n 8)
> >> but now no matter what I try I always get double prints.
> >
> > This is the first report I've seen of that. Recommend investigating with
> > wireshark.
>
> Matt, did you really mean wireshark? I'm a wireless guy so wireshark
> to me is this:
>
> http://www.wireshark.org/

> The prints have nothing to do with protocols though. I can get a
> double print on a simple hello world driver.

Are you saying you get these double prints on the *local* machine? Are
the messages logged dmesg doubled too?

--
http://selenic.com : development and support for Mercurial and Linux

2009-11-06 17:14:56

by Luis R. Rodriguez

[permalink] [raw]
Subject: Re: Using netconsole and getting double prints

On Fri, Nov 6, 2009 at 8:45 AM, Andre Naujoks <[email protected]> wrote:

> I think the intention behind this is for you to check if they are double
> prints on your end or double sends on the other end.

Ah yeah, good point :)

2009-11-17 00:18:51

by Luis R. Rodriguez

[permalink] [raw]
Subject: Re: Using netconsole and getting double prints

On Fri, Nov 6, 2009 at 9:14 AM, Luis R. Rodriguez <[email protected]> wrote:
> On Fri, Nov 6, 2009 at 8:45 AM, Andre Naujoks <[email protected]> wrote:
>
>> I think the intention behind this is for you to check if they are double
>> prints on your end or double sends on the other end.
>
> Ah yeah, good point :)

Sniffed and saw the issue. My local router was echo'ing the message,
solution was to simply add the destination mac address on netconsole
module parameters passed.

Luis