Thread (1 message) 1 message, 1 author, 2011-02-04

Thread Affinity structure

From: Sri Ram Vemulpali <hidden>
Date: 2011-02-04 20:05:47
Also in: lkml

Hi Christoph,

  Thanks for response. Can you please explain in little bit elaborate
what do you mean

 "The value returned ?from a call to gettid(2) can be passed in the argument
 pid. ?Specifying pid as 0 will set the attribute for the calling thread,
 and passing the value returned from a call to getpid(2) will set the
 attribute for the main thread of the thread group."

To whom I should pass the id. I did not understood.

Thanks,
Sri.

On Fri, Feb 4, 2011 at 2:29 PM, Christoph Lameter [off-list ref] wrote:
On Fri, 4 Feb 2011, Sri Ram Vemulpali wrote:
quoted
? ? I have doubt regarding how the thread affinity (to processor) is
defined in a process (task). If there is only single thread in a
process, then when process calls itself on binding to a core, will let
run on that core forever. But, what if there are multiple threads, in
a process (task). If the main thread calls set affinity to a core, is
it going to get inherited to all other threads, or just the calling
thread in a task. What happens when forked a process with threads that
has affinity to a core. Please can anyone point me to the literature
on this. Thanks in advance.
See "man sched_setaffinity"

"
The affinity mask is actually a per-thread attribute that can be
adjusted independently for each of the threads in a thread group. ?The
value returned ?from a call to gettid(2) can be passed in the argument
pid. ?Specifying pid as 0 will set the attribute for the calling thread,
and passing the value returned from a call to getpid(2) will set the
attribute for the main thread of the thread group. ?(If you ?are ?using
the ?POSIX threads API, then use pthread_setaffinity_np(3) instead of
sched_setaffinity().)
"



The setting of the affinity occurs for the running thread if pid == 0.
Affinity masks are inherited across forks.






-- 
Regards,
Sri.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help