cvs commit: src/sys/sys proc.h umtx.h src/sys/kernkern_thread.c
kern_umtx.c
Daniel Eischen
deischen at freebsd.org
Sat Mar 5 15:08:30 GMT 2005
On Sat, 5 Mar 2005, Alexey Dokuchaev wrote:
> On Sat, Mar 05, 2005 at 09:15:03AM +0000, David Xu wrote:
> > davidxu 2005-03-05 09:15:03 UTC
> >
> > FreeBSD src repository
> >
> > Modified files:
> > sys/sys proc.h umtx.h
> > sys/kern kern_thread.c kern_umtx.c
> > Log:
> > Allocate umtx_q from heap instead of stack, this avoids
> > page fault panic in kernel under heavy swapping.
>
> So.. Slow malloc/free path at last. As a side note, could someone (not
> necessarily David) comment on my impression that, for example, recently
> reported not-so-optimal performance of our threading model(s) is largely due
> to heavy use of malloc/free, as opposed to other operating systems out
> there? Am I right thinking that this is main bottleneck? If malloc'ing is
> so costly, why we're taking this path? Can kernel malloc() be optimized?
There is room for improvement in the kernel upcall path.
I got about a 7% improvement in some tests by caching
upcall threads in the kernel rather than using a zone
and always alocating them when needed.
http://people.freebsd.org/~deischen/kse/sys.diffs
I don't know whether the patches are totally correct.
There is also room for improvement in libpthread. It
was first designed for correctness, not speed. I'm
working on some changes to improve mutex performance.
--
DE
More information about the cvs-src
mailing list