From: He Zhe <zhe.he@windriver.com>
To: Sergey Senozhatsky <sergey.senozhatsky.work@gmail.com>
Cc: <pmladek@suse.com>, <sergey.senozhatsky@gmail.com>,
<rostedt@goodmis.org>, <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH] printk: Fix unnecessary returning broken pipe error from devkmsg_read
Date: Mon, 23 Sep 2019 18:45:18 +0800 [thread overview]
Message-ID: <027b2f0d-b7dc-4e76-22a7-ce80c9a0aade@windriver.com> (raw)
In-Reply-To: <20190923100513.GA51932@jagdpanzerIV>
On 9/23/19 6:05 PM, Sergey Senozhatsky wrote:
> On (09/18/19 21:31), zhe.he@windriver.com wrote:
>> When users read the buffer from start, there is no need to return -EPIPE
>> since the possible overflows will not affect the output.
>>
> [..]
>> - if (user->seq < log_first_seq) {
>> + if (user->seq == 0) {
>> + user->seq = log_first_seq;
>> + } else if (user->seq < log_first_seq) {
>> /* our last seen message is gone, return error and reset */
>> user->idx = log_first_idx;
>> user->seq = log_first_seq;
> A tough call.
>
> User-space wants to read messages which are gone: log_first_seq > user->seq.
>
> I think returning EPIPE is sort of appropriate; user-space, possibly,
> can printf(stderr, "Some /dev/kmsg messages are gone\n"); or something
> like that.
Yes, a tough call. I was looking at the similar part of RT kernel and thought
that handling was better.
https://git.kernel.org/pub/scm/linux/kernel/git/rt/linux-rt-devel.git/tree/kernel/printk/printk.c?h=linux-5.2.y-rt#n706
IMHO, the EPIPE is used to inform user-space when the buffer has overflown and
there is a inconsistency/break between what has been read and what has not.
When user-space just wants to read the buffer from sequence 0, there would not
be the inconsistency.
I think it is NOT necessary to inform user-space, when it just wants to read
from the beginning of the buffer, that the buffer has changed since the time
point when it issues the action of reading. But if that IS what we want, the RT
kernel needs to be changed so that mainline and RT kernel act in the same way.
Zhe
>
> -ss
>
next prev parent reply other threads:[~2019-09-23 10:46 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-09-18 13:31 zhe.he
2019-09-23 10:05 ` Sergey Senozhatsky
2019-09-23 10:45 ` He Zhe [this message]
2019-09-23 11:39 ` Petr Mladek
2019-09-23 14:11 ` He Zhe
2019-09-23 19:58 ` John Ogness
2019-09-24 1:10 ` Sergey Senozhatsky
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=027b2f0d-b7dc-4e76-22a7-ce80c9a0aade@windriver.com \
--to=zhe.he@windriver.com \
--cc=linux-kernel@vger.kernel.org \
--cc=pmladek@suse.com \
--cc=rostedt@goodmis.org \
--cc=sergey.senozhatsky.work@gmail.com \
--cc=sergey.senozhatsky@gmail.com \
/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
Powered by JetHome