Module Name: src Committed By: ad Date: Sat May 23 20:45:11 UTC 2020
Modified Files: src/sys/kern: kern_lwp.c kern_proc.c kern_turnstile.c sys_lwp.c src/sys/rump/librump/rumpkern: lwproc.c src/sys/sys: lwp.h proc.h sleepq.h Log Message: - Replace pid_table_lock with a lockless lookup covered by pserialize, with the "writer" side being pid_table expansion. The basic idea is that when doing an LWP lookup there is usually already a lock held (p->p_lock), or a spin mutex that needs to be taken (l->l_mutex), and either can be used to get the found LWP stable and confidently determine that all is correct. - For user processes LSLARVAL implies the same thing as LSIDL ("not visible by ID"), and lookup by ID in proc0 doesn't really happen. In-tree the new state should be understood by top(1), the tty subsystem and so on, and would attract the attention of 3rd party kernel grovellers in time, so remove it and just rely on LSIDL. To generate a diff of this commit: cvs rdiff -u -r1.237 -r1.238 src/sys/kern/kern_lwp.c cvs rdiff -u -r1.251 -r1.252 src/sys/kern/kern_proc.c cvs rdiff -u -r1.39 -r1.40 src/sys/kern/kern_turnstile.c cvs rdiff -u -r1.80 -r1.81 src/sys/kern/sys_lwp.c cvs rdiff -u -r1.48 -r1.49 src/sys/rump/librump/rumpkern/lwproc.c cvs rdiff -u -r1.209 -r1.210 src/sys/sys/lwp.h cvs rdiff -u -r1.365 -r1.366 src/sys/sys/proc.h cvs rdiff -u -r1.30 -r1.31 src/sys/sys/sleepq.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.