Date: Thu, 16 Feb 2012 23:45:26 -0800 From: Julian Elischer <julian@freebsd.org> To: Marcel Moolenaar <marcel@xcllnt.net> Cc: marcel@freebsd.org, Eitan Adler <eadler@freebsd.org>, svn-src-all@freebsd.org, "Kenneth D. Merry" <ken@freebsd.org>, Andriy Gapon <avg@freebsd.org>, src-committers@freebsd.org, Bruce Evans <brde@optusnet.com.au>, svn-src-head@freebsd.org Subject: Re: svn commit: r231814 - in head/sys: kern sys Message-ID: <4F3E0596.6040808@freebsd.org> In-Reply-To: <9CB7ECE8-FF10-43BE-9EBD-16953BE3B193@xcllnt.net> References: <201202160511.q1G5BZNk099785@svn.freebsd.org> <20120216181210.K1423@besplex.bde.org> <4F3CC40D.4000307@freebsd.org> <4F3CC5C4.7020501@FreeBSD.org> <4F3CC8A5.3030107@FreeBSD.org> <20120216174758.GA64180@nargothrond.kdm.org> <20120217053341.R1256@besplex.bde.org> <20120217000846.GA7641@nargothrond.kdm.org> <4F3D9D03.6020507@FreeBSD.org> <9CB7ECE8-FF10-43BE-9EBD-16953BE3B193@xcllnt.net>
next in thread | previous in thread | raw e-mail | index | archive | help
On 2/16/12 8:49 PM, Marcel Moolenaar wrote: > On Feb 16, 2012, at 4:19 PM, Andriy Gapon wrote: > >> on 17/02/2012 02:08 Kenneth D. Merry said the following: >> [snip] >>>>> On Thu, Feb 16, 2012 at 11:13:09 +0200, Andriy Gapon wrote: >> [snip] >>>>>> For me personally the immediate benefits in the common situations >>>>>> outweighed the >>>>>> problems in the edge cases, although I still believe that we can get the >>>>>> former >>>>>> without sacrifices in the latter. >> [snip] >>> It sounds fine, but I don't have sufficient time to spend on this right >>> now. So I can either back out the changes I mentioned above (assuming we >>> get agreement from avg), or leave things as is. >> I stick to what I wrote above and so chose the status quo. >> The backout would make sense if it is immediately followed by commit of a better >> solution. Unfortunately, a lack of time here too. > I think we should lift above the immediate problem and allow for > single- and multi-line messages that are atomically appended to > the message buffer. Console output and propagation of messages > outside of the kernel should all come out of the message buffer > and preserving the atomicity of the messages. > > The message buffer does not have to be a chunk of memory that > we circularly scribble to. It can be a per-cpu linked list of > messages even. > > The advantage of thinking along these lines is that: > 1. Console output can be made optional very easily, allowing > us to implement quiet boots without loosing the ability > to look at messages collected during boot. > 2. Atomicity allows us to parse the messages reliably, which > works very well in the embedded space where monitoring of > kernel messages is common. > 3. You can decouple writing into the message buffer from > extracting messages out of the message buffer, allowing > the low-level console to become just another channel to > send messages to, rather than be fundamental for printf. > 4. A linked list (for example) eliminates the problem of > scribbling over old messages and possibly leaving partial > output that gets misinterpreted. > 5. A per-cpu message buffer eliminates serialization to > guarantee atomcity and with timestamping can very easily > be turned into a sequential log. > 6. We haven't introduced complications (e.g. locking) to > solve these problems and that make using printf in low- > level code impossible. Thank trap handlers or interrupt > handlers. > > Just a thought that this may be a good time to think > bigger or broader and address more problems while we're > at it, that is an intersting thought.. though.. how would you sort them into order for printing? maybe a single atomic 64 bit int that is incremented per message.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4F3E0596.6040808>