diag(kernel): log userspace scheme id + registrant pid
This commit is contained in:
@@ -233,6 +233,11 @@ impl SchemeList {
|
||||
|
||||
/// Create a new scheme.
|
||||
fn insert(&self, context: Weak<ContextLock>, token: &mut CleanLockToken) -> Result<SchemeId> {
|
||||
// Red Bear diagnostic (2026-07-15): capture the registrant pid before
|
||||
// taking the handles lock, to correlate userspace scheme ids (e.g. the
|
||||
// scheme=18 that randd's thr_fd resolves to in the boot crash) with the
|
||||
// daemon that registered them.
|
||||
let registrant_pid = context.upgrade().map(|c| c.read(token.token()).pid);
|
||||
let mut handles = handles().write(token.token());
|
||||
let id = loop {
|
||||
let mut id = SCHEME_LIST_NEXT_ID.fetch_add(1, Ordering::Relaxed);
|
||||
@@ -249,6 +254,12 @@ impl SchemeList {
|
||||
}
|
||||
};
|
||||
|
||||
error!(
|
||||
"scheme.insert: scheme_id={} registrant_pid={:?}",
|
||||
id.get(),
|
||||
registrant_pid
|
||||
);
|
||||
|
||||
let root_id = SchemeId(SCHEME_LIST_ID.load(Ordering::Relaxed));
|
||||
let inner = Arc::new(UserInner::new(root_id, id, context));
|
||||
let new_scheme = Handle::Scheme(KernelSchemes::User(UserScheme::new(inner)));
|
||||
|
||||
Reference in New Issue
Block a user