mirror of
https://github.com/OpenVoiceOS/OpenVoiceOS
synced 2025-02-08 07:58:47 +01:00
73 lines
3.0 KiB
Diff
73 lines
3.0 KiB
Diff
From 9f91bfaa43a80f0b70ea972605e390a2003681ee Mon Sep 17 00:00:00 2001
|
|
From: John Ogness <john.ogness@linutronix.de>
|
|
Date: Mon, 6 Nov 2023 15:01:58 +0000
|
|
Subject: [PATCH 119/195] printk: ringbuffer: Cleanup reader terminology
|
|
|
|
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>
|
|
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
|
---
|
|
kernel/printk/printk_ringbuffer.c | 16 +++++++++-------
|
|
1 file changed, 9 insertions(+), 7 deletions(-)
|
|
|
|
diff --git a/kernel/printk/printk_ringbuffer.c b/kernel/printk/printk_ringbuffer.c
|
|
index 244d991ffd73..67ee1c62fcd6 100644
|
|
--- a/kernel/printk/printk_ringbuffer.c
|
|
+++ b/kernel/printk/printk_ringbuffer.c
|
|
@@ -1987,11 +1987,13 @@ u64 prb_first_seq(struct printk_ringbuffer *rb)
|
|
}
|
|
|
|
/*
|
|
- * 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)
|
|
@@ -2010,7 +2012,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 {
|
|
@@ -2043,7 +2045,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)
|
|
@@ -2073,7 +2075,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)
|
|
--
|
|
2.43.0
|
|
|