freebsd-dev/sys/kern
John Baldwin cd32bd7ad1 Several improvements to rmlock(9). Many of these are based on patches
provided by Isilon.
- Add an rm_assert() supporting various lock assertions similar to other
  locking primitives.  Because rmlocks track readers the assertions are
  always fully accurate unlike rw_assert() and sx_assert().
- Flesh out the lock class methods for rmlocks to support sleeping via
  condvars and rm_sleep() (but only while holding write locks), rmlock
  details in 'show lock' in DDB, and the lc_owner method used by
  dtrace.
- Add an internal destroyed cookie so that API functions can assert
  that an rmlock is not destroyed.
- Make use of rm_assert() to add various assertions to the API (e.g.
  to assert locks are held when an unlock routine is called).
- Give RM_SLEEPABLE locks their own lock class and always use the
  rmlock's own lock_object with WITNESS.
- Use THREAD_NO_SLEEPING() / THREAD_SLEEPING_OK() to disallow sleeping
  while holding a read lock on an rmlock.

Submitted by:	andre
Obtained from:	EMC/Isilon
2013-06-25 18:44:15 +00:00
..
bus_if.m Add a BUS_CHILD_DELETED() method that a bus can hook to allow it to cleanup 2012-08-21 18:13:09 +00:00
capabilities.conf Add pipe2() system call. 2013-05-01 22:42:42 +00:00
clock_if.m
cpufreq_if.m
device_if.m Revert r239178 and implement two new functions, namely 2012-08-15 15:42:57 +00:00
dtio_kdtrace.c Change the module name for the I/O provider to "kernel" from 2012-09-25 19:16:28 +00:00
genassym.sh
imgact_aout.c
imgact_elf32.c
imgact_elf64.c
imgact_elf.c Introduce a constant, ELF_NOTE_ROUNDSIZE, which evidently declare our 2013-05-01 14:59:16 +00:00
imgact_gzip.c - Correct mispellings of the word necessary 2013-04-17 11:42:40 +00:00
imgact_shell.c
inflate.c
init_main.c MFP4 change 210763 2013-04-03 22:24:36 +00:00
init_sysent.c aio_mlock() added: 2013-06-08 13:30:13 +00:00
kern_acct.c Remove the support for using non-mpsafe filesystem modules. 2012-10-22 17:50:54 +00:00
kern_alq.c The fix committed in r250951 replaced the reported panic with a deadlock... gold 2013-06-17 09:49:07 +00:00
kern_clock.c Add a generic way to call per event allocate / release function. 2013-03-05 10:18:48 +00:00
kern_clocksource.c - Make callout(9) tickless, relying on eventtimers(4) as backend for 2013-03-04 11:09:56 +00:00
kern_condvar.c MFcalloutng: 2013-03-04 12:20:48 +00:00
kern_conf.c Reject spaces and double quotation marks in device names. devctl(4) 2012-12-22 13:33:28 +00:00
kern_cons.c cngetc: use cpu_spinwait to ease the cncheckc loop a tiny bit 2012-10-06 19:50:23 +00:00
kern_context.c
kern_cpu.c
kern_cpuset.c Several improvements to rmlock(9). Many of these are based on patches 2013-06-25 18:44:15 +00:00
kern_ctf.c Remove the support for using non-mpsafe filesystem modules. 2012-10-22 17:50:54 +00:00
kern_descrip.c Similar to 233760 and 236717, export some more useful info about the 2013-05-03 21:11:57 +00:00
kern_dtrace.c
kern_environment.c r249408 and r249436 cause a NULL pointer dereference on the CUBIEBOARD 2013-04-16 22:09:08 +00:00
kern_et.c Fix incorrect assertion that caused panic when periodic-only timers used. 2013-03-13 06:42:01 +00:00
kern_event.c Change callout use counter to use C11 atomics. 2013-06-16 09:30:35 +00:00
kern_exec.c Don't busy the page unless we are likely to release the object lock. 2013-06-06 06:17:20 +00:00
kern_exit.c Merge Capsicum overhaul: 2013-03-02 00:53:12 +00:00
kern_fail.c
kern_ffclock.c
kern_fork.c Include PID in the error message which is printed when the maxproc limit 2013-04-19 15:19:29 +00:00
kern_gzio.c Remove the support for using non-mpsafe filesystem modules. 2012-10-22 17:50:54 +00:00
kern_hhook.c Move hhook's per-vnet initialisation to an earlier SYSINIT SI_SUB stage to 2013-06-15 10:08:34 +00:00
kern_idle.c
kern_intr.c If filter of the interrupt event is not null, print it, in addition to 2013-04-05 14:30:51 +00:00
kern_jail.c Refine the "nojail" rc keyword, adding "nojailvnet" for files that don't 2013-05-19 04:10:34 +00:00
kern_khelp.c Cleanup and simplification in khelp_{register|deregister}_helper(). No 2013-06-15 06:45:17 +00:00
kern_kthread.c
kern_ktr.c ktr: correctly handle possible wrap-around in the boot buffer 2013-02-08 07:29:07 +00:00
kern_ktrace.c Remove the support for using non-mpsafe filesystem modules. 2012-10-22 17:50:54 +00:00
kern_linker.c Remove the support for using non-mpsafe filesystem modules. 2012-10-22 17:50:54 +00:00
kern_lock.c - Fix a couple of inverted panic messages for shared/exclusive mismatches 2013-06-03 17:41:11 +00:00
kern_lockf.c
kern_lockstat.c
kern_loginclass.c
kern_malloc.c Try to improve r242655 take III: move these SYSCTLs describing the kernel 2013-02-04 09:35:48 +00:00
kern_mbuf.c Initialising the new fibnum field to a known value turns out to 2013-05-24 02:18:37 +00:00
kern_mib.c fix some fat-fingering in r246246 2013-02-02 14:19:50 +00:00
kern_module.c Fix a typo. 2012-08-22 20:01:57 +00:00
kern_mtxpool.c
kern_mutex.c Fixup r240424: On entering KDB backends, the hijacked thread to run 2012-12-22 09:37:34 +00:00
kern_ntptime.c Limit popcorn limit to something sane (either 2ns or 2 ticks if that's 2012-08-16 02:35:44 +00:00
kern_osd.c
kern_physio.c Add dev_strategy_csw() function, which is similar to dev_strategy() 2013-03-27 11:34:27 +00:00
kern_pmc.c
kern_poll.c Increase the (arbitrary) limit for the number of packets per tick 2013-05-22 16:32:18 +00:00
kern_priv.c Style nits. 2013-05-19 23:30:24 +00:00
kern_proc.c Similarly to proc_getargv() and proc_getenvv(), export proc_getauxv() 2013-04-14 20:03:48 +00:00
kern_prot.c Style fix 2012-11-14 10:33:12 +00:00
kern_racct.c Accessing td_state requires thread lock to be held. 2013-03-14 23:20:18 +00:00
kern_rangelock.c
kern_rctl.c Add CPU percentage limit enforcement to RCTL. The resouce name is "pcpu". 2012-10-26 16:01:08 +00:00
kern_resource.c Call sched_prio() to immediately change the priority of the thread in 2013-03-07 02:53:29 +00:00
kern_rmlock.c Several improvements to rmlock(9). Many of these are based on patches 2013-06-25 18:44:15 +00:00
kern_rwlock.c - Handle the recursed/not recursed flags with RA_RLOCKED in rw_assert(). 2013-06-03 17:38:57 +00:00
kern_sdt.c
kern_sema.c
kern_sharedpage.c Switch the vm_object mutex to be a rwlock. This will enable in the 2013-03-09 02:32:23 +00:00
kern_shutdown.c Switch the vm_object mutex to be a rwlock. This will enable in the 2013-03-09 02:32:23 +00:00
kern_sig.c Fix memory leak in coredump(). 2013-04-05 20:24:51 +00:00
kern_switch.c Add a comment on why inlining critical_enter() may not be a good idea 2012-12-09 04:54:22 +00:00
kern_sx.c Fixup r240424: On entering KDB backends, the hijacked thread to run 2012-12-22 09:37:34 +00:00
kern_synch.c Partially revert r195702. Deferring stops is now implemented via a set of 2013-03-18 17:23:58 +00:00
kern_syscalls.c
kern_sysctl.c - Use strdup(9) instead of reimplementing it. 2013-03-01 18:49:14 +00:00
kern_tc.c - Make callout(9) tickless, relying on eventtimers(4) as backend for 2013-03-04 11:09:56 +00:00
kern_thr.c
kern_thread.c Another NFS SIGSTOP related fix: Ignore thread suspend requests due to 2013-03-21 14:06:27 +00:00
kern_time.c Make kern_nanosleep() and pause_sbt() to use per-CPU sleep queues. 2013-03-12 06:58:49 +00:00
kern_timeout.c Cache the callout precision argument as part of the informations required 2013-03-25 09:43:50 +00:00
kern_umtx.c Fix two issues with the spin loops in the umtx(2) implementation. 2013-06-13 09:33:22 +00:00
kern_uuid.c
kern_xxx.c
ksched.c
link_elf_obj.c Remove the support for using non-mpsafe filesystem modules. 2012-10-22 17:50:54 +00:00
link_elf.c Remove the support for using non-mpsafe filesystem modules. 2012-10-22 17:50:54 +00:00
linker_if.m
Make.tags.inc Disconnect non-MPSAFE SMBFS from the build in preparation for dropping 2012-10-18 12:04:56 +00:00
Makefile
makesyscalls.sh
md4c.c
md5c.c
p1003_1b.c
posix4_mib.c
sched_4bsd.c Add CPU percentage limit enforcement to RCTL. The resouce name is "pcpu". 2012-10-26 16:01:08 +00:00
sched_ule.c Point args[0] not at the thread that is ending but at the one that 2013-04-15 17:21:02 +00:00
serdev_if.m
stack_protector.c
subr_acl_nfs4.c
subr_acl_posix1e.c
subr_autoconf.c
subr_blist.c Remove reference to the rlist code from comments, and fix a typo visible 2013-02-05 20:08:33 +00:00
subr_bufring.c
subr_bus_dma.c Move an assertion to the right spot; only bus_dmamap_load_mbuf(9) 2013-06-01 11:42:47 +00:00
subr_bus.c Fix a typo. 2013-01-23 14:37:05 +00:00
subr_busdma_bufalloc.c Create an architecture-agnostic buffer pool manager that uses uma(9) to 2012-12-20 00:34:54 +00:00
subr_clock.c
subr_counter.c On non-ACPI i386 mp_ncpus is initialized at SI_SUB_CPU, and this 2013-04-17 18:43:33 +00:00
subr_devstat.c
subr_disk.c
subr_dummy_vdso_tc.c
subr_eventhandler.c
subr_fattime.c
subr_firmware.c
subr_hash.c
subr_hints.c Style fixes. 2012-09-04 23:16:55 +00:00
subr_kdb.c
subr_kobj.c
subr_lock.c Several improvements to rmlock(9). Many of these are based on patches 2013-06-25 18:44:15 +00:00
subr_log.c MFcalloutng (r244255 by mav, with minor changes): 2013-03-04 16:07:55 +00:00
subr_mbpool.c
subr_mchain.c Mechanically substitute flags from historic mbuf allocator with 2012-12-05 08:04:20 +00:00
subr_module.c
subr_msgbuf.c
subr_param.c Implement the concept of the unmapped VMIO buffers, i.e. buffers which 2013-03-19 14:13:12 +00:00
subr_pcpu.c
subr_pctrie.c - Add a new general purpose path-compressed radix trie which can be used 2013-05-12 04:05:01 +00:00
subr_power.c
subr_prf.c
subr_prof.c
subr_rman.c
subr_rtc.c
subr_sbuf.c A library function shall not set errno to 0. 2013-05-16 18:13:10 +00:00
subr_scanf.c
subr_sglist.c
subr_sleepqueue.c Partially revert r195702. Deferring stops is now implemented via a set of 2013-03-18 17:23:58 +00:00
subr_smp.c - Correctly handle EWOULDBLOCK in quiesce_cpus 2012-12-19 20:08:06 +00:00
subr_stack.c
subr_syscall.c Fix build on ARM (and probably other platforms) 2012-12-28 06:52:53 +00:00
subr_taskqueue.c Extend taskqueue(9) to enable per-taskqueue callbacks. 2013-03-23 15:11:53 +00:00
subr_trap.c Partially revert r195702. Deferring stops is now implemented via a set of 2013-03-18 17:23:58 +00:00
subr_turnstile.c Update the comment: we do show the backtrace of misbehaving thread. 2013-02-17 21:37:32 +00:00
subr_uio.c Switch the vm_object mutex to be a rwlock. This will enable in the 2013-03-09 02:32:23 +00:00
subr_unit.c Correct double "the the" 2012-09-14 21:28:56 +00:00
subr_witness.c - Fix a couple of inverted panic messages for shared/exclusive mismatches 2013-06-03 17:41:11 +00:00
sys_capability.c Use proper malloc type for ioctls white-list. 2013-05-23 21:07:26 +00:00
sys_generic.c Rework overflow checks of r247898 to not let too "intelligent" compiler to 2013-03-09 09:07:13 +00:00
sys_pipe.c Add pipe2() system call. 2013-05-01 22:42:42 +00:00
sys_procdesc.c Add the wait6(2) system call. It takes POSIX waitid()-like process 2012-11-13 12:52:31 +00:00
sys_process.c Switch some "low-hanging fruit" to acquire read lock on vmobjects 2013-04-08 19:58:32 +00:00
sys_socket.c
syscalls.c aio_mlock() added: 2013-06-08 13:30:13 +00:00
syscalls.master Add new system call - aio_mlock(). The name speaks for itself. It allows 2013-06-08 13:27:57 +00:00
systrace_args.c aio_mlock() added: 2013-06-08 13:30:13 +00:00
sysv_ipc.c
sysv_msg.c
sysv_sem.c
sysv_shm.c Switch the vm_object mutex to be a rwlock. This will enable in the 2013-03-09 02:32:23 +00:00
tty_compat.c
tty_info.c
tty_inq.c
tty_outq.c
tty_pts.c Allow O_CLOEXEC in posix_openpt() flags. 2013-03-21 21:39:15 +00:00
tty_tty.c
tty_ttydisc.c Correct SIGTTIN handling. 2012-10-25 09:05:21 +00:00
tty.c Merge Capsicum overhaul: 2013-03-02 00:53:12 +00:00
uipc_accf.c
uipc_cow.c
uipc_debug.c
uipc_domain.c - Implement two new system calls: 2013-03-02 21:11:30 +00:00
uipc_mbuf2.c Mechanically substitute flags from historic mbuf allocator with 2012-12-05 08:04:20 +00:00
uipc_mbuf.c Fix bug in m_split() in a case when split len matches len of the 2013-03-29 14:10:40 +00:00
uipc_mqueue.c mqueue,ksem,shm: Fix race condition with setting UF_EXCLOSE. 2013-04-07 15:26:09 +00:00
uipc_sem.c Similar to 233760 and 236717, export some more useful info about the 2013-05-03 21:11:57 +00:00
uipc_shm.c mqueue,ksem,shm: Fix race condition with setting UF_EXCLOSE. 2013-04-07 15:26:09 +00:00
uipc_sockbuf.c When a previous call to sbsndptr() leaves sb->sb_sndptroff at the start of an 2013-06-19 03:08:01 +00:00
uipc_socket.c When the accept queue is full print the number of already pending 2013-05-08 14:13:14 +00:00
uipc_syscalls.c Item 1 in r248830 causes earlier exits from the sendfile(2), before 2013-05-09 16:05:51 +00:00
uipc_usrreq.c Improve r250890, so that we stop processing of a message with zero 2013-06-04 11:19:08 +00:00
vfs_acl.c Prezero the acl structure which is to be copied to usermode, to avoid 2013-02-06 15:18:46 +00:00
vfs_aio.c Add new system call - aio_mlock(). The name speaks for itself. It allows 2013-06-08 13:27:57 +00:00
vfs_bio.c - Consolidate duplicate code into support functions. 2013-06-05 23:53:00 +00:00
vfs_cache.c When renaming a directory from one parent directory to another, 2013-03-20 17:57:00 +00:00
vfs_cluster.c - Convert the bufobj lock to rwlock. 2013-05-31 00:43:41 +00:00
vfs_default.c - Convert the bufobj lock to rwlock. 2013-05-31 00:43:41 +00:00
vfs_export.c Further refine the handling of stop signals in the NFS client. The 2013-02-21 19:02:50 +00:00
vfs_extattr.c Use a shared lock for VOP_GETEXTATTR, as it is a read-like operation. 2013-03-30 15:09:04 +00:00
vfs_hash.c Add exported vfs_hash_index() function, which calculates the canonical 2013-01-14 05:41:40 +00:00
vfs_init.c Don't worry if a module is already loaded when looking for a fstype to mount 2013-02-21 02:41:37 +00:00
vfs_lookup.c Do not call the VOP_LOOKUP() for the doomed directory vnode. The 2013-04-01 09:59:38 +00:00
vfs_mount.c Revert r251590. It unexpectedly broke the build and there were some 2013-06-10 15:22:27 +00:00
vfs_mountroot.c post mountroot event after a real/final root is mounted 2013-03-23 08:59:34 +00:00
vfs_subr.c Be more generous when donating the current thread time to the owner of 2013-06-03 17:36:43 +00:00
vfs_syscalls.c - Fix nullfs vnode reference leak in nullfs_reclaim_lowervp(). The 2013-05-11 11:17:44 +00:00
vfs_vnops.c Style fixes to vn_ioctl(). 2013-05-31 16:15:22 +00:00
vnode_if.src remove vop_lookup_pre and vop_lookup_post 2012-11-22 10:36:10 +00:00