From 88cc62e5a53bb1b65416bd4a40e6b6c2981fcc38 Mon Sep 17 00:00:00 2001 From: Mateusz Guzik Date: Wed, 28 Aug 2019 16:18:23 +0000 Subject: proc: eliminate the zombproc list It is not needed by anything in the kernel and it slightly drives up contention on both proctree and allproc locks. Reviewed by: kib Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D21447 --- sys/ddb/db_thread.c | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) (limited to 'sys/ddb/db_thread.c') diff --git a/sys/ddb/db_thread.c b/sys/ddb/db_thread.c index 7d9899b2685c7..780301a22106d 100644 --- a/sys/ddb/db_thread.c +++ b/sys/ddb/db_thread.c @@ -125,11 +125,7 @@ db_lookup_thread(db_expr_t addr, bool check_pid) if (td != NULL) return (td); if (check_pid) { - FOREACH_PROC_IN_SYSTEM(p) { - if (p->p_pid == decaddr) - return (FIRST_THREAD_IN_PROC(p)); - } - LIST_FOREACH(p, &zombproc, p_list) { + LIST_FOREACH(p, PIDHASH(decaddr), p_hash) { if (p->p_pid == decaddr) return (FIRST_THREAD_IN_PROC(p)); } @@ -151,11 +147,7 @@ db_lookup_proc(db_expr_t addr) decaddr = db_hex2dec(addr); if (decaddr != -1) { - FOREACH_PROC_IN_SYSTEM(p) { - if (p->p_pid == decaddr) - return (p); - } - LIST_FOREACH(p, &zombproc, p_list) { + LIST_FOREACH(p, PIDHASH(decaddr), p_hash) { if (p->p_pid == decaddr) return (p); } -- cgit v1.2.3