Linked by Thom Holwerda on Thu 3rd May 2012 21:26 UTC, submitted by PhilJ
Permalink for comment 517173
To read all comments associated with this story, please click here.
To read all comments associated with this story, please click here.
Features
Linked by Thom Holwerda on 05/21/13 21:38 UTC
Linked by Thom Holwerda on 05/20/13 11:29 UTC
Linked by Thom Holwerda on 05/18/13 21:33 UTC
Linked by David Adams on 05/16/13 4:23 UTC
Linked by Thom Holwerda on 05/11/13 21:41 UTC
Linked by Thom Holwerda on 05/08/13 14:22 UTC
Linked by Thom Holwerda on 05/02/13 15:28 UTC
Linked by Thom Holwerda on 04/29/13 21:06 UTC
Linked by Thom Holwerda on 04/24/13 22:24 UTC
Linked by Thom Holwerda on 04/18/13 11:21 UTC
More Features »
Sponsored Links



Member since:
2008-02-26
I only use OpenBSD in infrastructure roles though so maybe this is a problem more noticed on the desktop.
There is a noticeable slowdown on the "desktop". I suspect the main culprits are a) userthreads and b) malloc.
a) Using userthreads means a huge multithreaded program is running on a single cpu core wasting all the threading overhead.
b) OpenBSD malloc is pretty complex and has many features - most importantly ASLR which consumes high quality random numbers on a regular basis. There is no way it could outperform a decent performance-optimized malloc. Huge multithreaded programs tend to allocate and deallocate thousands of objects every millisecond so it ends up adding up.
On the command line, most programs a) use SMP-enabled processes instead of threads and b) are written in C which means all allocations are planned. It is perfectly possible they could outperform an out of the box Linux with many daemons half-idling in the background.
I certainly don't have any complaint about make -j 6 in /GENERIC.MP.
OpenBSD 5.2 will include SMP-enabled rthreads by default so I expect to see a boost in "desktop" performance. malloc is less likely to improve but memmap is getting reworked, which could lead to a faster implementation.
NOTE: The network stack runs in kernel and thus it won't scale over 1 core until the kernel itself becomes multithreaded.