63 lines
2.0 KiB
Diff
63 lines
2.0 KiB
Diff
|
|
From 57e082edfe2651fc09035a7d9227be57ab9b8a06 Mon Sep 17 00:00:00 2001
|
||
|
|
From: Lv Ying <lvying6@huawei.com>
|
||
|
|
Date: Thu, 15 Dec 2022 21:01:59 +0800
|
||
|
|
Subject: [PATCH 1/2] rasdaemon/diskerror: fix incomplete diskerror log
|
||
|
|
|
||
|
|
Currently, rasdaemon output incomplete diskerror log(only contains timestamp):
|
||
|
|
<idle>-0 [000] 0.017915: block_rq_complete: 2022-12-16 04:17:32 +0800
|
||
|
|
|
||
|
|
Fix incomplete diskerror log just like block_rq_complete tracepoint output format:
|
||
|
|
<idle>-0 [042] d.h. 177962.715669: block_rq_complete: 21,0 N () 18446744073709551615 + 0 [-121]
|
||
|
|
---
|
||
|
|
ras-diskerror-handler.c | 22 ++++++++++++++--------
|
||
|
|
1 file changed, 14 insertions(+), 8 deletions(-)
|
||
|
|
|
||
|
|
diff --git a/ras-diskerror-handler.c b/ras-diskerror-handler.c
|
||
|
|
index b46f859..07805f7 100644
|
||
|
|
--- a/ras-diskerror-handler.c
|
||
|
|
+++ b/ras-diskerror-handler.c
|
||
|
|
@@ -97,26 +97,32 @@ int ras_diskerror_event_handler(struct trace_seq *s,
|
||
|
|
dev = (dev_t)val;
|
||
|
|
if (asprintf(&ev.dev, "%u:%u", major(dev), minor(dev)) < 0)
|
||
|
|
return -1;
|
||
|
|
+ trace_seq_printf(s, "%s ", ev.dev);
|
||
|
|
+
|
||
|
|
+ ev.rwbs = pevent_get_field_raw(s, event, "rwbs", record, &len, 1);
|
||
|
|
+ if (!ev.rwbs)
|
||
|
|
+ return -1;
|
||
|
|
+ trace_seq_printf(s, "%s ", ev.rwbs);
|
||
|
|
+
|
||
|
|
+ ev.cmd = pevent_get_field_raw(s, event, "cmd", record, &len, 1);
|
||
|
|
+ if (!ev.cmd)
|
||
|
|
+ return -1;
|
||
|
|
+ trace_seq_printf(s, "(%s) ", ev.cmd);
|
||
|
|
|
||
|
|
if (pevent_get_field_val(s, event, "sector", record, &val, 1) < 0)
|
||
|
|
return -1;
|
||
|
|
ev.sector = val;
|
||
|
|
+ trace_seq_printf(s, "%llu ", ev.sector);
|
||
|
|
|
||
|
|
if (pevent_get_field_val(s, event, "nr_sector", record, &val, 1) < 0)
|
||
|
|
return -1;
|
||
|
|
ev.nr_sector = (unsigned int)val;
|
||
|
|
+ trace_seq_printf(s, "+ %u ", ev.nr_sector);
|
||
|
|
|
||
|
|
if (pevent_get_field_val(s, event, "error", record, &val, 1) < 0)
|
||
|
|
return -1;
|
||
|
|
ev.error = get_blk_error((int)val);
|
||
|
|
-
|
||
|
|
- ev.rwbs = pevent_get_field_raw(s, event, "rwbs", record, &len, 1);
|
||
|
|
- if (!ev.rwbs)
|
||
|
|
- return -1;
|
||
|
|
-
|
||
|
|
- ev.cmd = pevent_get_field_raw(s, event, "cmd", record, &len, 1);
|
||
|
|
- if (!ev.cmd)
|
||
|
|
- return -1;
|
||
|
|
+ trace_seq_printf(s, "[%s]", ev.error);
|
||
|
|
|
||
|
|
/* Insert data into the SGBD */
|
||
|
|
#ifdef HAVE_SQLITE3
|
||
|
|
--
|
||
|
|
2.35.3
|
||
|
|
|