freebsd-skq/sys
Mark Johnston 7789ab32b3 Rename tdq_ipipending and clear it in sched_switch().
This fixes a regression after r355311.  Specifically, sched_preempt()
may trigger a context switch by calling thread_lock(), since
thread_lock() calls critical_exit() in its slow path and the interrupted
thread may have already been marked for preemption.  This would happen
before tdq_ipipending is cleared, blocking further preemption IPIs.  The
CPU can be left in this state indefinitely if the interrupted thread
migrates.

Rename tdq_ipipending to tdq_owepreempt.  Any switch satisfies a remote
preemption request, so clear tdq_owepreempt in sched_switch() instead of
sched_preempt() to avoid subtle problems of the sort described above.

Reviewed by:	jeff, kib
Sponsored by:	The FreeBSD Foundation
Differential Revision:	https://reviews.freebsd.org/D22758
2019-12-12 02:43:24 +00:00
..
amd64 Introduce vm_page_astate. 2019-12-10 18:14:50 +00:00
arm arm linuxulator: regen sysent after r355621 2019-12-11 18:24:43 +00:00
arm64 arm64: rk3328: Add the *clk_peri_niu clocks 2019-12-11 18:39:05 +00:00
bsm Jail and capability mode for shm_rename; add audit support for shm_rename 2019-11-18 13:31:16 +00:00
cam Use callout_func_t instead of the deprecated timeout_t. 2019-12-10 22:06:53 +00:00
cddl vfs: locking primitives which elide ->v_vnlock and shared locking disablement 2019-12-11 23:11:21 +00:00
compat Copy out aux args after the argument and environment vectors. 2019-12-09 19:17:28 +00:00
conf arm64: Add explicit devices for dwmmc variant 2019-12-11 18:36:07 +00:00
contrib Include fin, the packet information structure (fr_info_t), in the 2019-11-28 00:46:33 +00:00
crypto Fix the armv8 crypto driver after r354170. 2019-10-30 10:41:10 +00:00
ddb ddb(4): Add some support for lexing IPv6 addresses 2019-09-09 16:32:23 +00:00
dev Move reset to the interrutp processing stage 2019-12-11 22:51:02 +00:00
dts dtso: allwinner: Add an overlay for H3 thermal node 2019-08-24 13:26:34 +00:00
fs vfs: locking primitives which elide ->v_vnlock and shared locking disablement 2019-12-11 23:11:21 +00:00
gdb gdb(4): Implement support for NoAckMode 2019-10-17 22:37:25 +00:00
geom Remove some branching from GEOM_DISK hot path. 2019-12-06 16:48:36 +00:00
gnu Import DTS files for riscv from Linux 5.4 2019-12-03 09:12:53 +00:00
i386 Introduce vm_page_astate. 2019-12-10 18:14:50 +00:00
isa
kern Rename tdq_ipipending and clear it in sched_switch(). 2019-12-12 02:43:24 +00:00
kgssapi Stop using des_cblock * for arguments to DES functions. 2019-08-26 17:25:07 +00:00
libkern Port the NetBSD KCSAN runtime to FreeBSD. 2019-11-21 11:22:08 +00:00
mips Introduce vm_page_astate. 2019-12-10 18:14:50 +00:00
modules arm64: rockchip: Add a module for rk_dwmmc 2019-12-11 18:43:39 +00:00
net Use a void * argument to callout handlers instead of timeout_t casts. 2019-12-05 18:47:29 +00:00
net80211 Don't use if_maddr_rlock() in 802.11, use epoch(9) directly instead. 2019-10-10 23:55:33 +00:00
netgraph Use callout_func_t instead of the deprecated timeout_t. 2019-12-10 22:06:53 +00:00
netinet Use callout_func_t instead of the deprecated timeout_t. 2019-12-10 22:06:53 +00:00
netinet6 Update comment. 2019-12-06 16:53:42 +00:00
netipsec Fix m_pullup() problem after removing PULLDOWN_TESTs and KAME EXT_*macros. 2019-12-01 00:22:04 +00:00
netpfil Avoid access to stale ip pointer and call UPDATE_POINTERS() after 2019-12-10 10:35:32 +00:00
netsmb Stop using des_cblock * for arguments to DES functions. 2019-08-26 17:25:07 +00:00
nfs
nfsclient
nfsserver
nlm
ofed Prevent potential underflow in ibcore. 2019-11-15 11:46:53 +00:00
opencrypto kTLS support for TLS 1.3 2019-09-27 19:17:40 +00:00
powerpc Introduce vm_page_astate. 2019-12-10 18:14:50 +00:00
riscv Introduce vm_page_astate. 2019-12-10 18:14:50 +00:00
rpc Change r355157 to make svc_rpc_gss_lifetime_max a static. 2019-11-28 02:18:51 +00:00
security Instead of looking up a predecessor or successor to the current map 2019-11-20 16:06:48 +00:00
sparc64 Introduce vm_page_astate. 2019-12-10 18:14:50 +00:00
sys Bump __FreeBSD_version for r355641, new sig set ops 2019-12-12 02:42:27 +00:00
teken Adjust teken to allow build as part of loader 2019-09-05 18:07:40 +00:00
tests
tools makesyscalls.lua: trim trailing spaces/commas from args 2019-12-11 19:32:52 +00:00
ufs UFS: implement VOP_INACTIVE() 2019-12-10 14:07:05 +00:00
vm Extract code common to _vm_map_clip_start and _vm_map_clip_end into a 2019-12-11 16:09:57 +00:00
x86 Fix the TAA state machine to do the right thing when the TAA 2019-12-10 18:57:39 +00:00
xdr
xen
Makefile