summaryrefslogtreecommitdiff
path: root/vmcore-dmesg
diff options
context:
space:
mode:
authorDangyi Liu <dliu@redhat.com>2015-10-28 17:15:24 +0800
committerSimon Horman <horms@verge.net.au>2015-12-09 13:00:27 +0900
commit61cfab4e2ce02f2f404130262caa89b9d03f685c (patch)
tree0673eebef944c83803b10525c848667359377b88 /vmcore-dmesg
parent35cb8a0761a0d6bde49e9ce099bddd8ccf07d74a (diff)
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 <dliu@redhat.com> Cc: Dave Young <dyoung@redhat.com> Signed-off-by: Simon Horman <horms@verge.net.au>
Diffstat (limited to 'vmcore-dmesg')
-rw-r--r--vmcore-dmesg/vmcore-dmesg.c6
1 files changed, 6 insertions, 0 deletions
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);
}