freebsd-nq/sys/kern
Mateusz Guzik cec1747322 sx: change sunlock to wake waiters up if it locked sleepq
sleepq is only locked if the curhtread is the last reader. By the time
the lock gets acquired new ones could have arrived. The previous code
would unlock and loop back. This results spurious relocking of sleepq.

This is a step towards xadd-based unlock routine.
2017-11-25 20:13:50 +00:00
..
bus_if.m "Buses" is the preferred plural of "bus" 2017-01-15 17:54:01 +00:00
capabilities.conf allow posix_fallocate in capability mode 2017-10-12 15:45:53 +00:00
clock_if.m
cpufreq_if.m
device_if.m
genassym.sh Don't prefix zero with 0x in assym.s. 2017-04-13 15:43:44 +00:00
imgact_aout.c Revert r323722. A better fix will be committed shortly, as well as 2017-09-28 08:38:24 +00:00
imgact_binmisc.c tighten buffer bounds in imgact_binmisc_populate_interp 2017-03-21 18:02:14 +00:00
imgact_elf32.c
imgact_elf64.c
imgact_elf.c Add AT_HWCAP2 ELF auxiliary vector. 2017-10-21 12:05:01 +00:00
imgact_gzip.c
imgact_shell.c ANSI-fy exec_shell_imgact(). 2017-11-04 15:41:08 +00:00
inflate.c Remove register keyword from sys/ and ANSIfy prototypes 2017-05-17 00:34:34 +00:00
init_main.c Don't let cpu_set_syscall_retval() clobber exec_setregs(). 2017-11-24 07:35:08 +00:00
init_sysent.c regen init_sysent.c r324560 2017-10-12 15:48:37 +00:00
kern_acct.c spdx: initial adoption of licensing ID tags. 2017-11-18 14:26:50 +00:00
kern_alq.c
kern_clock.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
kern_clocksource.c Remove cpu_deepest_sleep variable. 2017-02-24 16:11:55 +00:00
kern_condvar.c Introduce SCHEDULER_STOPPED_TD for use when the thread pointer was already read 2017-02-17 06:45:04 +00:00
kern_conf.c Undo r309891. Konstantin is right in that this condition normally 2016-12-12 19:11:04 +00:00
kern_cons.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
kern_context.c
kern_cpu.c
kern_cpuset.c Fix size to copyout(9) for cpuset_getid(2). 2017-08-22 20:46:29 +00:00
kern_ctf.c Fix improper use of "its". 2016-11-08 23:59:41 +00:00
kern_descrip.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
kern_dtrace.c Sprinkle __read_frequently on few obvious places. 2017-09-06 20:33:33 +00:00
kern_dump.c Move kernel dump offset tracking into MI code. 2017-10-18 15:38:05 +00:00
kern_environment.c
kern_et.c Add labels to sysctls related to clocks. 2016-12-14 12:56:58 +00:00
kern_event.c Decode kevent structures logged via ktrace(2) in kdump. 2017-11-25 04:49:12 +00:00
kern_exec.c Don't let cpu_set_syscall_retval() clobber exec_setregs(). 2017-11-24 07:35:08 +00:00
kern_exit.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
kern_fail.c Avoid open-coding PRI_UNCHANGED. 2017-05-18 18:24:11 +00:00
kern_ffclock.c
kern_fork.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
kern_gzio.c Add support for compressed kernel dumps. 2017-10-25 00:51:00 +00:00
kern_hhook.c Get closer to a VIMAGE network stack teardown from top to bottom rather 2016-06-21 13:48:49 +00:00
kern_idle.c
kern_intr.c Extend cpuset_get/setaffinity() APIs 2017-05-03 18:41:08 +00:00
kern_jail.c Jails: Optionally prevent jailed root from binding to privileged ports 2017-06-06 02:15:00 +00:00
kern_khelp.c
kern_kthread.c Re-schedule signals after kthread exits, since apparently there are 2016-08-10 13:47:12 +00:00
kern_ktr.c Fix a couple of comment typos 2017-08-15 02:21:02 +00:00
kern_ktrace.c Decode kevent structures logged via ktrace(2) in kdump. 2017-11-25 04:49:12 +00:00
kern_linker.c Properly bzero kldstat structure to prevent kernel information leak. 2017-11-15 22:30:21 +00:00
kern_lock.c lockmgr: remove the ADAPTIVE_LOCKMGRS option 2017-11-17 20:41:17 +00:00
kern_lockf.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
kern_lockstat.c Sprinkle __read_frequently on few obvious places. 2017-09-06 20:33:33 +00:00
kern_loginclass.c Fixup r325264, take #2 2017-11-01 06:46:58 +00:00
kern_malloc.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
kern_mbuf.c Improvements to sendfile(2) mbuf free routine. 2017-10-09 21:06:16 +00:00
kern_mib.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
kern_module.c
kern_mtxpool.c
kern_mutex.c locks: pass the found lock value to unlock slow path 2017-11-22 22:04:04 +00:00
kern_ntptime.c ANSIfy kern_ntptime.c 2017-01-25 20:22:32 +00:00
kern_numa.c Remove unneeded include of vm_phys.h. 2017-04-17 16:51:04 +00:00
kern_osd.c
kern_physio.c
kern_pmc.c Cast values to (int) before comparing them to the range of the 2017-02-24 01:39:12 +00:00
kern_poll.c
kern_priv.c
kern_proc.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
kern_procctl.c Kill all descendants of the reaper, even if they are descendants of a 2017-11-23 11:25:11 +00:00
kern_prot.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
kern_racct.c try to fix RACCT_RSS accounting 2017-02-14 13:54:05 +00:00
kern_rangelock.c
kern_rctl.c
kern_resource.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
kern_rmlock.c Clean up the SYSINIT_FLAGS definitions for rwlock(9) and rmlock(9). 2017-11-21 14:59:23 +00:00
kern_rwlock.c locks: retry turnstile/sleepq loops on failed cmpset 2017-11-25 20:10:33 +00:00
kern_sdt.c sdt: make all sdt probe sites test one variable 2017-10-22 20:22:23 +00:00
kern_sema.c
kern_sendfile.c Address two problems with sendfile(..., SF_NOCACHE) and apply one 2017-10-13 16:31:50 +00:00
kern_sharedpage.c
kern_shutdown.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
kern_sig.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
kern_switch.c sched: move panic handling code out of choosethread 2017-11-17 02:45:38 +00:00
kern_sx.c sx: change sunlock to wake waiters up if it locked sleepq 2017-11-25 20:13:50 +00:00
kern_synch.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
kern_syscalls.c
kern_sysctl.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
kern_tc.c The th_bintime, th_microtime and th_nanotime members of the timehand 2017-10-11 11:03:11 +00:00
kern_thr.c Defer ptracestop() signals that cannot be delivered immediately 2017-02-20 15:53:16 +00:00
kern_thread.c Introduce EVENTHANDLER_LIST and some users. 2017-11-09 22:51:48 +00:00
kern_time.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
kern_timeout.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
kern_umtx.c Convert explicit panic() call to assert. 2017-11-04 10:49:34 +00:00
kern_uuid.c Hint at the intended usage for the "ll" field of struct uuid_private. 2017-06-13 15:37:04 +00:00
kern_xxx.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
ksched.c spdx: initial adoption of licensing ID tags. 2017-11-18 14:26:50 +00:00
link_elf_obj.c Reduce stack usage in link_elf_load_file(), allocating struct nameidata. 2017-03-09 00:45:15 +00:00
link_elf.c
linker_if.m
Make.tags.inc
Makefile Don't create pointless backups of generated files in "make sysent". 2016-07-28 21:29:04 +00:00
makesyscalls.sh Commit the 64-bit inode project. 2017-05-23 09:29:05 +00:00
md4c.c ANSIfy sys/kern/md4c.c 2017-11-05 19:49:44 +00:00
md5c.c
msi_if.m
p1003_1b.c spdx: initial adoption of licensing ID tags. 2017-11-18 14:26:50 +00:00
pic_if.m INTRNG: Rework handling with resources. Partially revert r301453. 2016-08-19 10:52:39 +00:00
posix4_mib.c spdx: initial adoption of licensing ID tags. 2017-11-18 14:26:50 +00:00
sched_4bsd.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
sched_ule.c Don't take Giant for SMP status and cpu topology sysctls. 2017-10-18 22:00:44 +00:00
serdev_if.m
stack_protector.c
subr_acl_nfs4.c
subr_acl_posix1e.c
subr_autoconf.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
subr_blist.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
subr_bufring.c
subr_bus_dma.c Add CAM/NVMe support for CAM_DATA_SG 2017-08-29 15:29:57 +00:00
subr_bus.c Add eventhandler notifications for newbus device attach/detach. 2017-10-08 17:33:49 +00:00
subr_busdma_bufalloc.c
subr_capability.c
subr_clock.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
subr_counter.c Zero return value when counter_rate() switches over to next second and 2016-12-13 20:11:45 +00:00
subr_devmap.c o Replace __riscv__ with __riscv 2017-08-07 14:09:57 +00:00
subr_devstat.c
subr_disk.c
subr_dummy_vdso_tc.c
subr_eventhandler.c Introduce EVENTHANDLER_LIST and some users. 2017-11-09 22:51:48 +00:00
subr_fattime.c
subr_firmware.c Fix improper use of "its". 2016-11-08 23:59:41 +00:00
subr_gtaskqueue.c Fix "taskqgroup_attach: setaffinity failed: 3" with iflib drivers 2017-10-05 14:43:30 +00:00
subr_hash.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
subr_hints.c
subr_intr.c Fix compile error with option DEBUG. This is fallout from some long-ago 2017-08-16 16:51:55 +00:00
subr_kdb.c Change kdb_active type to u_char. 2017-10-22 13:42:56 +00:00
subr_kobj.c - Also outside of the KOBJOPLOOKUP macro - which in turn is used by 2017-05-08 21:08:39 +00:00
subr_lock.c locks: follow up r313386 2017-02-07 16:01:07 +00:00
subr_log.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
subr_mchain.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
subr_module.c
subr_msgbuf.c
subr_param.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
subr_pcpu.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
subr_pctrie.c Make the number of children for pctrie node available outside subr_pctrie.c. 2017-07-27 16:40:14 +00:00
subr_power.c
subr_prf.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
subr_prof.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
subr_rman.c
subr_rtc.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
subr_sbuf.c An off-by-one error exists in sbuf_vprintf()'s use of SBUF_HASROOM() when an 2017-08-18 02:06:28 +00:00
subr_scanf.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
subr_sfbuf.c subr_sfbus.c need sys/proc.h for struct thread definition. 2017-02-07 17:31:24 +00:00
subr_sglist.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
subr_sleepqueue.c Make the sleepq chain hash size configurable per-arch and bump on amd64. 2017-10-22 20:43:50 +00:00
subr_smp.c Don't take Giant for SMP status and cpu topology sysctls. 2017-10-18 22:00:44 +00:00
subr_stack.c Let stack_create(9) take a malloc flags argument. 2017-10-06 21:52:28 +00:00
subr_syscall.c spdx: initial adoption of licensing ID tags. 2017-11-18 14:26:50 +00:00
subr_taskqueue.c Add taskqueue_enqueue_timeout_sbt(), because sometimes you want more control 2017-07-31 00:54:50 +00:00
subr_terminal.c Oops, my fix for bright colors broke bright black some more (in cases 2017-03-27 10:48:28 +00:00
subr_trap.c spdx: initial adoption of licensing ID tags. 2017-11-18 14:26:50 +00:00
subr_turnstile.c Remove unused declaration and update ddb.4 2017-08-24 19:16:25 +00:00
subr_uio.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
subr_unit.c Properly reset the fields in clean_unrhdr. 2017-10-16 16:14:50 +00:00
subr_vmem.c Start annotating global _padalign locks with __exclusive_cache_line 2017-09-06 20:28:18 +00:00
subr_witness.c Bump WITNESS_PENDLIST to accomodate sleepq chain bump. 2017-10-23 01:00:35 +00:00
sys_capability.c capsicum: perform copyout without the fildesc lock held in sys_cap_ioctls_get 2016-10-21 16:12:23 +00:00
sys_generic.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
sys_pipe.c Generate syscall tables and update pipe() implementation after r302094. 2016-06-22 21:18:19 +00:00
sys_procdesc.c Hide the boottime and bootimebin globals, provide the getboottime(9) 2016-07-27 11:08:59 +00:00
sys_process.c Move loop to clear TDB_SUSPEND into PT_DETACH case. 2017-11-13 21:22:33 +00:00
sys_socket.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
syscalls.c Regen. 2017-06-17 00:58:19 +00:00
syscalls.master Add abstime kqueue(2) timers and expand struct kevent members. 2017-06-17 00:57:26 +00:00
systrace_args.c Regen. 2017-06-17 00:58:19 +00:00
sysv_ipc.c
sysv_msg.c Remove register keyword from sys/ and ANSIfy prototypes 2017-05-17 00:34:34 +00:00
sysv_sem.c sysvsem: check if semu_list has anything on it before grabbing the lock 2017-10-19 00:31:00 +00:00
sysv_shm.c Audit arguments to System V IPC system calls implementing sempahores, 2017-03-30 22:26:15 +00:00
tty_compat.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
tty_info.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
tty_inq.c Check tty_gone() after allocating IO buffers. The tty lock has to be 2017-01-13 16:37:38 +00:00
tty_outq.c Check tty_gone() after allocating IO buffers. The tty lock has to be 2017-01-13 16:37:38 +00:00
tty_pts.c Commit the 64-bit inode project. 2017-05-23 09:29:05 +00:00
tty_tty.c
tty_ttydisc.c
tty.c Commit the 64-bit inode project. 2017-05-23 09:29:05 +00:00
uipc_accf.c Listening sockets improvements. 2017-06-08 21:30:34 +00:00
uipc_debug.c ddb show socket debugging 2017-06-15 04:49:12 +00:00
uipc_domain.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
uipc_mbuf2.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
uipc_mbuf.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
uipc_mbufhash.c
uipc_mqueue.c Correct sysent flags for dynamically loaded syscalls. 2017-07-14 09:34:44 +00:00
uipc_sem.c Audit arguments to POSIX message queues, semaphores, and shared memory. 2017-03-31 13:43:00 +00:00
uipc_shm.c Replace manyinstances of VM_WAIT with blocking page allocation flags 2017-11-08 02:39:37 +00:00
uipc_sockbuf.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
uipc_socket.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
uipc_syscalls.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
uipc_usrreq.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
vfs_acl.c Add system-call argument auditing for ACL-related system calls. 2017-03-30 22:00:58 +00:00
vfs_aio.c Fix aio_suspend in 32-bit emulation 2017-10-26 19:45:15 +00:00
vfs_bio.c Update a comment in brelse() to match reality. 2017-11-20 20:53:03 +00:00
vfs_cache.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
vfs_cluster.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
vfs_default.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
vfs_export.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
vfs_extattr.c
vfs_hash.c
vfs_init.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
vfs_lookup.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
vfs_mount.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
vfs_mountroot.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
vfs_subr.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
vfs_syscalls.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
vfs_vnops.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
vnode_if.src For UNIX sockets make vnode point not to the socket, but to the UNIX PCB, 2017-06-02 17:31:25 +00:00