Contributed by jj on from the one-core-is-for-pr0n dept.
This will help SMP performance by keeping processes on the same core/CPU if possible, in order to prevent cache flushing and having to repopulate it on the new CPU.
It might also pave the way for things like NUMA and improvements in scheduler locking, since it adds per-CPU scheduler queues. It also will help with hyper-threading performance work later on. Note that it is a work-in-progress, and as the commit message states, there is some guesswork on how to choose the 'best' CPU to land on.
Also note this, from tech@:
After updating your tree with this diff, please remove your kernel build directory before yelling that it's buggy. The dependencies on assym.h for some architectures were still buggy and didn't catch one dependency on a file that changed here, so at least amd64 will break horribly, even with make clean.
//art
(Comments are closed)
By Anonymous Coward (83.101.57.138) on
Comments
By Anonymous Coward (98.127.110.254) on
Yes.
By Vadim Zhukov (77.108.65.40) persgray@gmail.com on
Module name: src
Changes by: guenther@cvs.openbsd.org 2009/03/23 12:51:51
Modified files:
sys/arch/amd64/conf: Makefile.amd64
Log message:
Add missing dependency generation for assym.h (...the lack of which
made testers of art's affinity diff go insane)
ok krw@ miod@
Comments
By Anonymous Coward (24.255.120.7) on
> Add missing dependency generation for assym.h (...the lack of which
> made testers of art's affinity diff go insane)
Chiding CVS messages are, without a doubt, the funniest part of the development process.
By Anonymous Coward (71.14.112.13) on
By Danno (192.75.63.254) on
Comments
By Janne Johansson (jj) jj@inet6.se on www.inet6.se
google for rthreads for more rumblings.
By nuintari (64.246.109.61) on
Comments
By Inigo (85.84.239.102) taromaru@gmail.com on
I would also be really interested in getting more information on this issue.
By Ryan McBride (122.217.251.146) mcbride@openbsd.org on
> suffers on SMP machines, is that still true/was it ever true.
> And if so, is this expected to help? Seems like it would.
This change is about userland processes, while PF is running entirely in the kernel. Kernel code currently receives no benefit from SMP (and actually there is a cost due to the extra locking required), so on a purely PF firewall it's still best to run the standard single processor kernel */bsd rather than /bsd.mp).
If your firewall box is also doing a lot of userland work, such as running proxies or routing daemons, you may see a benefit from using an SMP kernel, and this change may help those.
Comments
By Anonymous Coward (83.101.57.138) on
From a technical point of view, is there any reason why the kernel runs single threaded? Is it just a case of no one having volunteered for the work yet, or is there some objection against multiple threads in the kernel?
By Anonymous Coward (64.246.109.61) on
Comments
By Jordi Espasa (84.77.66.237) jordi.espasa@opengea.org on
¿What to say about this http://pf4freebsd.love2party.net/pflock/ from Max Laier?