2005-02-14 15:21:21

by Srinivas G.

[permalink] [raw]
Subject: How to get the maximum output from dmesg command

Dear All,

How to get maximum output from dmesg command?
I am unable to see all my debug messages after loading my driver.
I think there is a restriction in displaying the dmesg output.
I saw in printk.c file under source directory. There I found LOG_BUF_LEN
is 16384.
But I am unable to see not more that 300 to 400 lines of code from
dmesg.
If I modify in the printk.c file then I get more lines of code from
dmesg command!!!

As var/log/messages is the source of dmesg command, I made a copy of
var/log/messages assuming that I will be getting the complete driver
trace in it. But a part of the messages that are at the initialization
of our driver are not seen.

How can I get maximum lines of output from the dmesg command?
I am using Red Hat 7.3 with 2.4.18-3 kernel version.
Can anybody help in this regard?

Thanks in advance.
Regards,
Srinivas G


2005-02-14 16:18:44

by DervishD

[permalink] [raw]
Subject: Re: How to get the maximum output from dmesg command

Hi Srinivas :)

* Srinivas G. <[email protected]> dixit:
> How to get maximum output from dmesg command?
> I am unable to see all my debug messages after loading my driver.
> I think there is a restriction in displaying the dmesg output.
> I saw in printk.c file under source directory. There I found LOG_BUF_LEN
> is 16384.

You can change this value using the configuration, namely
CONFIG_LOG_BUF_SHIFT. The value you store here is used to determine
LOG_BUF_LEN=2^CONFIG_LOG_BUF_SHIFT. You seem to have '14' as the
value of CONFIG_LOG_BUF_SHIFT. Increase it to 16 and you will have 4
times the current length for the dmesg buffer.

I'm assuming you're using a more or less recent 2.4.x kernel. I
suppose that the same is applicable to 2.6.x kernels.

Ra?l N??ez de Arenas Coronado

--
Linux Registered User 88736
http://www.dervishd.net & http://www.pleyades.net/
It's my PC and I'll cry if I want to...

2005-02-14 16:48:35

by Rogério Brito

[permalink] [raw]
Subject: Re: How to get the maximum output from dmesg command

Srinivas G. <[email protected]> wrote:
> How to get maximum output from dmesg command?
> I am unable to see all my debug messages after loading my driver.
> I think there is a restriction in displaying the dmesg output.

There is indeed.

> I saw in printk.c file under source directory. There I found LOG_BUF_LEN
> is 16384.

Sorry if this is obvious, but have you considered using the -s option of
dmesg?


Hope I understood it correctly, Rog?rio.

--
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Rog?rio Brito - [email protected] - http://www.ime.usp.br/~rbrito
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

2005-02-14 17:28:39

by DervishD

[permalink] [raw]
Subject: Re: How to get the maximum output from dmesg command

Hi Rog?rio :)

* Rog?rio Brito <[email protected]> dixit:
> Srinivas G. <[email protected]> wrote:
> > I saw in printk.c file under source directory. There I found LOG_BUF_LEN
> > is 16384.
> Sorry if this is obvious, but have you considered using the -s option of
> dmesg?

Of course, there is no point in making your LOG_BUF larger in the
kernel if dmesg is going to present just 2^14 bytes at most. You have
to use -s, Srinivas.

Ra?l N??ez de Arenas Coronado

--
Linux Registered User 88736
http://www.dervishd.net & http://www.pleyades.net/
It's my PC and I'll cry if I want to...