lkml.org 
[lkml]   [2015]   [Apr]   [17]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
SubjectRe: [PATCHSET] printk, netconsole: implement reliable netconsole
From
Date
Tejun Heo wrote:
> Hello, David.
>
> On Fri, Apr 17, 2015 at 01:17:12PM -0400, David Miller wrote:
> > If userland cannot run properly, it is almost certain that neither will
> > your complex reliability layer logic.
>
> * The bulk of patches are to pipe extended log messages to console
> drivers and let netconsole relay them to the receiver (and quite a
> bit of refactoring in the process), which, regardless of the
> reliability logic, is beneficial as we're currently losing
> structured logging (dictionary) and other metadata over consoles and
> regardless of where the reliability logic is implemented, it's a lot
> easier to have messages IDs.
>
> * The only thing necessary for reliable transmission are timer and
> netpoll. There sure are cases where they go down too but there's a
> pretty big gap between those two going down and userland getting
> hosed, but where to put the retransmission and reliability logic
> definitely is debatable.
>
> * That said, the "reliability" part of the patch series are just two
> patches - 13 and 14, both of which are actually pretty simple.
>
> > I tend to agree with Tetsuo, that in-kernel netconsole should remain
> > as simple as possible and once it starts to have any smarts and less
> > trivial logic the job belongs in userspace.
>
> Upto patch 12, it's just the same mechanism transferring extended
> messages. It doesn't add any smartness to netconsole per-se except
> that it can now emit messages with metadata headers. What do you
> think about them?

So, this patchset aims for obtaining kernel messages under problematic
condition. You have to hold messages until ack is delivered. This means
that printk buffer can become full before burst messages (e.g. SysRq-t)
are acked due to packet loss in the network.

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?

>
> Thanks.
>
> --
> tejun


\
 
 \ /
  Last update: 2015-04-17 20:21    [W:0.069 / U:0.448 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site