> 
> > > amazingly expensive in computational resources. I have heard rumors that
> =
> > > Linux SMP is not able to bind processes to specific processors. Can =
> > > anyone enlighten me on this subject since it would greatly be of much =
> > > help.
> >
> > It doesnt let people bind processes, it does its own balancing.
> >
> > Alan
> >
> >
> Thanks for your help yet I would need some way of getting a kernel thread to
> each process thus being able to modify my scheduler allowing multiple
> threads to be placed on one of say 4 kernel threads, all corresponding to
> one of the 4 processors. Thus I would be able in the end to create something
> like a run queue with each thread running on a specific processor and always
> to be binded to that processor to maintain cache affinity. Also it would be
> nice to be able to control the number of threads allocated to each processor
> so that I would control things like starvation and allow process migration.
> Yet all at a user lever
> 
> Thanks
> Joseph Cordina

        clone() gives you a "thread" sharing the same address space as the
        cloning process. The cloned thread is "seen" and hence scheduled by the
        kernel. i suppose you can use these clone threads (in the process) plus
        code at user level that can allow these cloned threads to "pick up" and
        execute user level thread contexts.

        i guess thats what most thread libraries that implement user level
        threads do. At least if you look at Solaris you have this layering of
        user level threads on top of light weight processes (lwp) on top of
        kernel threads. The user level library appropriately keeps creating 
        these lwps (and consequently kernel threads) based on the number of
        user level threads present in the process (to achieve a target
        concurrency level). Possibly this can be mimic'ed with having cloned
        threads in a process that execute user-level thread dispatch code
        (much like what the kernel itself does). Basically code that maintains
        and schedules thread contexts onto these cloned threads. Just an idea i
        don't have an implementation of this though.

        Still, binding threads to processes may not be really needed unless yo
        want to run some very specialized applications that require it. If you
        need some way to bind processes to CPUS then please check the patch and
        documentation at this site http://isunix.it.ilstu.edu/~thockin/pset/

        I'm not sure if it allows binding individual cloned threads to CPUs
        (maybe thats a useful extension too).
> 
> -
> Linux SMP list: FIRST see FAQ at http://www.irisa.fr/prive/dmentre/smp-howto/
> To Unsubscribe: send "unsubscribe linux-smp" to [EMAIL PROTECTED]
> 

-
Linux SMP list: FIRST see FAQ at http://www.irisa.fr/prive/dmentre/smp-howto/
To Unsubscribe: send "unsubscribe linux-smp" to [EMAIL PROTECTED]

Reply via email to