Re: [Patch] Re: Nasty suprise with uptime

From: Benjamin LaHaise (bcrl@redhat.com)
Date: Thu Nov 01 2001 - 12:02:22 EST


On Thu, Nov 01, 2001 at 10:34:53AM -0500, Richard B. Johnson wrote:
> Well not exactly zealots. I test a lot of stuff. In fact, the code
> you propose:
>
> if(++jiffies==0) jiffies_hi++;
>
> ... actually works quite well:

Uhm, no, it really doesn't. See how it pairs with other instructions and
what the cost is when it doesn't have to be as bad:

this:
        unsigned long a, b;
        if (++a == 0) b++;
gives:
        movl a, %eax
        movl %esp, %ebp
        incl %eax
        testl %eax, %eax
        movl %eax, a
        je .L3
.L2:
        popl %ebp
        ret
        .p2align 4,,7
.L3:
        incl b
        jmp .L2

which is really gross considering that:

        unsigned long long c;
        c++;

gives:

        addl $1, c
        adcl $0, c+4

which is quite excellent.

                -ben
-
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 : Wed Nov 07 2001 - 21:00:15 EST