[20] = "Unsupported Request",
};
+#define BUF_LEN 1024
+
int ras_aer_event_handler(struct trace_seq *s,
struct pevent_record *record,
struct event_format *event, void *context)
int len;
unsigned long long severity_val;
unsigned long long status_val;
+ unsigned long long val;
struct ras_events *ras = context;
time_t now;
struct tm *tm;
struct ras_aer_event ev;
- char buf[1024];
+ char buf[BUF_LEN];
/*
* Newer kernels (3.10-rc1 or upper) provide an uptime clock.
record, &len, 1);
if (!ev.dev_name)
return -1;
+ trace_seq_printf(s, "%s ", ev.dev_name);
if (pevent_get_field_val(s, event, "status", record, &status_val, 1) < 0)
return -1;
else
bitfield_msg(buf, sizeof(buf), aer_uncor_errors, 32, 0, 0, status_val);
ev.msg = buf;
+
+ if (pevent_get_field_val(s, event, "tlp_header_valid",
+ record, &val, 1) < 0)
+ return -1;
+
+ ev.tlp_header_valid = val;
+ if (ev.tlp_header_valid) {
+ ev.tlp_header = pevent_get_field_raw(s, event, "tlp_header",
+ record, &len, 1);
+ snprintf((buf + strlen(ev.msg)), BUF_LEN - strlen(ev.msg),
+ " TLP Header: %08x %08x %08x %08x",
+ ev.tlp_header[0], ev.tlp_header[1],
+ ev.tlp_header[2], ev.tlp_header[3]);
+ }
+
trace_seq_printf(s, "%s ", ev.msg);
/* Use hw_event_aer_err_type switch between different severity_val */
static const struct db_fields aer_event_fields[] = {
{ .name="id", .type="INTEGER PRIMARY KEY" },
{ .name="timestamp", .type="TEXT" },
+ { .name="dev_name", .type="TEXT" },
{ .name="err_type", .type="TEXT" },
{ .name="err_msg", .type="TEXT" },
};
log(TERM, LOG_INFO, "aer_event store: %p\n", priv->stmt_aer_event);
sqlite3_bind_text(priv->stmt_aer_event, 1, ev->timestamp, -1, NULL);
- sqlite3_bind_text(priv->stmt_aer_event, 2, ev->error_type, -1, NULL);
- sqlite3_bind_text(priv->stmt_aer_event, 3, ev->msg, -1, NULL);
+ sqlite3_bind_text(priv->stmt_aer_event, 2, ev->dev_name, -1, NULL);
+ sqlite3_bind_text(priv->stmt_aer_event, 3, ev->error_type, -1, NULL);
+ sqlite3_bind_text(priv->stmt_aer_event, 4, ev->msg, -1, NULL);
rc = sqlite3_step(priv->stmt_aer_event);
if (rc != SQLITE_OK && rc != SQLITE_DONE)