pthread switch (was Odd KSE panic)
Andrew Gallatin
gallatin at cs.duke.edu
Tue Jul 6 13:14:34 PDT 2004
Julian Elischer writes:
>
>
> On Tue, 6 Jul 2004, Andrew Gallatin wrote:
>
> >
> > FWIW, inserting a pthread_yield() just before the ioctl call in the
> > worker thread speeds things up quite a bit (100us -> 73us) in
> > combination with kern.threads.virtual_cpu=1.
>
> what about with kern.threads.virtual_cpu untouched?
> and what about with the hlt sysctl?
kern.threads.virtual_cpu=2
machdep.cpu_idle_hlt=1
no yeild 123.6us
yeild 116.8us
kern.threads.virtual_cpu=2
machdep.cpu_idle_hlt=0
no yield 111.9
yield 112.9
kern.threads.virtual_cpu=1
machdep.cpu_idle_hlt=1
no yeild 100.8
yeild 75.0
kern.threads.virtual_cpu=1
machdep.cpu_idle_hlt=0
no yield 93.9
ield 67.9
> does your worker thread loop to check if there is more work before
> waiting to be notified?
Yes. He takes a mutex, loops over all completed events, sending
pthread_signals as required, then releases the mutex and sleeps via
an ioctl.
Drew
More information about the freebsd-threads
mailing list