From: Petr Mladek <pmladek@suse.com>
To: Joe Perches <joe@perches.com>
Cc: John Ogness <john.ogness@linutronix.de>,
Sergey Senozhatsky <sergey.senozhatsky.work@gmail.com>,
Sergey Senozhatsky <sergey.senozhatsky@gmail.com>,
Steven Rostedt <rostedt@goodmis.org>,
Linus Torvalds <torvalds@linux-foundation.org>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
Thomas Gleixner <tglx@linutronix.de>,
Marek Szyprowski <m.szyprowski@samsung.com>,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH next v2 1/2] printk: avoid and/or handle record truncation
Date: Thu, 1 Oct 2020 09:54:53 +0200 [thread overview]
Message-ID: <20201001075453.GC17717@alley> (raw)
In-Reply-To: <873100a17ac1a9fc1c435ff7957b63d2540ce7fc.camel@perches.com>
On Thu 2020-10-01 00:39:31, Joe Perches wrote:
> On Thu, 2020-10-01 at 09:26 +0200, Petr Mladek wrote:
> > On Wed 2020-09-30 08:25:24, Joe Perches wrote:
> > > On Wed, 2020-09-30 at 11:07 +0206, John Ogness wrote:
> > > > If a reader provides a buffer that is smaller than the message text,
> > > > the @text_len field of @info will have a value larger than the buffer
> > > > size. If readers blindly read @text_len bytes of data without
> > > > checking the size, they will read beyond their buffer.
> > > >
> > > > Add this check to record_print_text() to properly recognize when such
> > > > truncation has occurred.
> > > >
> > > > Add a maximum size argument to the ringbuffer function to extend
> > > > records so that records can not be created that are larger than the
> > > > buffer size of readers.
> > > >
> > > > When extending records (LOG_CONT), do not extend records beyond
> > > > LOG_LINE_MAX since that is the maximum size available in the buffers
> > > > used by consoles and syslog.
> > >
> > > I still think it better to support backspace by rewinding
> > > the buffer rather than truncation of the output.
> >
> > IMHO, backspace support is not worth the complexity. It might do
> > some fancy animation on console but it does not bring any advantage
> > in static logs (dmesg, journalctl).
> >
> > It is possible that it worked in the past when the log buffer was
> > just an array of characters that were pushed to the console when
> > they appeared.
> >
> > But I am pretty sure that it has stopped working many years agl
> > variable-length record buffer").
>
> It's more that spinner or timer dots could fill the
> buffer and any message after the spinner/dots like
> success or failure is lost via truncation.
Yeah, pushing existing parts of continuous lines on the console
would be nice. It would help to see that the system died in
the middle of a risky operation.
But it requires an extra code in the record based log buffer.
It actually has been there and it was removed later because it
complicated the code and did not really worked.
It will be even more complicated with the lockless ringbuffer
and console handled in kthreads.
It might be added when there is a big demand for it. But it does
not make sense to support looong lines full of spinners or dots.
> There aren't many spinners/dots, perhaps it's better
> to find and delete them.
Yeah, that would be nice cleanup.
Best Regards,
Petr
next prev parent reply other threads:[~2020-10-01 7:55 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-09-30 9:01 [PATCH next v2 0/2] printk: fix reading beyond buffer John Ogness
2020-09-30 9:01 ` [PATCH next v2 1/2] printk: avoid and/or handle record truncation John Ogness
2020-09-30 9:43 ` Sergey Senozhatsky
2020-09-30 10:24 ` John Ogness
2020-09-30 11:28 ` Petr Mladek
2020-09-30 11:42 ` John Ogness
2020-09-30 11:53 ` Petr Mladek
2020-09-30 23:25 ` Sergey Senozhatsky
2020-09-30 13:29 ` Petr Mladek
2020-09-30 15:25 ` Joe Perches
2020-10-01 7:26 ` Petr Mladek
2020-10-01 7:39 ` Joe Perches
2020-10-01 7:54 ` Petr Mladek [this message]
2020-09-30 9:01 ` [PATCH next v2 2/2] printk: reduce setup_text_buf size to LOG_LINE_MAX John Ogness
2020-09-30 13:30 ` [PATCH next v2 0/2] printk: fix reading beyond buffer Petr Mladek
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20201001075453.GC17717@alley \
--to=pmladek@suse.com \
--cc=gregkh@linuxfoundation.org \
--cc=joe@perches.com \
--cc=john.ogness@linutronix.de \
--cc=linux-kernel@vger.kernel.org \
--cc=m.szyprowski@samsung.com \
--cc=rostedt@goodmis.org \
--cc=sergey.senozhatsky.work@gmail.com \
--cc=sergey.senozhatsky@gmail.com \
--cc=tglx@linutronix.de \
--cc=torvalds@linux-foundation.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®