On Wed, Oct 22, 2025 at 4:05 AM Mikhail Zaslonko <[email protected]>
wrote:

>
>
> On 10/21/2025 5:14 AM, lijiang wrote:
> > On Tue, Sep 30, 2025 at 3:11 PM Mikhail Zaslonko <[email protected]
> >
> > wrote:
> >
> >> Hello,
> >>
> >> On 9/30/2025 7:04 AM, Tao Liu wrote:
> >>> Hi lianbo,
> >>>
> >>> This patch LGTM, but I'm unsure if this patch has relations with the
> >>> ppc64 bug:
> >>
> https://www.mail-archive.com/[email protected]/msg01649.html
> >> .
> >>
> >> This patch resolves the issue with the blank lines in the log (since you
> >> put back
> >> fputc(*p, fp) for character wise writing in case of regular 'log/dmesg'
> >> command).
> >>
> >> BUT, if I use the new 'log -R' option, the blank lines are back again!
> >>
> >
> > Hi, Mikhail
> >
> > I hacked the following code based on the v2(
> >
> https://www.mail-archive.com/[email protected]/msg01636.html
> ),
> > can you try if that can work for you?
>
> Hi Lianbo
>
> I tested the code below and it seems to work fine for s390x. At least I
> see no more issues
> with 'log' or 'log -R' output.
>

Good news, thank you for helping with the test, Mikhail.


>
> Just a minor comment below.
>
> Thanks for taking care!
>
> >
> > ---
> >  printk.c | 22 +++++++++++++++++-----
> >  1 file changed, 17 insertions(+), 5 deletions(-)
> >
> > diff --git a/printk.c b/printk.c
> > index b8fcc8e..d9427c6 100644
> > --- a/printk.c
> > +++ b/printk.c
> > @@ -116,7 +116,7 @@ dump_record(struct prb_map *m, unsigned long id, int
> > msg_flags)
> >   uint64_t ts_nsec;
> >   ulonglong nanos;
> >   ulonglong seq;
> > - int ilen = 0, i;
> > + int ilen = 0, i, nlines;
> >   char *desc, *info, *text, *p;
> >   ulong rem;
> >
> > @@ -207,11 +207,23 @@ dump_record(struct prb_map *m, unsigned long id,
> int
> > msg_flags)
> >   text_len = BUFSIZE;
> >   }
> >
> > - for (i = 0, p = text; i < text_len; i++, p++) {
> > - if (*p == '\n')
> > + for (i = 0, nlines = 0, p = text; i < text_len; i++, p++) {
> > + if (*p == '\n') {
> > + if ((msg_flags & SHOW_LOG_RUST) && (i != text_len - 1)) {
> > + nlines++;
> > + if (strlen(buf)) {
> > + fprintf(fp, "%s", buf);
> > + memset(buf, 0, strlen(buf));
> > + }
> > + }
> >   fprintf(fp, "\n%s", space(ilen));
> > - else if ((msg_flags & SHOW_LOG_RUST) && (isprint(*p) || isspace(*p)))
> > - sprintf(&buf[i], "%c", *p);
> > + } else if ((msg_flags & SHOW_LOG_RUST) && (isprint(*p) ||
> isspace(*p))) {
> > + if (nlines >= 1) {
> > + fputc(*p, fp);
> > + }
> > + else
> > + sprintf(&buf[i], "%c", *p);
>
> Maybe add braces for else statement to be consistent with preceding if? Or
> remove for both.
>

Good point. It should be good to remove both.


> As for indentation, I assume it's a mailing glitch.
>
You are right. It's a mailing glitch.

Thanks
Lianbo


>
> > + }
> >   else if (isprint(*p) || isspace(*p))
> >   fputc(*p, fp);
> >   else
>
>
--
Crash-utility mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://${domain_name}/admin/lists/devel.lists.crash-utility.osci.io/
Contribution Guidelines: https://github.com/crash-utility/crash/wiki

Reply via email to