Is it possible to make -lpthread program to use 100% CPU?

Daniel M. Eischen eischen at vigrid.com
Sat May 1 21:45:10 PDT 2004


Alexandre Sunny Kovalenko wrote:
> On Sat, 1 May 2004 14:49:47 -0400 (EDT)
> Daniel Eischen <eischen at vigrid.com> wrote:
> 
> 
>>On Sat, 1 May 2004, Alexandre Sunny Kovalenko wrote:
>>
>>
>>>On Thu, 29 Apr 2004 17:16:21 +0200
>>>Ivan Voras <ivoras at fer.hr> wrote:
>>>
>>>
>>>>Alexandre Sunny Kovalenko wrote:
>>>>
>>>>
>>>>>Alternatively, if there is a need to test a patch or time a program 
>>>>>in this environment, it could easily be accomplished -- it is a non-
>>>>>production box.
>>>>
>>>>Could you turn off Hyperthreading and report any changes?
>>>>
>>>
>>>I have updated my system to the latest CTM mailing on Friday (4/30) morning (EST).
>>>This includes version 1.176 of kern_thread.c.
>>>
>>>I have turned off hyperthreading and got result, which muddles me rather -- try
>>>as I might, with -lpthread I could not get past 50% CPU utilization (as reported 
>>>by 'top') and  number of computations per second matching that (number is very 
>>>close to that  for running single-threaded). Top report with thread view enabled
>>>shows that both KSE are bound to CPU 0 (if I am interpreting C column properly).
>>
>>Are you using system or process scope threads?
>>
>>-- 
>>Dan Eischen
>
> Sorry, should have mentioned that too. For -lthr PTHREAD_SCOPE_PROCESS is only 
> available option. For -lpthread I have tried both, and results do not differ
> much, which is what I expect on the machine that runs nothing else (unless
> I do not understand PTHREAD_SCOPE_ option).

You need to use PTHREAD_SCOPE_SYSTEM in order to get another
scheduling quantum (kse group) for each thread under libpthread.
There's no way yet to tell the kernel which CPU should get
each thread, so they may be scheduled on the same CPU.

What scheduler are you using?

-- 
Dan Eischen



More information about the freebsd-current mailing list