Re: [PATCH] 2.6.18-rt7: fix more issues with 32-bit cycles_t in latency_trace.c(take 3)

From: Sergei Shtylyov
Date: Mon Dec 04 2006 - 12:08:42 EST


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
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/