tech-kern archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: Condition variable change



In article <20080527215703.GQ12056%hairylemon.org@localhost>,
Andrew Doran  <ad%netbsd.org@localhost> wrote:
>Hi
>
>The below diff gives each condition variable a private sleep queue. It
>allows the system to scale more gracefully when there are 100s or 1000s of
>of active threads because much less time is spent searching sleep queues.
>With the change kcondvar_t grows from 8 to 12 bytes on 32-bit systems.
>
>I realise that we are in feature freeze, but propose this change because it
>does not alter any of the underlying principles or surrounding code, or add
>any new interfaces. It just relocates the sleep queue head.
>
>Comments?
>
>Thanks,
>Andrew
>
>http://www.netbsd.org/~ad/condvar2.diff

I'd just do it, but can you please move the NOINLINE def in cdefs.h,
and write is as:

#if __GNUC_PREREQ__(3, 0)
#define __noinline              __attribute__((__noinline__))
#else
#define __noinline              /* nothing */
#endif

christos



Home | Main Index | Thread Index | Old Index