From 61cfab4e2ce02f2f404130262caa89b9d03f685c Mon Sep 17 00:00:00 2001 From: Dangyi Liu Date: Wed, 28 Oct 2015 17:15:24 +0800 Subject: vmcore-dmesg: Collect full dmesg regardless of logged_chars logged_chars would be set to 0 by `dmesg -c`, but full dmesg is useful for debugging. 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, as the same logic as crash utility is using. Signed-off-by: Dangyi Liu Cc: Dave Young Signed-off-by: Simon Horman --- vmcore-dmesg/vmcore-dmesg.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/vmcore-dmesg/vmcore-dmesg.c b/vmcore-dmesg/vmcore-dmesg.c index f47ee11..0364636 100644 --- a/vmcore-dmesg/vmcore-dmesg.c +++ b/vmcore-dmesg/vmcore-dmesg.c @@ -540,6 +540,12 @@ static void dump_dmesg_legacy(int fd) exit(53); } + /* + * 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); } -- cgit