Thread Affinity structure
From: Mulyadi Santosa <hidden>
Date: 2011-02-05 13:56:33
Hi :) On Sat, Feb 5, 2011 at 00:11, Sri Ram Vemulpali [off-list ref] wrote:
Hi all, ? ?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.
AFAIK, forked process (or thread) initially inherit the affinity property of the parent process. As for thread, I think kernel will make as long as possible (or maybe forbid) the thread to have different affinity. The reason could be to avoid too many cache invalidation / ping pong between cores. -- regards, Mulyadi Santosa Freelance Linux trainer and consultant blog: the-hydra.blogspot.com training: mulyaditraining.blogspot.com