freebsd-nq/sys/kern
John Baldwin ae110b53d1 Add some new commands to hopefully make it easier to diagnose lock-related
problems in ddb:
- "show threadchain [thread]" will start with the specified thread (or the
  current kdb thread by default) and show it's state.  If it is blocked on
  a lock, it will find the owner of the lock and show its state, etc.
- "show allchains" will find all of the threads that are blocked on a
  lock (but do not have any threads blocked on a lock they hold) and show
  the resulting thread chain.
- "show lockchain <lock>" takes a pointer to a lock_object (such as a
  mutex or rwlock).  If there is a turnstile for that lock, then it will
  display all the threads blocked on the lock.  In addition, for each
  thread blocked on the lock, it will display any contested locks they
  hold, and recurse on those locks to show any threads blocked on those
  locks, etc.
2006-04-25 20:28:17 +00:00
..
bus_if.m /* -> /*- for copyright notices, minor format tweaks as necessary 2005-01-06 23:35:40 +00:00
clock_if.m /* -> /*- for copyright notices, minor format tweaks as necessary 2005-01-06 23:35:40 +00:00
cpufreq_if.m Introduce a new method, cpufreq_drv_type(), that returns the type of the 2005-02-18 00:23:36 +00:00
device_if.m /* -> /*- for copyright notices, minor format tweaks as necessary 2005-01-06 23:35:40 +00:00
genassym.sh
imgact_aout.c Correct two vm object reference leaks in error cases. 2006-03-16 08:51:59 +00:00
imgact_elf32.c
imgact_elf64.c
imgact_elf.c Avoid a vm object reference leak in a rarely used code path. 2006-01-21 20:11:49 +00:00
imgact_gzip.c Maintain the lock on the vnode for most of exec_elfN_imgact(). 2005-12-24 04:57:50 +00:00
imgact_shell.c Fix a panic which could occur parsing #!-lines in a shell-script. If the 2005-06-19 02:21:03 +00:00
inflate.c Normalize a significant number of kernel malloc type names: 2005-10-31 15:41:29 +00:00
init_main.c Modify the way we account for CPU time spent (step 1) 2006-02-07 21:22:02 +00:00
init_sysent.c Regenerate. 2006-03-23 08:48:37 +00:00
kern_acct.c Conditionalize locking of Giant for VFS in acct(2). We already 2006-03-28 21:26:59 +00:00
kern_acl.c Implement new world order in VFS locking for ACLs. This will remove the 2005-09-17 22:01:14 +00:00
kern_alq.c - Conditionalize Giant around VFS operations for ALQ, ktrace, and 2006-03-28 21:30:22 +00:00
kern_clock.c Trim trailing whitespace. 2006-04-17 20:14:51 +00:00
kern_condvar.c Fix a sleep queue race for KSE thread. 2006-02-23 00:13:58 +00:00
kern_conf.c Novel idea, don't print a string if it is NULL! 2006-01-12 19:15:14 +00:00
kern_context.c
kern_cpu.c - Print message about cpufreq and timecounter TSC 2006-03-03 02:06:04 +00:00
kern_descrip.c Mark fgetsock() and fputsock() as depcrecated: callers should rely on 2006-04-01 11:09:54 +00:00
kern_environment.c Fix memory leak introduced in previous revision. 2006-03-15 19:23:08 +00:00
kern_event.c Drop the kqueue global mutex as soon as we are finished with it rather 2006-04-14 14:27:28 +00:00
kern_exec.c Remove the unused sva and eva arguments from pmap_remove_pages(). 2006-04-03 21:16:10 +00:00
kern_exit.c Kill the last Giant acquisition in the exit(2) code. This Giant acquisition 2006-04-10 14:07:28 +00:00
kern_fork.c Fix a race between file operations and rfork(RFCFDG) by parking 2006-03-15 23:24:14 +00:00
kern_idle.c Divorce critical sections from spinlocks. Critical sections as denoted by 2005-04-04 21:53:56 +00:00
kern_intr.c Change msleep() and tsleep() to not alter the calling thread's priority 2006-04-17 18:20:38 +00:00
kern_jail.c Push Giant down in jails. Pass the MPSAFE flag to NDINIT, and keep track 2005-09-28 00:30:56 +00:00
kern_kse.c Close some races between procfs/ptrace and exit(2): 2006-02-22 18:57:50 +00:00
kern_kthread.c Don't do a PHOLD() in kthread_create() w/o a matching PRELE() in 2006-02-22 17:21:45 +00:00
kern_ktr.c Whitespace. 2006-01-27 23:06:08 +00:00
kern_ktrace.c - Conditionalize Giant around VFS operations for ALQ, ktrace, and 2006-03-28 21:30:22 +00:00
kern_linker.c MFP4: Support for profiling dynamically loaded objects. 2006-03-26 12:20:54 +00:00
kern_lock.c - Remove and unused include. 2005-12-23 21:32:40 +00:00
kern_lockf.c Print name of device instead of useless major/minor numbers. 2005-03-29 08:13:01 +00:00
kern_mac.c Don't call vn_finished_write() if vn_start_write() failed. 2006-03-19 20:43:07 +00:00
kern_malloc.c Fix bug in malloc_uninit(): 2006-03-03 22:36:52 +00:00
kern_mbuf.c Allow for nmbclusters and maxsockets to be increased via sysctl. 2006-04-21 09:25:40 +00:00
kern_mib.c mp_ncpus is always (properly) initialized, even on UP kernels, so just use it. 2005-08-21 18:03:31 +00:00
kern_module.c Add a new module_file() function that returns the linker_file_t associated 2006-04-17 19:44:44 +00:00
kern_mtxpool.c Make a bunch of malloc types static. 2005-02-10 12:02:37 +00:00
kern_mutex.c Mark the thread pointer used during an adaptive spin volatile so that the 2006-04-14 19:51:50 +00:00
kern_ntptime.c Explicitly acquire Giant around the ntp_gettime() and assert it in the 2005-05-28 14:34:41 +00:00
kern_physio.c /* -> /*- for copyright notices, minor format tweaks as necessary 2005-01-06 23:35:40 +00:00
kern_pmc.c Fix -Wundef. 2005-12-04 02:12:43 +00:00
kern_poll.c Change msleep() and tsleep() to not alter the calling thread's priority 2006-04-17 18:20:38 +00:00
kern_proc.c CPU time accounting speedup (step 2) 2006-02-11 09:33:07 +00:00
kern_prot.c Audit the arguments (user/group IDs) for the system calls that set these IDs. 2006-02-06 00:32:33 +00:00
kern_resource.c Go over calcru and friends once more. 2006-03-11 10:48:19 +00:00
kern_rwlock.c Implement rw_try_upgrade() and rw_downgrade(). rw_try_upgrade() makes a 2006-04-19 21:06:52 +00:00
kern_sema.c /* -> /*- for copyright notices, minor format tweaks as necessary 2005-01-06 23:35:40 +00:00
kern_shutdown.c On shutdown try to turn off all swap devices. This way GEOM providers are 2006-04-10 10:03:41 +00:00
kern_sig.c Don't try to kill embryonic processes in killpg1(). This prevents 2006-04-21 19:26:21 +00:00
kern_subr.c /* -> /*- for copyright notices, minor format tweaks as necessary 2005-01-06 23:35:40 +00:00
kern_switch.c Trim trailing whitespace. 2005-12-28 17:13:31 +00:00
kern_sx.c Add a new file (kern/subr_lock.c) for holding code related to struct 2006-01-17 16:55:17 +00:00
kern_synch.c Change msleep() and tsleep() to not alter the calling thread's priority 2006-04-17 18:20:38 +00:00
kern_syscalls.c
kern_sysctl.c Make sysctl_msec_to_ticks(SYSCTL_HANDLER_ARGS) generally available instead 2006-02-16 15:40:36 +00:00
kern_tc.c Disable the "cputick increased..." message now that the dust has settled. 2006-03-15 20:22:32 +00:00
kern_thr.c Change msleep() and tsleep() to not alter the calling thread's priority 2006-04-17 18:20:38 +00:00
kern_thread.c Rethink it a bit, if there is a STOP flag, don't bother to resume other 2006-03-21 10:05:15 +00:00
kern_time.c Let kernel POSIX timer code and mqueue code to use integer as a resource 2006-03-01 06:29:34 +00:00
kern_timeout.c Use the recently added msleep_spin() function to simplify the 2006-02-23 19:13:12 +00:00
kern_umtx.c Change msleep() and tsleep() to not alter the calling thread's priority 2006-04-17 18:20:38 +00:00
kern_uuid.c Add parse_uuid() that creates a binary representation of an UUID from 2005-10-07 13:37:10 +00:00
kern_xxx.c /* -> /*- for copyright notices, minor format tweaks as necessary 2005-01-06 23:35:40 +00:00
ksched.c Use proc lock to prevent a thread from exiting, Giant was no longer used to 2006-04-10 04:55:59 +00:00
link_elf_obj.c Make our ELF64 type definitions match standards. In particular this 2005-12-18 04:52:37 +00:00
link_elf.c Make our ELF64 type definitions match standards. In particular this 2005-12-18 04:52:37 +00:00
linker_if.m /* -> /*- for copyright notices, minor format tweaks as necessary 2005-01-06 23:35:40 +00:00
Make.tags.inc
Makefile Add a 'sysent' target that depends on the various files built from 2005-07-13 20:50:17 +00:00
makesyscalls.sh Introduce a new field in the syscalls.master file format to hold the 2005-05-30 15:09:18 +00:00
md4c.c /* -> /*- for copyright notices, minor format tweaks as necessary 2005-01-06 23:35:40 +00:00
md5c.c Fix a panic on sparc64 related to inproper aligment - we cannot assume, 2006-03-30 18:45:50 +00:00
p1003_1b.c Use proc lock to prevent a thread from exiting, Giant was no longer used to 2006-04-10 04:55:59 +00:00
posix4_mib.c Back when VOP_* was introduced, we did not have new-style struct 2004-12-01 23:16:38 +00:00
sched_4bsd.c Change msleep() and tsleep() to not alter the calling thread's priority 2006-04-17 18:20:38 +00:00
sched_ule.c Use variable i instead of variable cpus as an index to get correct kseq. 2005-12-27 12:02:03 +00:00
serdev_if.m MFp4: Add the ipend() method to the serdev I/F to allow umbrella 2006-04-23 22:12:39 +00:00
subr_acl_posix1e.c Implement new world order in VFS locking for ACLs. This will remove the 2005-09-17 22:01:14 +00:00
subr_autoconf.c /* -> /*- for copyright notices, minor format tweaks as necessary 2005-01-06 23:35:40 +00:00
subr_blist.c
subr_bus.c const'ify resource_spec to note that we won't be changing anything while 2006-04-20 01:44:16 +00:00
subr_clist.c /* -> /*- for copyright notices, minor format tweaks as necessary 2005-01-06 23:35:40 +00:00
subr_clock.c /* -> /*- for copyright notices, minor format tweaks as necessary 2005-01-06 23:35:40 +00:00
subr_devstat.c - Remove two mtx_asserts that can incorrectly trigger if 2005-05-03 10:58:05 +00:00
subr_disk.c When calling bioq_first() to see if a queue is empty in bioq_disksort(), 2006-01-13 23:27:12 +00:00
subr_eventhandler.c eliminate potential null deref 2005-02-23 19:32:29 +00:00
subr_firmware.c firmware(9) is a subsystem to load binary data into the kernel via a 2006-01-29 02:52:42 +00:00
subr_hints.c The resource_xxx routines in subr_hints.c are called before and after the 2005-07-31 10:46:55 +00:00
subr_kdb.c Increment kdb_active after we stopped the other CPUs and decrement 2006-04-04 00:40:20 +00:00
subr_kobj.c Increment kobj_lookup_misses on a miss rather than decrementing it. 2005-12-29 18:00:42 +00:00
subr_lock.c Add a basic reader/writer lock implementation to the kernel. This 2006-01-27 23:13:26 +00:00
subr_log.c Use dynamic major number allocation. 2005-02-27 22:02:03 +00:00
subr_mbpool.c /* -> /*- for copyright notices, minor format tweaks as necessary 2005-01-06 23:35:40 +00:00
subr_mchain.c Change API of mb_copy_t in libmchain so that netsmb can handle 2005-07-29 13:22:37 +00:00
subr_module.c
subr_msgbuf.c /* -> /*- for copyright notices, minor format tweaks as necessary 2005-01-06 23:35:40 +00:00
subr_param.c Partially revert revision 1.66, which contained a change that did not 2005-10-14 19:15:10 +00:00
subr_pcpu.c Fix 'show allpcpu' ddb command on non-x86. CPU IDs are in the range 0 .. 2005-11-03 21:06:29 +00:00
subr_power.c General consensus is that it would be even better to run this in a 2005-11-09 16:22:56 +00:00
subr_prf.c Implement printf 'X' conversion for both libstand and kernel. 2006-03-09 22:37:34 +00:00
subr_prof.c Change the addupc_*() functions to use the uintfptr_t type for pc rather 2005-12-16 22:08:32 +00:00
subr_rman.c r_spare1 and r_spare2 aren't needed. They aren't used. They can't be 2006-04-19 21:25:55 +00:00
subr_rtc.c /* -> /*- for copyright notices, minor format tweaks as necessary 2005-01-06 23:35:40 +00:00
subr_sbuf.c Make sbuf_copyin() return the number of bytes copied on success. 2005-12-23 11:49:53 +00:00
subr_scanf.c
subr_sleepqueue.c Print td_name instead of p_comm if td_name is non-empty for 2006-04-21 20:40:43 +00:00
subr_smp.c Rename the KDB_STOP_NMI kernel option to STOP_NMI and make it apply to all 2005-10-24 21:04:19 +00:00
subr_stack.c Add 'depth' argument to CTRSTACK() macro, which allows to reduce number 2005-08-29 11:34:08 +00:00
subr_taskqueue.c Change msleep() and tsleep() to not alter the calling thread's priority 2006-04-17 18:20:38 +00:00
subr_trap.c Test before modifying p_sflag to avoid unconditionally cache line 2006-02-10 14:59:16 +00:00
subr_turnstile.c Add some new commands to hopefully make it easier to diagnose lock-related 2006-04-25 20:28:17 +00:00
subr_unit.c Remove debugging printfs. 2005-03-14 06:51:29 +00:00
subr_witness.c Use db_lookup_thread() to lookup the thread for the passed in address 2006-04-25 20:24:23 +00:00
sys_generic.c Return error from fget_write() rather than hardcoding EBADF now that 2006-01-06 16:34:22 +00:00
sys_pipe.c - In pipe() return the error returned by pipe_create(), rather then 2006-01-30 08:25:04 +00:00
sys_process.c Close some races between procfs/ptrace and exit(2): 2006-02-22 18:57:50 +00:00
sys_socket.c Introduce three additional MAC Framework and MAC Policy entry points to 2005-04-16 18:46:29 +00:00
syscalls.c Regenerate. 2006-03-23 08:48:37 +00:00
syscalls.master Revert previous commit at davidxu's insistance. Instead, use __DECONST 2006-03-28 14:32:38 +00:00
sysv_ipc.c /* -> /*- for copyright notices, minor format tweaks as necessary 2005-01-06 23:35:40 +00:00
sysv_msg.c Add much needed descriptions for a number of the IPC related sysctl OIDs. 2005-02-12 01:22:39 +00:00
sysv_sem.c Gratuitous renaming of four System V Semaphore MAC Framework entry 2005-06-07 05:03:28 +00:00
sysv_shm.c Properly support for FreeBSD 4 32bit System V shared memory. 2006-03-30 07:42:32 +00:00
tty_compat.c Move the old BSD4.3 tty compatibility from (!BURN_BRIDGES && COMPAT_43) 2006-01-10 09:19:10 +00:00
tty_conf.c
tty_cons.c Use dynamic major number allocation for /dev/console, there is no 2005-02-27 21:52:42 +00:00
tty_pts.c Allow root to open prison pts devices too. 2006-01-31 22:19:37 +00:00
tty_pty.c Don't destroy the slave /dev entry until someone figures out why devfs seems 2006-02-02 20:35:45 +00:00
tty_subr.c /* -> /*- for copyright notices, minor format tweaks as necessary 2005-01-06 23:35:40 +00:00
tty_tty.c Merge the dev_clone and dev_clone_cred event handlers into a single 2005-08-08 19:55:32 +00:00
tty.c Move the old BSD4.3 tty compatibility from (!BURN_BRIDGES && COMPAT_43) 2006-01-10 09:19:10 +00:00
uipc_accf.c o setsockopt(2) cannot remove accept filter. [1] 2005-06-11 11:59:48 +00:00
uipc_cow.c Previously, nothing prevented the page that was returned by pmap_extract() 2005-10-23 07:41:56 +00:00
uipc_domain.c Allow for nmbclusters and maxsockets to be increased via sysctl. 2006-04-21 09:25:40 +00:00
uipc_mbuf2.c Define four constants, MBUF_{,MEM,CLUSTER,PACKET,TAG}_MEM_NAME, which 2005-07-17 14:04:03 +00:00
uipc_mbuf.c promote fast ipsec's m_clone routine for public use; it is renamed 2006-03-15 21:11:11 +00:00
uipc_mqueue.c Change msleep() and tsleep() to not alter the calling thread's priority 2006-04-17 18:20:38 +00:00
uipc_proto.c Remove UNIX domain socket raw socket support. This feature is documented 2006-04-09 16:29:47 +00:00
uipc_sem.c Convert remaining functions to ANSI C function declarations. 2006-01-22 00:30:46 +00:00
uipc_sockbuf.c Allow for nmbclusters and maxsockets to be increased via sysctl. 2006-04-21 09:25:40 +00:00
uipc_socket2.c Allow for nmbclusters and maxsockets to be increased via sysctl. 2006-04-21 09:25:40 +00:00
uipc_socket.c Assert that sockets passed into soabort() not be SQ_COMP or SQ_INCOMP, 2006-04-23 18:15:54 +00:00
uipc_syscalls.c Extend getsock() to return the struct file flags read while holding the 2006-04-25 11:48:16 +00:00
uipc_usrreq.c Inherit LOCAL_CREDS option from listen socket for sockets returned 2006-04-24 19:09:33 +00:00
vfs_acl.c Implement new world order in VFS locking for ACLs. This will remove the 2005-09-17 22:01:14 +00:00
vfs_aio.c 1. Move code for scanning pending I/O from aio_fsync to aio_aqueue, 2006-03-24 00:50:06 +00:00
vfs_bio.c - Properly check against B_DELWRI and B_NEEDSGIANT. This check was 2006-04-04 06:44:21 +00:00
vfs_cache.c remove duplicate sizeof vnode entry (debug.sizeof.vnode already existed)... 2006-04-16 18:38:30 +00:00
vfs_cluster.c Remove unused leaked debug function prototype. 2006-03-21 01:04:24 +00:00
vfs_default.c - GETWRITEMOUNT now returns a referenced mountpoint to prevent its 2006-03-31 03:52:24 +00:00
vfs_export.c Normalize a significant number of kernel malloc type names: 2005-10-31 15:41:29 +00:00
vfs_extattr.c - Release the references acquired by VOP_GETWRITEMOUNT and vfs_getvfs(). 2006-03-31 03:54:20 +00:00
vfs_hash.c In vfs_hash_get(): mount point should never be changed 2006-04-18 08:05:08 +00:00
vfs_init.c Remove VFS_START(). Its original purpose involved the mfs filesystem, 2005-02-20 23:02:20 +00:00
vfs_lookup.c - LK_RETRY means nothing when passed to VOP_LOCK. Call vn_lock instead. 2006-03-31 02:59:23 +00:00
vfs_mount.c - When there are dangling vnodes at unmount print them before we panic. 2006-03-31 23:38:15 +00:00
vfs_subr.c - VFS_LOCK_GIANT when recycling a vnode via getnewvnode. We may be 2006-04-04 06:46:10 +00:00
vfs_syscalls.c - Release the references acquired by VOP_GETWRITEMOUNT and vfs_getvfs(). 2006-03-31 03:54:20 +00:00
vfs_vnops.c - Release the references acquired by VOP_GETWRITEMOUNT and vfs_getvfs(). 2006-03-31 03:54:20 +00:00
vnode_if.src Eradicate caddr_t from the VFS API. 2005-12-14 00:49:52 +00:00