printk: ringbuffer: Cleanup reader terminology
BugLink: https://bugs.launchpad.net/bugs/2060097 [ Upstream commit 584528d621459d1a5c31da7a591218ad3bb96d6c ] With the lockless ringbuffer, it is allowed that multiple CPUs/contexts write simultaneously into the buffer. This creates an ambiguity as some writers will finalize sooner. The documentation for the prb_read functions is not clear as it refers to "not yet written" and "no data available". Clarify the return values and language to be in terms of the reader: records available for reading. Signed-off-by: John Ogness <john.ogness@linutronix.de> Reviewed-by: Petr Mladek <pmladek@suse.com> Link: https://lore.kernel.org/r/20240207134103.1357162-9-john.ogness@linutronix.de Signed-off-by: Petr Mladek <pmladek@suse.com> Stable-dep-of: b1c4c67a5e90 ("printk: ringbuffer: Skip non-finalized records in panic") Signed-off-by: Sasha Levin <sashal@kernel.org> (cherry picked from commit 411d1efc4b13fc05be36bb0ff71ad2dd427e6de3) Signed-off-by: Paolo Pisati <paolo.pisati@canonical.com>
This commit is contained in:
committed by
Roxana Nicolescu
parent
01f6337b0e
commit
9a221ccb89
@@ -2080,11 +2080,13 @@ try_again:
|
||||
}
|
||||
|
||||
/*
|
||||
* Non-blocking read of a record. Updates @seq to the last finalized record
|
||||
* (which may have no data available).
|
||||
* Non-blocking read of a record.
|
||||
*
|
||||
* See the description of prb_read_valid() and prb_read_valid_info()
|
||||
* for details.
|
||||
* On success @seq is updated to the record that was read and (if provided)
|
||||
* @r and @line_count will contain the read/calculated data.
|
||||
*
|
||||
* On failure @seq is updated to a record that is not yet available to the
|
||||
* reader, but it will be the next record available to the reader.
|
||||
*/
|
||||
static bool _prb_read_valid(struct printk_ringbuffer *rb, u64 *seq,
|
||||
struct printk_record *r, unsigned int *line_count)
|
||||
@@ -2103,7 +2105,7 @@ static bool _prb_read_valid(struct printk_ringbuffer *rb, u64 *seq,
|
||||
*seq = tail_seq;
|
||||
|
||||
} else if (err == -ENOENT) {
|
||||
/* Record exists, but no data available. Skip. */
|
||||
/* Record exists, but the data was lost. Skip. */
|
||||
(*seq)++;
|
||||
|
||||
} else {
|
||||
@@ -2136,7 +2138,7 @@ static bool _prb_read_valid(struct printk_ringbuffer *rb, u64 *seq,
|
||||
* On success, the reader must check r->info.seq to see which record was
|
||||
* actually read. This allows the reader to detect dropped records.
|
||||
*
|
||||
* Failure means @seq refers to a not yet written record.
|
||||
* Failure means @seq refers to a record not yet available to the reader.
|
||||
*/
|
||||
bool prb_read_valid(struct printk_ringbuffer *rb, u64 seq,
|
||||
struct printk_record *r)
|
||||
@@ -2166,7 +2168,7 @@ bool prb_read_valid(struct printk_ringbuffer *rb, u64 seq,
|
||||
* On success, the reader must check info->seq to see which record meta data
|
||||
* was actually read. This allows the reader to detect dropped records.
|
||||
*
|
||||
* Failure means @seq refers to a not yet written record.
|
||||
* Failure means @seq refers to a record not yet available to the reader.
|
||||
*/
|
||||
bool prb_read_valid_info(struct printk_ringbuffer *rb, u64 seq,
|
||||
struct printk_info *info, unsigned int *line_count)
|
||||
|
||||
Reference in New Issue
Block a user