From 2fa355a323ff907511873d35b65d143ab4584969 Mon Sep 17 00:00:00 2001 From: Christian Hergert Date: Sun, 6 Aug 2023 15:58:32 -0700 Subject: [PATCH] sysprof: add toggle for hardware information via lspci/lsusb --- src/sysprof/sysprof-greeter.ui | 21 +++++++++++++++-- src/sysprof/sysprof-recording-template.c | 30 ++++++++++++++++++++++++ 2 files changed, 49 insertions(+), 2 deletions(-) diff --git a/src/sysprof/sysprof-greeter.ui b/src/sysprof/sysprof-greeter.ui index e586910e..87fd4e0e 100644 --- a/src/sysprof/sysprof-greeter.ui +++ b/src/sysprof/sysprof-greeter.ui @@ -441,7 +441,7 @@ record_graphics_info - Include Device Information + Include GPU Information Records information about graphics hardware and drivers @@ -476,7 +476,7 @@ - Logging + Details record_system_logs @@ -492,6 +492,23 @@ + + + + + record_hardware_info + Include Hardware Information + Records information about PCI and USB devices + + + + center + + + + + + Symbols diff --git a/src/sysprof/sysprof-recording-template.c b/src/sysprof/sysprof-recording-template.c index 71d1eba0..165078a4 100644 --- a/src/sysprof/sysprof-recording-template.c +++ b/src/sysprof/sysprof-recording-template.c @@ -39,6 +39,7 @@ struct _SysprofRecordingTemplate guint energy_usage : 1; guint frame_timings : 1; guint graphics_info : 1; + guint hardware_info : 1; guint javascript_stacks : 1; guint memory_allocations : 1; guint memory_usage : 1; @@ -62,6 +63,7 @@ enum { PROP_ENVIRON, PROP_FRAME_TIMINGS, PROP_GRAPHICS_INFO, + PROP_HARDWARE_INFO, PROP_JAVASCRIPT_STACKS, PROP_MEMORY_ALLOCATIONS, PROP_MEMORY_USAGE, @@ -145,6 +147,10 @@ sysprof_recording_template_get_property (GObject *object, g_value_set_boolean (value, self->graphics_info); break; + case PROP_HARDWARE_INFO: + g_value_set_boolean (value, self->hardware_info); + break; + case PROP_JAVASCRIPT_STACKS: g_value_set_boolean (value, self->javascript_stacks); break; @@ -241,6 +247,10 @@ sysprof_recording_template_set_property (GObject *object, self->graphics_info = g_value_get_boolean (value); break; + case PROP_HARDWARE_INFO: + self->hardware_info = g_value_get_boolean (value); + break; + case PROP_JAVASCRIPT_STACKS: self->javascript_stacks = g_value_get_boolean (value); break; @@ -346,6 +356,11 @@ sysprof_recording_template_class_init (SysprofRecordingTemplateClass *klass) TRUE, (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + properties[PROP_HARDWARE_INFO] = + g_param_spec_boolean ("hardware-info", NULL, NULL, + TRUE, + (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + properties[PROP_JAVASCRIPT_STACKS] = g_param_spec_boolean ("javascript-stacks", NULL, NULL, FALSE, @@ -402,6 +417,7 @@ sysprof_recording_template_init (SysprofRecordingTemplate *self) self->disk_usage = TRUE; self->frame_timings = TRUE; self->graphics_info = TRUE; + self->hardware_info = TRUE; self->memory_usage = TRUE; self->native_stacks = TRUE; self->network_usage = TRUE; @@ -554,6 +570,20 @@ sysprof_recording_template_apply (SysprofRecordingTemplate *self, NULL)); } + if (self->hardware_info) + { + sysprof_profiler_add_instrument (profiler, + g_object_new (SYSPROF_TYPE_SUBPROCESS_OUTPUT, + "stdout-path", "lsusb", + "command-argv", (const char * const[]) {"lsusb", "-v", NULL}, + NULL)); + sysprof_profiler_add_instrument (profiler, + g_object_new (SYSPROF_TYPE_SUBPROCESS_OUTPUT, + "stdout-path", "lspci", + "command-argv", (const char * const[]) {"lspci", "-v", NULL}, + NULL)); + } + if (self->memory_usage) sysprof_profiler_add_instrument (profiler, sysprof_memory_usage_new ());