[PATCH] vmcore-dmesg: do not use logged_chars as dmesg length
dyoung at redhat.com
Wed Oct 28 00:06:18 PDT 2015
On 10/28/15 at 01:38pm, Dangyi Liu wrote:
> logged_chars would be set to 0 by `dmesg -c`, but we want to get the
> full dmesg after crash. So instead of using logged_chars directly, we
> calculate it by ourselves.
> Now logged_chars is set to the minimum of log_end and log_buf_len, which
> is coherent to how crash utility deals with dmesg length.
> Signed-off-by: Dangyi Liu <dliu at redhat.com>
> vmcore-dmesg/vmcore-dmesg.c | 3 +++
> 1 file changed, 3 insertions(+)
> diff --git a/vmcore-dmesg/vmcore-dmesg.c b/vmcore-dmesg/vmcore-dmesg.c
> index f47ee11..ec2570f 100644
> --- a/vmcore-dmesg/vmcore-dmesg.c
> +++ b/vmcore-dmesg/vmcore-dmesg.c
> @@ -540,6 +540,9 @@ static void dump_dmesg_legacy(int fd)
> + // `dmesg -c` would set logged_chars to 0, then we cannot get a full dmesg.
Please use /* */ style comment, also it is not a bug because
In theroy it is ok for only showing later dmesg after dmesg -c in current code.
But crash utils and vmcore-dmesg in new log buf format support dumping all
kernel messages which includes the part before dmesg -c. It is not harm to
keep same behavior with them.
So the comment should be changed to something like below:
* To collect full dmesg including the part before `dmesg -c` is useful for
* later debugging. Use same logic as what crash utility is using.
> + logged_chars = log_end < log_buf_len ? log_end : log_buf_len;
> write_to_stdout(buf + (log_buf_len - logged_chars), logged_chars);
> kexec mailing list
> kexec at lists.infradead.org
More information about the kexec