* [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