--- - branch: MAIN date: Wed Jan 29 15:47:52 UTC 2020 files: - new: '1.3' old: '1.2' path: src/sys/compat/common/kern_50.c pathrev: src/sys/compat/common/kern_50.c@1.3 type: modified - new: '1.3' old: '1.2' path: src/sys/compat/common/kern_time_60.c pathrev: src/sys/compat/common/kern_time_60.c@1.3 type: modified - new: '1.45' old: '1.44' path: src/sys/compat/netbsd32/netbsd32_compat_50.c pathrev: src/sys/compat/netbsd32/netbsd32_compat_50.c@1.45 type: modified - new: '1.6' old: '1.5' path: src/sys/compat/netbsd32/netbsd32_compat_60.c pathrev: src/sys/compat/netbsd32/netbsd32_compat_60.c@1.6 type: modified - new: '1.22' old: '1.21' path: src/sys/compat/netbsd32/netbsd32_lwp.c pathrev: src/sys/compat/netbsd32/netbsd32_lwp.c@1.22 type: modified - new: '1.490' old: '1.489' path: src/sys/kern/kern_exec.c pathrev: src/sys/kern/kern_exec.c@1.490 type: modified - new: '1.282' old: '1.281' path: src/sys/kern/kern_exit.c pathrev: src/sys/kern/kern_exit.c@1.282 type: modified - new: '1.218' old: '1.217' path: src/sys/kern/kern_fork.c pathrev: src/sys/kern/kern_fork.c@1.218 type: modified - new: '1.223' old: '1.222' path: src/sys/kern/kern_lwp.c pathrev: src/sys/kern/kern_lwp.c@1.223 type: modified - new: '1.240' old: '1.239' path: src/sys/kern/kern_proc.c pathrev: src/sys/kern/kern_proc.c@1.240 type: modified - new: '1.74' old: '1.73' path: src/sys/kern/sys_lwp.c pathrev: src/sys/kern/sys_lwp.c@1.74 type: modified - new: '1.200' old: '1.199' path: src/sys/sys/lwp.h pathrev: src/sys/sys/lwp.h@1.200 type: modified - new: '1.358' old: '1.357' path: src/sys/sys/proc.h pathrev: src/sys/sys/proc.h@1.358 type: modified id: 20200129T154752Z.fbcf0588dc462693532c03b64700f838f692985e log: | - Track LWPs in a per-process radixtree. It uses no extra memory in the single threaded case. Replace scans of p->p_lwps with lookups in the tree. Find free LIDs for new LWPs in the tree. Replace the hashed sleep queues for park/unpark with lookups in the tree under cover of a RW lock. - lwp_wait(): if waiting on a specific LWP, find the LWP via tree lookup and return EINVAL if it's detached, not ESRCH. - Group the locks in struct proc at the end of the struct in their own cache line. - Add some comments. module: src subject: 'CVS commit: src/sys' unixtime: '1580312872' user: ad