Re: [PATCHSET] printk, netconsole: implement reliable netconsole

From: Tetsuo Handa
Date: Fri Apr 17 2015 - 14:04:01 EST


Tejun Heo wrote:
> > printk() cannot wait for ack. Trying to wait for ack would break something.
> > How can you transmit subsequent kernel messages which failed to enqueue
> > due to waiting for ack for previous kernel messages?
>
> Well, if log buffer overflows and the messages aren't at the logging
> target yet, they're lost. It's the same as doing dmesg on localhost,
> isn't it? This doesn't have much to do with where the reliability
> logic is implemented and is exactly the same with local logging too.

If you tolerate loss of kernel messages, adding sequence number to each UDP
packet will be sufficient for finding out whether the packets were lost and/or
reordered in flight.

printk("Hello");
=> netconsole sends "00000000 Hello" using UDP
printk("netconsole");
=> netconsole sends "00000001 netconsole" using UDP
printk("world\n");
=> netconsole sends "00000002 world\n" using UDP

It might be nice to allow administrator to prefix a sequence number
to netconsole messages for those who are using special receiver
program (e.g. ncrx) which checks that sequence number.

>
> Thanks.
>
> --
> tejun
>
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/