Re: [PATCH][RFC] task cpu affinity syscalls for 2.4-O(1)

From: Mike Kravetz (kravetz@us.ibm.com)
Date: Tue Apr 23 2002 - 12:41:35 EST


On Tue, Apr 23, 2002 at 04:41:10PM +0200, Ingo Molnar wrote:
>
> well, my goal was the following: the migration thread makes sure that the
> migrated thread will *not* run on that particular CPU. The only issue the
> migration thread is for is to 'push' the migrated thread from its current
> CPU.
>
> so we first set the cpus_allowed mask, then we schedule the migration
> thread (which is a highest RT priority thread) if the thread is running on
> an invalid CPU.
>
> load_balance() moving a process to another CPU is in fact makes this job
> easier, and causes no problems. It will pull a process only to allowed
> runqueues.
>
> this way it can be guaranteed that after the set_cpus_allowed() call the
> thread is not running on an invalid CPU.
>
> the affinity setting syscalls added by Robert's patch utilize this
> underlying mechanizm, but kernel threads call it directly as well. Eg. in
> the softirqd case it's of importance whether the thread is running on the
> right CPU or not, after calling set_cpus_allowed().
>
> is there anything else unclear in this area?

Thanks, I just needed to stare at the migration_thread code a bit
more to convince myself that all the special cases were covered.

-- 
Mike
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Tue Apr 23 2002 - 22:00:35 EST