Module Name: src Committed By: ad Date: Sun Jan 12 22:03:23 UTC 2020
Modified Files: src/sys/kern: kern_exec.c kern_runq.c src/sys/sys: lwp.h sched.h Log Message: A final set of scheduler tweaks: - Try hard to keep vfork() parent and child on the same CPU until execve(), failing that on the same core, but in all other cases scatter new LWPs among the different CPU packages, round robin, to try and get the best out of the available cache and bus bandwidth. - Remove attempts at balancing. Replace with a rate-limited skim of other CPU's run queues in sched_idle(), starting in the current package and moving outwards. Add a sysctl tunable to change the interval. - Make the cacheht_time tuneable take a milliseconds value. - It's possible to configure things such that there's no CPU allowed to run an LWP. Defeat this by always having a default: Reported-by: syzbot+46968944dd9359ab9...@syzkaller.appspotmail.com Reported-by: syzbot+7f750a4cc230d1e83...@syzkaller.appspotmail.com Reported-by: syzbot+88d7675158f5cb468...@syzkaller.appspotmail.com Reported-by: syzbot+d409c2338150e9a8a...@syzkaller.appspotmail.com Reported-by: syzbot+e152dc5bff188f673...@syzkaller.appspotmail.com To generate a diff of this commit: cvs rdiff -u -r1.487 -r1.488 src/sys/kern/kern_exec.c cvs rdiff -u -r1.57 -r1.58 src/sys/kern/kern_runq.c cvs rdiff -u -r1.195 -r1.196 src/sys/sys/lwp.h cvs rdiff -u -r1.86 -r1.87 src/sys/sys/sched.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.