Re: [PATCH] printk: Fix unnecessary returning broken pipe error from devkmsg_read

From: Sergey Senozhatsky
Date: Mon Sep 23 2019 - 06:05:19 EST


On (09/18/19 21:31), zhe.he@xxxxxxxxxxxxx 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.

-ss