[parisc-linux] Generic light-weight syscall.

Grant Grundler grundler@parisc-linux.org
Tue, 29 Jul 2003 12:55:21 -0600


On Tue, Jul 29, 2003 at 01:50:58PM -0400, Carlos O'Donell wrote:
>         unsigned long cr16;
>         asm("mfctl %%cr16, %0" : "=r" (cr16) : );
>         printf("cr16=%lu\n",cr16);

this only gets you the CR16 for *that* CPU.
Not useful since CR16 isn't syncronized at powerup between CPUs.
At least I don't think that's the case...maybe Kirk Bresniker knows
how that works. We've talked about this before on parisc-linux.

...
> With the comment I don't quite understand:
> linux-2.4/arch/parisc/kernel/time.c
>    /*
>     * FIXME: This won't work on smp because jiffies are updated by cpu
>     * 0.
>     *    Once parisc-linux learns the cr16 difference between
>     *    processors,
>     *    this could be made to work.
>     */

This is what I've been trying to explain.

> Does that mean that our time granularity drops drastically in the SMP
> case? We loose usec! (2.4 and 2.5 kernels)

not by much.

grant