lkml.org 
[lkml]   [2014]   [May]   [20]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
From
SubjectRE: [PATCH RESEND] scsi: Output error messages using structured printk in single line
Date


> -----Original Message-----
> From: linux-scsi-owner@vger.kernel.org [mailto:linux-scsi-
> owner@vger.kernel.org] On Behalf Of James Bottomley
> Sent: Tuesday, May 20, 2014 9:22 PM
> To: Yoshihiro YUNOMAE
> Cc: Hannes Reinecke; Prarit Bhargava; linux-scsi@vger.kernel.org; Kay
> Sievers; linux-kernel@vger.kernel.org; Hidehiro Kawai; yrl.pp-
> manager.tt@hitachi.com; Masami Hiramatsu
> Subject: Re: [PATCH RESEND] scsi: Output error messages using structured
> printk in single line
>
> On Thu, 2014-02-27 at 13:17 +0900, Yoshihiro YUNOMAE wrote:
> > +/* Maximum size of a local buffer for structured printk */
> > +#define SCSI_LOG_LINE_MAX 512
> > +
> > +/* Local buffer for structured printk */
> > +struct scsi_log_line {
> > + int offset;
> > + char buf[SCSI_LOG_LINE_MAX];
> > +};
>
> This piece isn't going to fly; it's an on stack allocation of 0.5kb;
> that's too much for small stack kernels. Just changing this to a kalloc
> is going be problematic too because we're in the io paths and the
> allocation may fail. So I appreciate the problem, but I don't think the
> solution works. Could we just tag the messages and use grep to put them
> back together?
>
> James
>

When the system gets busy, I've seen CDB bytes strung out with each
byte getting its own timestamp, with messages from different devices
and threads interleaved together, so like the idea of printing each
line with a single printk() call.

Most lines aren't anywhere near 512 bytes long. Can this be coded to
let the calling function define an appropriate buffer size for
whatever it is printing, with sizeof() used to bounds check?




\
 
 \ /
  Last update: 2014-05-21 06:01    [W:1.323 / U:0.340 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site