NetBSD/sys/kern
ozaki-r 683f5aa5e9 Implement debugging feature for pserialize(9)
The debugging feature detects violations of pserialize constraints.
It causes a panic:
- if a context switch happens in a read section, or
- if a sleepable function is called in a read section.

The feature is enabled only if LOCKDEBUG is on.

Discussed on tech-kern@
2017-11-21 08:49:14 +00:00
..
bufq_disksort.c Use consistently "bufq_private(bufq)" instead of "bufq->bq_private" 2017-05-04 11:03:27 +00:00
bufq_fcfs.c Use consistently "bufq_private(bufq)" instead of "bufq->bq_private" 2017-05-04 11:03:27 +00:00
bufq_priocscan.c Use consistently "bufq_private(bufq)" instead of "bufq->bq_private" 2017-05-04 11:03:27 +00:00
bufq_readprio.c Use consistently "bufq_private(bufq)" instead of "bufq->bq_private" 2017-05-04 11:03:27 +00:00
cnmagic.c Correct typo in the comment 2017-05-04 11:01:16 +00:00
core_elf32.c Set clear comment about EI_OSABI and EI_ABIVERSION 2017-05-04 11:12:23 +00:00
core_elf64.c
core_netbsd.c Introduce new ptrace(2) interface: PT_SET_SIGINFO and PT_GET_SIGINFO 2017-01-06 22:53:17 +00:00
exec_aout.c
exec_ecoff.c
exec_elf32.c The argument length is in bytes; don't use howmany() 2017-01-25 17:56:45 +00:00
exec_elf64.c The argument length is in bytes; don't use howmany() 2017-01-25 17:56:45 +00:00
exec_elf.c Store full executable path in p->p_path as discussed in tech-kern. 2017-11-07 19:44:04 +00:00
exec_script.c
exec_subr.c Export the guard size of the main thread via vm.guard_size. Add a 2017-07-02 16:41:32 +00:00
files.kern Introduce new localcount(9) reference-count primitives. 2017-05-19 00:01:33 +00:00
genlintstub.awk
init_main.c Revert printf return value change. 2017-10-27 12:25:14 +00:00
init_sysctl_base.c Allow architectures to define a macro PROC_MACHINE_ARCH(P) and 2017-10-31 12:37:23 +00:00
init_sysctl.c remove checks for failure after memory allocation calls that cannot fail: 2017-06-01 02:45:05 +00:00
init_sysent.c regen 2017-05-10 06:19:47 +00:00
kern_acct.c remove checks for failure after memory allocation calls that cannot fail: 2017-06-01 02:45:05 +00:00
kern_auth.c remove checks for failure after memory allocation calls that cannot fail: 2017-06-01 02:45:05 +00:00
kern_cctr.c
kern_cfglock.c
kern_clock.c Add a KASSERT, otherwise it looks like a NULL deref; from Mootja. 2017-02-12 18:43:56 +00:00
kern_condvar.c Apply same treatment to cv_timedwaitbt. 2017-11-12 20:04:51 +00:00
kern_core.c KNF. Remove extra spaces. No functional change. 2016-07-07 06:55:38 +00:00
kern_cpu.c
kern_ctf.c KNF. Remove extra spaces. No functional change. 2016-07-07 06:55:38 +00:00
kern_descrip.c remove checks for failure after memory allocation calls that cannot fail: 2017-06-01 02:45:05 +00:00
kern_drvctl.c remove checks for failure after memory allocation calls that cannot fail: 2017-06-01 02:45:05 +00:00
kern_event.c Don't add kevents to closing file descriptors (from riastradh) 2017-11-11 03:58:01 +00:00
kern_exec.c grab a copy of the absolute pathbuf, before namei() munges it. 2017-11-13 22:01:45 +00:00
kern_exit.c Store full executable path in p->p_path as discussed in tech-kern. 2017-11-07 19:44:04 +00:00
kern_fileassoc.c
kern_fork.c Store full executable path in p->p_path as discussed in tech-kern. 2017-11-07 19:44:04 +00:00
kern_history.c Remove the ABI version-and-length check that was recently introduced; 2017-11-03 22:45:14 +00:00
kern_hook.c
kern_idle.c
kern_ksyms_buf.c
kern_ksyms.c use Elf_Sym ** instead of casting. 2017-11-04 22:17:55 +00:00
kern_kthread.c - Propagate the signal mask from the ucontext_t to the newly created thread 2017-04-21 15:10:34 +00:00
kern_ktrace_vfs.c
kern_ktrace.c If we go to allocate and find someone else has at the same time, don't 2017-08-28 04:57:11 +00:00
kern_lock.c Implement debugging feature for pserialize(9) 2017-11-21 08:49:14 +00:00
kern_lwp.c Unwrap two lines. NFC. 2017-06-22 09:05:09 +00:00
kern_malloc.c Avoid integer overflow in kern_malloc(). Reported by Ilja Van Sprundel. 2017-07-28 12:28:48 +00:00
kern_module_vfs.c remove checks for failure after memory allocation calls that cannot fail: 2017-06-01 02:45:05 +00:00
kern_module.c remove checks for failure after memory allocation calls that cannot fail: 2017-06-01 02:45:05 +00:00
kern_mutex_obj.c
kern_mutex.c more const 2017-09-16 23:55:33 +00:00
kern_ntptime.c
kern_pax.c fix typo 2017-06-25 04:10:47 +00:00
kern_physio.c
kern_pmf.c KNF. Remove extra spaces. No functional change. 2016-07-07 06:55:38 +00:00
kern_proc.c Store full executable path in p->p_path as discussed in tech-kern. 2017-11-07 19:44:04 +00:00
kern_prot.c Make p_ppid contain the original parent's pid even for traced processes. 2016-11-13 15:25:01 +00:00
kern_ras.c Make the execution flow canonical instead of jumping back and forth, and 2016-07-04 07:56:07 +00:00
kern_rate.c
kern_resource.c Add new sysctl variable proc.curproc.paxflags so a process can determine 2017-03-24 21:43:20 +00:00
kern_rndpool.c
kern_rndq.c Ask on-demand entropy sources to produce enough data to fill buffer. 2016-05-21 15:27:15 +00:00
kern_rndsink.c Use rnd_getmore as intended. No more essay needed here. 2016-05-21 15:33:40 +00:00
kern_runq.c remove checks for failure after memory allocation calls that cannot fail: 2017-06-01 02:45:05 +00:00
kern_rwlock_obj.c
kern_rwlock.c more const 2017-09-16 23:55:33 +00:00
kern_sdt.c fix inconsistency about "sdt" provider which was declared but not defined. 2016-04-04 03:53:25 +00:00
kern_sig.c Use C99 initializer for filterops 2017-10-25 08:12:37 +00:00
kern_sleepq.c GSoC 2016 Charles Cui: Implement thread priority protection based on work 2016-07-03 14:24:58 +00:00
kern_softint.c revert kern_softint.c:r1.42 (which was incorrect fix) 2016-07-04 04:20:14 +00:00
kern_ssp.c void duplicate definition on statically linking libc+ssp and rumpkern+ssp. 2016-12-06 02:55:42 +00:00
kern_stub.c * Split sys/kern/sys_process.c into three parts: 2016-11-02 00:11:59 +00:00
kern_subr.c Include "flash" in list of block devices that don't use partitions. 2017-11-14 14:14:29 +00:00
kern_synch.c use the same string for the log and uprintf. 2017-08-06 09:14:14 +00:00
kern_syscall.c Instead of copying parts of sigswitch to process_stoptrace, use it directly. 2017-03-24 17:40:44 +00:00
kern_sysctl.c Add a check to ensure that a new sysctl node was attached in the tree 2017-04-25 22:07:10 +00:00
kern_tc.c C99ify initialization of dummy_timecounter. 2017-11-02 15:28:23 +00:00
kern_time.c Adjust clock_nanosleep(2) to not copyout remaining time struct if 2016-11-11 15:29:36 +00:00
kern_timeout.c remove checks for failure after memory allocation calls that cannot fail: 2017-06-01 02:45:05 +00:00
kern_todr.c
kern_turnstile.c
kern_uidinfo.c Need membar_datadep_consumer here. 2017-03-18 05:49:56 +00:00
kern_uuid.c
kern_veriexec.c Add two utility functions to help use kmem with strings: kmem_strdupsize, 2017-11-07 18:35:57 +00:00
kern_xxx.c Update the kernhist(9) kernel history code to address issues identified 2017-10-28 00:37:11 +00:00
kgdb_stub.c
Make.tags.inc
Makefile
makesyscalls.sh Forward-declare struct lwp' so we can use struct lwp *' here. 2017-05-10 06:08:56 +00:00
sched_4bsd.c Should be loadfactor(). 2017-07-14 13:23:48 +00:00
sched_m2.c
subr_autoconf.c Revert printf return value change. 2017-10-27 12:25:14 +00:00
subr_blist.c fix number of arguments of kmem_alloc and kmem_zalloc macro. ok skrll. 2017-02-13 16:53:41 +00:00
subr_bufq.c By popular request, don't bother initializing a static pointer to NULL. 2016-11-18 02:37:33 +00:00
subr_callback.c
subr_copy.c Introduce security.pax.mprotect.ptrace sysctl which can be used to bypass 2016-05-25 17:43:58 +00:00
subr_cprng.c Use C99 initializer for filterops 2017-10-25 08:12:37 +00:00
subr_cpufreq.c
subr_debug.c
subr_device.c
subr_devsw.c Add two utility functions to help use kmem with strings: kmem_strdupsize, 2017-11-07 18:35:57 +00:00
subr_disk_mbr.c PR kern/51208 2017-02-19 07:43:42 +00:00
subr_disk_open.c Replace DIOCGPART -> DIOCGPARTINFO which returns the data needed instead of 2015-12-08 20:36:14 +00:00
subr_disk.c Revert printf return value change. 2017-10-27 12:25:14 +00:00
subr_evcnt.c
subr_exec_fd.c
subr_extent.c don't pass 0 to the pool flags 2017-11-09 21:57:06 +00:00
subr_hash.c Add HASH_PSLIST (pslist(9)) type for hashinit() 2016-07-06 05:20:48 +00:00
subr_humanize.c
subr_interrupt.c remove checks for failure after memory allocation calls that cannot fail: 2017-06-01 02:45:05 +00:00
subr_iostat.c remove checks for failure after memory allocation calls that cannot fail: 2017-06-01 02:45:05 +00:00
subr_ipi.c
subr_kcpuset.c
subr_kmem.c Assert KM_SLEEP xor KM_NOSLEEP in all kmem allocation. 2017-11-09 23:20:12 +00:00
subr_kobj_vfs.c remove checks for failure after memory allocation calls that cannot fail: 2017-06-01 02:45:05 +00:00
subr_kobj.c use Elf_Sym ** instead of casting. 2017-11-04 22:17:55 +00:00
subr_localcount.c Implement a debugging facility (overflow/underflow detection) for localcount 2017-11-17 09:26:36 +00:00
subr_lockdebug.c more const 2017-09-16 23:55:33 +00:00
subr_log.c Use C99 initializer for filterops 2017-10-25 08:12:37 +00:00
subr_lwp_specificdata.c
subr_once.c
subr_optstr.c David Binderman in PR kern/51189: simplify loop conditions 2016-05-30 11:24:40 +00:00
subr_pcq.c
subr_pcu.c PR port-arm/52603: 2017-10-16 15:03:57 +00:00
subr_percpu.c vmem_alloc() with VM_SLEEP cannot fail, so percpu_alloc() cannot fail either. 2017-05-31 23:54:17 +00:00
subr_physmap.c
subr_pool.c - fix an assert; we can reach there if we are nowait or limitfail. 2017-11-14 15:02:06 +00:00
subr_prf.c Revert printf return value change. 2017-10-27 12:25:14 +00:00
subr_prof.c
subr_pserialize.c Implement debugging feature for pserialize(9) 2017-11-21 08:49:14 +00:00
subr_psref.c remove checks for failure after memory allocation calls that cannot fail: 2017-06-01 02:45:05 +00:00
subr_specificdata.c remove checks for failure after memory allocation calls that cannot fail: 2017-06-01 02:45:05 +00:00
subr_spldebug.c
subr_syscall_stats.c
subr_tftproot.c The mbuf is freed by the protocol even on error, so always NULL the pointer 2016-10-31 15:27:24 +00:00
subr_time.c Use the new magic BINTIME_SCALE_* macros instead of magic numbers. 2017-01-05 23:29:14 +00:00
subr_userconf.c
subr_vmem.c assert that vmem_alloc() with VM_SLEEP does not fail. 2017-05-31 23:53:30 +00:00
subr_workqueue.c
subr_xcall.c Change a KASSERT to KASSERTMSG and print the xcall function to be 2017-06-21 07:39:04 +00:00
sys_aio.c remove checks for failure after memory allocation calls that cannot fail: 2017-06-01 02:45:05 +00:00
sys_descrip.c
sys_generic.c remove checks for failure after memory allocation calls that cannot fail: 2017-06-01 02:45:05 +00:00
sys_lwp.c remove checks for failure after memory allocation calls that cannot fail: 2017-06-01 02:45:05 +00:00
sys_module.c remove checks for failure after memory allocation calls that cannot fail: 2017-06-01 02:45:05 +00:00
sys_mqueue.c
sys_pipe.c Use C99 initializer for filterops 2017-10-25 08:12:37 +00:00
sys_pmc.c
sys_process.c Paranoia... keep vmspace reference while doing pmap_procwr 2017-04-13 07:58:45 +00:00
sys_pset.c
sys_ptrace_common.c Remove the filesystem tracing feature 2017-08-28 00:46:06 +00:00
sys_ptrace.c Introduce PT_GETDBREGS and PT_SETDBREGS in ptrace(2) on i386 and amd64 2017-02-23 03:34:22 +00:00
sys_sched.c Fix reversed test. 2016-07-30 15:38:17 +00:00
sys_select.c remove checks for failure after memory allocation calls that cannot fail: 2017-06-01 02:45:05 +00:00
sys_sig.c Realtime signal support from GSoC 2016, Charles Cui. 2016-08-04 06:43:43 +00:00
sys_socket.c KNF. Remove extra spaces. No functional change. 2016-07-07 06:55:38 +00:00
sys_syscall.c
syscalls_autoload.c regen 2017-05-10 06:19:47 +00:00
syscalls.c regen 2017-05-10 06:19:47 +00:00
syscalls.conf Include non-portable <sys/idtype.h> inside RUMP_CLIENT protection. 2016-05-06 10:17:34 +00:00
syscalls.master * Split sys/kern/sys_process.c into three parts: 2016-11-02 00:11:59 +00:00
systrace_args.c regen 2017-05-10 06:19:47 +00:00
sysv_ipc.c When unloading the module, clear the address of the kauth_listener 2015-12-05 00:51:42 +00:00
sysv_msg.c don't forget to destroy a cv 2016-09-05 14:13:50 +00:00
sysv_sem.c
sysv_shm.c We never exec(2) with a kernel vmspace, so do not test for that, but instead 2015-11-26 13:15:34 +00:00
tty_bsdpty.c
tty_conf.c
tty_ptm.c
tty_pty.c Use C99 initializer for filterops 2017-10-25 08:12:37 +00:00
tty_subr.c remove checks for failure after memory allocation calls that cannot fail: 2017-06-01 02:45:05 +00:00
tty_tty.c
tty.c Use C99 initializer for filterops 2017-10-25 08:12:37 +00:00
uipc_accf.c
uipc_domain.c Fix a race between sysctl_unpcblist and closef. 2017-09-09 14:41:19 +00:00
uipc_mbuf2.c
uipc_mbuf.c Don't use 0 for PR_NOWAIT 2017-11-09 22:21:27 +00:00
uipc_proto.c
uipc_sem.c Memory leak, found by Mootja. By the way, we probably shouldn't be 2016-10-31 15:08:45 +00:00
uipc_socket2.c move the timestamp stuff to uipc_socket.c because it already has the compat 2017-07-06 17:42:39 +00:00
uipc_socket.c Use C99 initializer for filterops 2017-10-25 08:12:37 +00:00
uipc_syscalls.c Change len type to be unsigned int for consistency with the input type. 2017-06-20 20:34:49 +00:00
uipc_usrreq.c Memory leak, found by Mootja. It is easily triggerable from userland. 2016-10-31 15:05:05 +00:00
vfs_bio.c Update the kernhist(9) kernel history code to address issues identified 2017-10-28 00:37:11 +00:00
vfs_cache.c Summarize lifetime of cache entries. 2017-03-18 22:36:56 +00:00
vfs_cwd.c
vfs_dirhash.c
vfs_getcwd.c Don't walk off the end of the dirent buffer. 2017-07-28 15:37:23 +00:00
vfs_hooks.c
vfs_init.c
vfs_lockf.c
vfs_lookup.c Fix vnode leak on error, introduced by the openat family changes in -r1.200. 2017-07-09 22:48:44 +00:00
vfs_mount.c Change forced unmount to revert open device vnodes to anonymous devices. 2017-08-21 09:00:21 +00:00
vfs_quotactl.c
vfs_subr.c Revert printf return value change. 2017-10-27 12:25:14 +00:00
vfs_syscalls.c We computed the length of the string already, so use it... 2017-11-07 15:57:38 +00:00
vfs_trans.c Make the fast path of fstrans_get_lwp_info() "static inline". 2017-06-18 14:00:17 +00:00
vfs_vnode.c Fix non-DIAGNOSTICS build by adjusting _vstate_assert here too. 2017-09-22 06:05:20 +00:00
vfs_vnops.c Add O_REGULAR to enforce opening of only regular files 2017-11-09 20:30:01 +00:00
vfs_wapbl.c Revert printf return value change. 2017-10-27 12:25:14 +00:00
vfs_xattr.c
vnode_if.c Regen. 2017-07-12 09:31:59 +00:00
vnode_if.sh Operations fstrans_start() and fstrans_start_nowait() now always 2017-06-04 08:03:26 +00:00
vnode_if.src As VOP_ADVLOCK() may block indefinitely we cannot take fstrans here. 2017-07-12 09:31:07 +00:00