On Fri, May 11, 2007 at 12:57:17PM +0100, Martin Guy wrote:

> >> If it's any consolation, its userland thread switches between
> >> the same process are much faster than the NPTL kernel version at
> >> present (fixes are in course, if not already mainline).
> >
> >Hm?  What is this referring to?
> 
> When I pulled out, switches between different threads on ARM NPTL
> implied the same overhead as a process switch,

Hmm.  No?

>From include/asm-arm/mmu_context.h:

        static inline void
        switch_mm(struct mm_struct *prev, struct mm_struct *next,
                  struct task_struct *tsk)
        {
                unsigned int cpu = smp_processor_id();

                if (prev != next) {
                        cpu_set(cpu, next->cpu_vm_mask);
                        check_context(next);
                        cpu_switch_mm(next->pgd, next);
                        if (cache_is_vivt())
                                cpu_clear(cpu, prev->cpu_vm_mask);
                }
        }

I.e. when we switch to a task that uses the same mm (i.e. a thread of
the same process), we don't actually call ->switch_mm().

(switch_mm() is the CPU core-specific routine that flushes the D cache
and invalidates the I cache (if they are virtual caches), invalidates
the TLBs, etc.)

This is true for both NPTL and linuxthreads.


> WIth linuxthreads instead, no kernel context switch happens cos it's
> all done within one Unix process anyway, no?

No, that is not true.

Both NPTL and linuxthreads are 1:1 threading models, i.e. every thread
in your app corresponds to a process/thread on the host.

You might be confused with the older NGPT (Next-Generation POSIX
Threads thread library), which is a userland thread package which
_does_ run multiple application threads in the same task.  It
never really caught on.


> I can try and dig up the mail thread if that'll help

That would definitely help, please do.


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to