* [PATCH] printk: Print cpuid along with the timestamp with CONFIG_PRINTK_TIME
@ 2008-09-18 19:37 Ravikiran G Thirumalai
2008-09-18 19:51 ` Andrew Morton
0 siblings, 1 reply; 5+ messages in thread
From: Ravikiran G Thirumalai @ 2008-09-18 19:37 UTC (permalink / raw)
To: Andrew Morton; +Cc: linux-kernel
I found it useful to have the cpuid of the printing cpu along with the
timestamp -- especially while debugging hangs during bootups.
I don't know why this hasn't been implemened in the kernel yet, and
cannot think of a strong reason not to have it. Yes, the cpuid prefix will
take 5 more characters per line, but having the cpuid info is worth it,
I think.
Thanks,
Kiran
---
Add cpuid information to printk if CONFIG_PRINTK_TIME is enabled.
This information is useful to debug hangs and bootup issues.
Signed-off-by: Ravikiran Thirumalai <kiran@scalex86.org>
Index: linux-git/kernel/printk.c
===================================================================
--- linux-git.orig/kernel/printk.c 2008-09-16 15:37:48.000000000 -0700
+++ linux-git/kernel/printk.c 2008-09-18 12:27:10.489662938 -0700
@@ -739,9 +739,10 @@ asmlinkage int vprintk(const char *fmt,
t = cpu_clock(printk_cpu);
nanosec_rem = do_div(t, 1000000000);
- tlen = sprintf(tbuf, "[%5lu.%06lu] ",
+ tlen = sprintf(tbuf, "[%5lu.%06lu:%d] ",
(unsigned long) t,
- nanosec_rem / 1000);
+ nanosec_rem / 1000,
+ printk_cpu);
for (tp = tbuf; tp < tbuf + tlen; tp++)
emit_log_char(*tp);
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] printk: Print cpuid along with the timestamp with CONFIG_PRINTK_TIME
2008-09-18 19:37 [PATCH] printk: Print cpuid along with the timestamp with CONFIG_PRINTK_TIME Ravikiran G Thirumalai
@ 2008-09-18 19:51 ` Andrew Morton
2008-09-19 0:35 ` Ravikiran G Thirumalai
0 siblings, 1 reply; 5+ messages in thread
From: Andrew Morton @ 2008-09-18 19:51 UTC (permalink / raw)
To: Ravikiran G Thirumalai; +Cc: linux-kernel
On Thu, 18 Sep 2008 12:37:20 -0700
Ravikiran G Thirumalai <kiran@scalex86.org> wrote:
> I found it useful to have the cpuid of the printing cpu along with the
> timestamp -- especially while debugging hangs during bootups.
>
> I don't know why this hasn't been implemened in the kernel yet, and
> cannot think of a strong reason not to have it. Yes, the cpuid prefix will
> take 5 more characters per line, but having the cpuid info is worth it,
> I think.
>
> Thanks,
> Kiran
>
> ---
>
>
> Add cpuid information to printk if CONFIG_PRINTK_TIME is enabled.
> This information is useful to debug hangs and bootup issues.
>
> Signed-off-by: Ravikiran Thirumalai <kiran@scalex86.org>
>
> Index: linux-git/kernel/printk.c
> ===================================================================
> --- linux-git.orig/kernel/printk.c 2008-09-16 15:37:48.000000000 -0700
> +++ linux-git/kernel/printk.c 2008-09-18 12:27:10.489662938 -0700
> @@ -739,9 +739,10 @@ asmlinkage int vprintk(const char *fmt,
>
> t = cpu_clock(printk_cpu);
> nanosec_rem = do_div(t, 1000000000);
> - tlen = sprintf(tbuf, "[%5lu.%06lu] ",
> + tlen = sprintf(tbuf, "[%5lu.%06lu:%d] ",
> (unsigned long) t,
> - nanosec_rem / 1000);
> + nanosec_rem / 1000,
> + printk_cpu);
>
> for (tp = tbuf; tp < tbuf + tlen; tp++)
> emit_log_char(*tp);
Yes, I guess it could be useful sometimes. otoh anyone who is down at
that level of detail and is using printk to debug something can add
their own %d/smp_processor_id().
Your patch illogically ties the cpu-id-printing feature to the
printk.time feature. I guess that's liveable with, but
Documentation/kernel-parameters.txt should be updated.
Anyone who was parsing that output might get a shock, but that's
liveable with too. Probably their parser will continue to work anwyay.
I don't know whether the usefulness of this feature outweighs its
various costs. Input is sought.
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] printk: Print cpuid along with the timestamp with CONFIG_PRINTK_TIME
2008-09-18 19:51 ` Andrew Morton
@ 2008-09-19 0:35 ` Ravikiran G Thirumalai
2008-09-19 17:15 ` Marcin Slusarz
0 siblings, 1 reply; 5+ messages in thread
From: Ravikiran G Thirumalai @ 2008-09-19 0:35 UTC (permalink / raw)
To: Andrew Morton; +Cc: linux-kernel
On Thu, Sep 18, 2008 at 12:51:23PM -0700, Andrew Morton wrote:
>On Thu, 18 Sep 2008 12:37:20 -0700
>Ravikiran G Thirumalai <kiran@scalex86.org> wrote:
>>
>> Signed-off-by: Ravikiran Thirumalai <kiran@scalex86.org>
>>
>> Index: linux-git/kernel/printk.c
>> ===================================================================
>> --- linux-git.orig/kernel/printk.c 2008-09-16 15:37:48.000000000 -0700
>> +++ linux-git/kernel/printk.c 2008-09-18 12:27:10.489662938 -0700
>> @@ -739,9 +739,10 @@ asmlinkage int vprintk(const char *fmt,
>>
>> t = cpu_clock(printk_cpu);
>> nanosec_rem = do_div(t, 1000000000);
>> - tlen = sprintf(tbuf, "[%5lu.%06lu] ",
>> + tlen = sprintf(tbuf, "[%5lu.%06lu:%d] ",
>> (unsigned long) t,
>> - nanosec_rem / 1000);
>> + nanosec_rem / 1000,
>> + printk_cpu);
>>
>> for (tp = tbuf; tp < tbuf + tlen; tp++)
>> emit_log_char(*tp);
>
>
>Your patch illogically ties the cpu-id-printing feature to the
>printk.time feature. I guess that's liveable with, but
>Documentation/kernel-parameters.txt should be updated.
>
Didn't realize Documentation/kernel-parameters.txt had reference and even a
runtime parameter to control this! I always enabled CONFIG_PRINTK_TIME
to get timestamps. Here's an updated patch.
As for the cpuid with the timestamp, the timestamp that is being
is the printed the cpu's time stamp.
---
Add cpuid information to printk if CONFIG_PRINTK_TIME is enabled.
This information is useful to debug hangs and boot issues.
Signed-off-by: Ravikiran Thirumalai <kiran@scalex86.org>
Index: linux-git/kernel/printk.c
===================================================================
--- linux-git.orig/kernel/printk.c 2008-09-16 15:37:48.000000000 -0700
+++ linux-git/kernel/printk.c 2008-09-18 12:27:10.489662938 -0700
@@ -739,9 +739,10 @@ asmlinkage int vprintk(const char *fmt,
t = cpu_clock(printk_cpu);
nanosec_rem = do_div(t, 1000000000);
- tlen = sprintf(tbuf, "[%5lu.%06lu] ",
+ tlen = sprintf(tbuf, "[%5lu.%06lu:%d] ",
(unsigned long) t,
- nanosec_rem / 1000);
+ nanosec_rem / 1000,
+ printk_cpu);
for (tp = tbuf; tp < tbuf + tlen; tp++)
emit_log_char(*tp);
Index: linux-git/Documentation/kernel-parameters.txt
===================================================================
--- linux-git.orig/Documentation/kernel-parameters.txt 2008-09-16 11:30:13.000000000 -0700
+++ linux-git/Documentation/kernel-parameters.txt 2008-09-18 17:11:35.167079714 -0700
@@ -1687,7 +1687,10 @@ and is between 256 and 4096 characters.
default: off.
printk.time= Show timing data prefixed to each printk message line
- Format: <bool> (1/Y/y=enable, 0/N/n=disable)
+ Format: <bool> (1/Y/y=enable, 0/N/n=disable).
+ Per-cpu timestamps are prefixed as
+ "[sssss.uuuuuu:cpuid]" on each and every line printed,
+ if this option is enabled.
profile= [KNL] Enable kernel profiling via /proc/profile
Format: [schedule,]<number>
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] printk: Print cpuid along with the timestamp with CONFIG_PRINTK_TIME
2008-09-19 0:35 ` Ravikiran G Thirumalai
@ 2008-09-19 17:15 ` Marcin Slusarz
2008-09-19 18:39 ` Ravikiran G Thirumalai
0 siblings, 1 reply; 5+ messages in thread
From: Marcin Slusarz @ 2008-09-19 17:15 UTC (permalink / raw)
To: Ravikiran G Thirumalai; +Cc: Andrew Morton, linux-kernel
On Thu, Sep 18, 2008 at 05:35:09PM -0700, Ravikiran G Thirumalai wrote:
> On Thu, Sep 18, 2008 at 12:51:23PM -0700, Andrew Morton wrote:
> >On Thu, 18 Sep 2008 12:37:20 -0700
> >Ravikiran G Thirumalai <kiran@scalex86.org> wrote:
> >>
> >> Signed-off-by: Ravikiran Thirumalai <kiran@scalex86.org>
> >>
> >> Index: linux-git/kernel/printk.c
> >> ===================================================================
> >> --- linux-git.orig/kernel/printk.c 2008-09-16 15:37:48.000000000 -0700
> >> +++ linux-git/kernel/printk.c 2008-09-18 12:27:10.489662938 -0700
> >> @@ -739,9 +739,10 @@ asmlinkage int vprintk(const char *fmt,
> >>
> >> t = cpu_clock(printk_cpu);
> >> nanosec_rem = do_div(t, 1000000000);
> >> - tlen = sprintf(tbuf, "[%5lu.%06lu] ",
> >> + tlen = sprintf(tbuf, "[%5lu.%06lu:%d] ",
> >> (unsigned long) t,
> >> - nanosec_rem / 1000);
> >> + nanosec_rem / 1000,
> >> + printk_cpu);
> >>
> >> for (tp = tbuf; tp < tbuf + tlen; tp++)
> >> emit_log_char(*tp);
> >
> >
> >Your patch illogically ties the cpu-id-printing feature to the
> >printk.time feature. I guess that's liveable with, but
> >Documentation/kernel-parameters.txt should be updated.
> >
>
> Didn't realize Documentation/kernel-parameters.txt had reference and even a
> runtime parameter to control this! I always enabled CONFIG_PRINTK_TIME
> to get timestamps. Here's an updated patch.
>
> As for the cpuid with the timestamp, the timestamp that is being
> is the printed the cpu's time stamp.
Do we really need this information on UP kernels?
Why don't you add another option for this feature?
Marcin
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] printk: Print cpuid along with the timestamp with CONFIG_PRINTK_TIME
2008-09-19 17:15 ` Marcin Slusarz
@ 2008-09-19 18:39 ` Ravikiran G Thirumalai
0 siblings, 0 replies; 5+ messages in thread
From: Ravikiran G Thirumalai @ 2008-09-19 18:39 UTC (permalink / raw)
To: Marcin Slusarz; +Cc: Andrew Morton, linux-kernel
On Fri, Sep 19, 2008 at 07:15:21PM +0200, Marcin Slusarz wrote:
>
>Do we really need this information on UP kernels?
I thought about it, and left it as the way it is to have a consistent format
between UP and SMP. With most of the modern cpus being multicore, or headed
that way, and since the entire timestamp prefix can be controlled by a boot
option, is it worth having different formats for UP and SMP? Most distros
ship SMP kernels anyways.
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2008-09-19 18:39 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-09-18 19:37 [PATCH] printk: Print cpuid along with the timestamp with CONFIG_PRINTK_TIME Ravikiran G Thirumalai
2008-09-18 19:51 ` Andrew Morton
2008-09-19 0:35 ` Ravikiran G Thirumalai
2008-09-19 17:15 ` Marcin Slusarz
2008-09-19 18:39 ` Ravikiran G Thirumalai
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox