Changeset View
Changeset View
Standalone View
Standalone View
sys/kern/subr_witness.c
Show First 20 Lines • Show All 2,528 Lines • ▼ Show 20 Lines | if (have_addr) | ||||
td = db_lookup_thread(addr, true); | td = db_lookup_thread(addr, true); | ||||
else | else | ||||
td = kdb_thread; | td = kdb_thread; | ||||
witness_ddb_list(td); | witness_ddb_list(td); | ||||
} | } | ||||
DB_SHOW_ALL_COMMAND(locks, db_witness_list_all) | DB_SHOW_ALL_COMMAND(locks, db_witness_list_all) | ||||
{ | { | ||||
VPS_ITERATOR_DECL(vps_iter); | |||||
struct thread *td; | struct thread *td; | ||||
struct proc *p; | struct proc *p; | ||||
/* | /* | ||||
* It would be nice to list only threads and processes that actually | * It would be nice to list only threads and processes that actually | ||||
* held sleep locks, but that information is currently not exported | * held sleep locks, but that information is currently not exported | ||||
* by WITNESS. | * by WITNESS. | ||||
*/ | */ | ||||
/* VPS_LIST_RLOCK(); */ | |||||
VPS_FOREACH(vps_iter) { | |||||
CURVPS_SET(vps_iter); | |||||
FOREACH_PROC_IN_SYSTEM(p) { | FOREACH_PROC_IN_SYSTEM(p) { | ||||
if (!witness_proc_has_locks(p)) | if (!witness_proc_has_locks(p)) | ||||
continue; | continue; | ||||
FOREACH_THREAD_IN_PROC(p, td) { | FOREACH_THREAD_IN_PROC(p, td) { | ||||
if (!witness_thread_has_locks(td)) | if (!witness_thread_has_locks(td)) | ||||
continue; | continue; | ||||
db_printf("Process %d (%s) thread %p (%d)\n", p->p_pid, | db_printf("Process %d (%s) thread %p (%d)\n", | ||||
p->p_comm, td, td->td_tid); | p->p_pid, p->p_comm, td, td->td_tid); | ||||
witness_ddb_list(td); | witness_ddb_list(td); | ||||
if (db_pager_quit) | if (db_pager_quit) | ||||
return; | return; | ||||
} | } | ||||
} | } | ||||
CURVPS_RESTORE(); | |||||
} | |||||
/* VPS_LIST_RUNLOCK(); */ | |||||
} | } | ||||
DB_SHOW_ALIAS(alllocks, db_witness_list_all) | DB_SHOW_ALIAS(alllocks, db_witness_list_all) | ||||
DB_SHOW_COMMAND(witness, db_witness_display) | DB_SHOW_COMMAND(witness, db_witness_display) | ||||
{ | { | ||||
witness_ddb_display(db_printf); | witness_ddb_display(db_printf); | ||||
} | } | ||||
▲ Show 20 Lines • Show All 519 Lines • Show Last 20 Lines |