[Crash-utility] [PATCH] help: Introduce -i option to dump dmi_ident[] data
Dave Anderson
anderson at prospeed.net
Sat Dec 5 20:16:47 UTC 2015
Hi Aaron,
This kind of kernel/machine specific information has no place in the "help" command, which is wholly concerned with crash utility internal debug related information.
It's probably not worthy of its own command, so maybe it could be a "sys" or "mach" option?
Dave
Sent from my Verizon Wireless 4G LTE smartphone
-------- Original message --------
From: Aaron Tomlin <atomlin at redhat.com>
Date: 12/05/2015 12:41 PM (GMT-05:00)
To: crash-utility at redhat.com
Cc: milos at redhat.com, bsingh at redhat.com
Subject: [Crash-utility] [PATCH] help: Introduce -i option to dump
dmi_ident[] data
This patch introduces a '-i' option to the 'help' command to allow the user
to conveniently display the DMI (Desktop Management Interface) table,
if available. For example:
crash> help -i
dmi_ident[1]: LENOVO
dmi_ident[2]: GIET75WW (2.25 )
dmi_ident[3]: 06/24/2014
dmi_ident[4]: LENOVO
dmi_ident[5]: 20AMS22U0C
dmi_ident[6]: ThinkPad X240
dmi_ident[7]: PC00CDZE
dmi_ident[8]: 01338439-0853-CB11-8EBB-CE1D1FC1CBC0
dmi_ident[9]: LENOVO
dmi_ident[10]: 20AMS22U0C
dmi_ident[11]: Not Defined
dmi_ident[12]: L1HF47E00T3
dmi_ident[13]: Not Available
dmi_ident[14]: LENOVO
dmi_ident[15]: 10
dmi_ident[16]: Not Available
dmi_ident[17]: PC00CDZE
dmi_ident[18]: No Asset Information
crash>
Suggested-by: Buland Singh <bsingh at redhat.com>
Signed-off-by: Aaron Tomlin <atomlin at redhat.com>
---
help.c | 35 ++++++++++++++++++++++++++++++++++-
1 file changed, 34 insertions(+), 1 deletion(-)
diff --git a/help.c b/help.c
index 883ddd0..fb1d518 100644
--- a/help.c
+++ b/help.c
@@ -32,6 +32,7 @@ static char *output_info[];
static char *input_info[];
static char *README[];
static void dump_registers(void);
+static void dump_dmi_info(void);
#define GPLv2 2
#define GPLv3 3
@@ -523,7 +524,7 @@ cmd_help(void)
oflag = 0;
while ((c = getopt(argcnt, args,
- "efNDdmM:ngcaBbHhkKsvVoptTzLxOr")) != EOF) {
+ "efNDdmM:ngcaBbHhkKsvVoptTzLxOri")) != EOF) {
switch(c)
{
case 'e':
@@ -638,6 +639,7 @@ cmd_help(void)
fprintf(fp, " -f - filesys table\n");
fprintf(fp, " -h - hash_table data\n");
fprintf(fp, " -H - hash_table data (verbose)\n");
+ fprintf(fp, " -i - dump dmi_ident data\n");
fprintf(fp, " -k - kernel_table\n");
fprintf(fp, " -K - kernel_table (verbose)\n");
fprintf(fp, " -L - LKCD page cache environment\n");
@@ -663,6 +665,10 @@ cmd_help(void)
dump_registers();
return;
+ case 'i':
+ dump_dmi_info();
+ return;
+
default:
argerrs++;
break;
@@ -707,6 +713,32 @@ dump_registers(void)
ACTIVE() ? "a live system" : "this dumpfile type");
}
+static void
+dump_dmi_info(void)
+{
+ int i, len;
+ ulong dmi_ident_p, vaddr;
+ char buf[BUFSIZE];
+
+ if (!kernel_symbol_exists("dmi_ident")) {
+ error(INFO, "dmi_ident does not exist in this kernel\n");
+ }
+
+ dmi_ident_p = symbol_value("dmi_ident");
+ len = get_array_length("dmi_ident", NULL, 0);
+
+ for (i = 0; i < len; i++) {
+ readmem(dmi_ident_p + (sizeof(void *) * i),
+ KVADDR, &vaddr, sizeof(void *),
+ "dmi_ident", FAULT_ON_ERROR);
+
+ if (!vaddr)
+ continue;
+ read_string(vaddr, buf, BUFSIZE-1);
+ fprintf(fp, " dmi_ident[%d]: %s\n", i, buf);
+ }
+}
+
/*
* Format and display the help menu.
*/
@@ -991,6 +1023,7 @@ char *help_help[] = {
" -f - filesys table",
" -h - hash_table data",
" -H - hash_table data (verbose)",
+" -i - dump dmi_ident data",
" -k - kernel_table",
" -K - kernel_table (verbose)",
" -L - LKCD page cache environment",
--
2.4.3
--
Crash-utility mailing list
Crash-utility at redhat.com
https://www.redhat.com/mailman/listinfo/crash-utility
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listman.redhat.com/archives/crash-utility/attachments/20151205/a3279252/attachment.htm>
More information about the Crash-utility
mailing list