Commit f8ff195e authored by John Ogness's avatar John Ogness Committed by Petr Mladek

docs: vmcoreinfo: add lockless printk ringbuffer vmcoreinfo

With the introduction of the lockless printk ringbuffer, the
VMCOREINFO relating to the kernel log buffer was changed. Update the
documentation to match those changes.

Fixes: 896fbe20 ("printk: use the lockless ringbuffer")
Reported-by: default avatarNick Desaulniers <ndesaulniers@google.com>
Signed-off-by: default avatarJohn Ogness <john.ogness@linutronix.de>
Reviewed-by: default avatarPetr Mladek <pmladek@suse.com>
Signed-off-by: default avatarPetr Mladek <pmladek@suse.com>
Link: https://lore.kernel.org/r/20200814213316.6394-1-john.ogness@linutronix.de
parent 550c10d2
...@@ -184,50 +184,123 @@ from this. ...@@ -184,50 +184,123 @@ from this.
Free areas descriptor. User-space tools use this value to iterate the Free areas descriptor. User-space tools use this value to iterate the
free_area ranges. MAX_ORDER is used by the zone buddy allocator. free_area ranges. MAX_ORDER is used by the zone buddy allocator.
log_first_idx prb
---
A pointer to the printk ringbuffer (struct printk_ringbuffer). This
may be pointing to the static boot ringbuffer or the dynamically
allocated ringbuffer, depending on when the the core dump occurred.
Used by user-space tools to read the active kernel log buffer.
printk_rb_static
----------------
A pointer to the static boot printk ringbuffer. If @prb has a
different value, this is useful for viewing the initial boot messages,
which may have been overwritten in the dynamically allocated
ringbuffer.
clear_seq
---------
The sequence number of the printk() record after the last clear
command. It indicates the first record after the last
SYSLOG_ACTION_CLEAR, like issued by 'dmesg -c'. Used by user-space
tools to dump a subset of the dmesg log.
printk_ringbuffer
-----------------
The size of a printk_ringbuffer structure. This structure contains all
information required for accessing the various components of the
kernel log buffer.
(printk_ringbuffer, desc_ring|text_data_ring|dict_data_ring|fail)
-----------------------------------------------------------------
Offsets for the various components of the printk ringbuffer. Used by
user-space tools to view the kernel log buffer without requiring the
declaration of the structure.
prb_desc_ring
------------- -------------
Index of the first record stored in the buffer log_buf. Used by The size of the prb_desc_ring structure. This structure contains
user-space tools to read the strings in the log_buf. information about the set of record descriptors.
log_buf (prb_desc_ring, count_bits|descs|head_id|tail_id)
------- -------------------------------------------------
Offsets for the fields describing the set of record descriptors. Used
by user-space tools to be able to traverse the descriptors without
requiring the declaration of the structure.
prb_desc
--------
The size of the prb_desc structure. This structure contains
information about a single record descriptor.
(prb_desc, info|state_var|text_blk_lpos|dict_blk_lpos)
------------------------------------------------------
Offsets for the fields describing a record descriptors. Used by
user-space tools to be able to read descriptors without requiring
the declaration of the structure.
prb_data_blk_lpos
-----------------
The size of the prb_data_blk_lpos structure. This structure contains
information about where the text or dictionary data (data block) is
located within the respective data ring.
(prb_data_blk_lpos, begin|next)
-------------------------------
Console output is written to the ring buffer log_buf at index Offsets for the fields describing the location of a data block. Used
log_first_idx. Used to get the kernel log. by user-space tools to be able to locate data blocks without
requiring the declaration of the structure.
log_buf_len printk_info
----------- -----------
log_buf's length. The size of the printk_info structure. This structure contains all
the meta-data for a record.
clear_idx (printk_info, seq|ts_nsec|text_len|dict_len|caller_id)
--------- ------------------------------------------------------
The index that the next printk() record to read after the last clear Offsets for the fields providing the meta-data for a record. Used by
command. It indicates the first record after the last SYSLOG_ACTION user-space tools to be able to read the information without requiring
_CLEAR, like issued by 'dmesg -c'. Used by user-space tools to dump the declaration of the structure.
the dmesg log.
log_next_idx prb_data_ring
------------ -------------
The index of the next record to store in the buffer log_buf. Used to The size of the prb_data_ring structure. This structure contains
compute the index of the current buffer position. information about a set of data blocks.
printk_log (prb_data_ring, size_bits|data|head_lpos|tail_lpos)
---------- ---------------------------------------------------
The size of a structure printk_log. Used to compute the size of Offsets for the fields describing a set of data blocks. Used by
messages, and extract dmesg log. It encapsulates header information for user-space tools to be able to access the data blocks without
log_buf, such as timestamp, syslog level, etc. requiring the declaration of the structure.
(printk_log, ts_nsec|len|text_len|dict_len) atomic_long_t
------------------------------------------- -------------
The size of the atomic_long_t structure. Used by user-space tools to
be able to copy the full structure, regardless of its
architecture-specific implementation.
(atomic_long_t, counter)
------------------------
It represents field offsets in struct printk_log. User space tools Offset for the long value of an atomic_long_t variable. Used by
parse it and check whether the values of printk_log's members have been user-space tools to access the long value without requiring the
changed. architecture-specific declaration.
(free_area.free_list, MIGRATE_TYPES) (free_area.free_list, MIGRATE_TYPES)
------------------------------------ ------------------------------------
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment