kernel space logging

Greg Freemyer greg.freemyer at gmail.com
Fri Mar 25 14:04:58 EDT 2011


On Fri, Mar 25, 2011 at 1:43 PM, Anand Arumugam <anand.arumug at gmail.com> wrote:
> On Thu, Mar 24, 2011 at 5:47 PM, Greg Freemyer <greg.freemyer at gmail.com> wrote:
>> On Tue, Mar 22, 2011 at 1:13 PM, Anand Arumugam <anand.arumug at gmail.com> wrote:
>>> Hello all!
>>>
>>> I would like to know how logging is done while the kernel is booting
>>> up. More importantly I am looking for those files in the kernel source
>>> that handles the logging part. Also I would like to know what gets
>>> logged after the kernel is up and running.
>>>
>>> Thanks for your time.
>>>
>>> cheers,
>>> -anand.
>>
>> Are you talking about the logs you see when you run dmesg?
>>
>> You are aware the kernel maintains a ring buffer that all printk's go into.
>>
>> Then there are API's that let userspace track the buffer and put the
>> messages into on disk logs.
>>
>> dmesg just dumps out the ring buffer queue.
>>
>> The userspace API to the ring buffer is syslog().
>>
>> So during bootup I _assume_ the kernel is just logging to the ring
>> buffer, and then when the system is operational enough, userspace gets
>> all the boot messages out of the kernel via syslog() and puts them to
>> on disk log files.
>>
>> It's not too magic.
>>
>> Greg
>>
>
> I was looking for the logging framework used by the kernel developers.
> Not just the dmesg logs.
>

Most of its in kernel/printk.c and include/linux/printk.h

If you mean the API for the framework, it is most easily seen in the .h file:

http://lxr.linux.no/#linux+v2.6.38/include/linux/printk.h

For the guts, see vprintk in particular:

http://lxr.linux.no/#linux+v2.6.38/kernel/printk.c#L729

HTH
Greg



More information about the Kernelnewbies mailing list