diff --git a/tools/scxtop/src/app.rs b/tools/scxtop/src/app.rs index 9cb18ff0ae..f6ca1c79c0 100644 --- a/tools/scxtop/src/app.rs +++ b/tools/scxtop/src/app.rs @@ -2212,10 +2212,10 @@ impl<'a> App<'a> { fn create_process_columns() -> Vec { vec![ Column { - header: "TGID", + header: "TGID/UID", constraint: Constraint::Length(8), visible: true, - value_fn: Box::new(|tgid, _| tgid.to_string()), + value_fn: Box::new(|tgid, data| format!("{tgid}/{}", data.uid)), }, Column { header: "Name", @@ -2325,6 +2325,7 @@ impl<'a> App<'a> { .partial_cmp(&a.1.cpu_util_perc) .unwrap_or(std::cmp::Ordering::Equal) .then_with(|| b.1.threads.len().cmp(&a.1.threads.len())) + .then_with(|| b.1.uid.cmp(&a.1.uid)) }); let rows = sorted_view.into_iter().map(|(i, data)| { diff --git a/tools/scxtop/src/proc_data.rs b/tools/scxtop/src/proc_data.rs index 6699a8db36..439b6d5488 100644 --- a/tools/scxtop/src/proc_data.rs +++ b/tools/scxtop/src/proc_data.rs @@ -14,6 +14,7 @@ use std::collections::BTreeMap; #[derive(Clone, Debug)] pub struct ProcData { pub tgid: i32, + pub uid: u32, pub process_name: String, pub cpu: i32, pub llc: Option, @@ -48,6 +49,7 @@ impl ProcData { let proc_data = Self { tgid: process.pid, + uid: process.uid().unwrap(), process_name: std::mem::take(&mut proc_stats.comm), cpu, llc: None,