[PATCH] 2.6.18-rt7: fix more issues with 32-bit cycles_t in latency_trace.c (take 3)
Sergei Shtylyov
sshtylyov at ru.mvista.com
Tue Dec 5 04:09:56 EST 2006
Hello.
Ingo Molnar wrote:
>>> /* check for buggy clocks, handling wrap for 32-bit clocks */
>>>- if (TYPE_EQUAL(cycles_t, unsigned long)) {
>>>+ if (TYPE_EQUAL(cycle_t, unsigned long)) {
>>> if (time_after((unsigned long)T1, (unsigned long)T2))
>>> printk("bug: %08lx < %08lx!\n",
>>> (unsigned long)T2, (unsigned long)T1);
>> This earlier fix by Kevin woulnd't have sense anymore with cycle_t...
> yeah, indeed - i've zapped this one too.
Moreover, it was somewhat incorrect from the very start since 'unsigned
long' is 64-bit on 64-bit machines, and cycles_t is 'unsigned long' on both
PPC32 and PPC64, so else branch would've *never* be executed...
> basically, what i'd like is the 32-bit clocks/cycles be handled
> intelligently, and not adding to the cruft that already is in
> kernel/latency_tracing.c.
Yeah, I've looked at 2.6.19-rt2 and saw the new approach. But what's left
to fix there, only the case of using PPC32 raw cycles? I guess you only need
to cast a result of get_cycles() to cycle_t... wait, it'll be explicitly cast
in the return stmt, won't it?
> Ingo
WBR, Sergei
More information about the Linuxppc-dev
mailing list