David S. Miller wrote:
We can't use this stuff on Alpha, it's cycle counter overflows after
just 10 minutes. It works very strangely, something like only the
lower 32-bits are guarenteed to be continually incrementing.
The code (although racy) can handle 32-bit cycle counters. get_cycles()
on alpha returns a 32-bit value, so psched_tick calls PSCHED_GET_TIME
to adjust psched_time_base once a second. It is basically the same as
before. This is the second condition for this too work, besides
get_cycles() incrementing at >1MHz, it needs to return either a 32-bit
value and really use the full 32 bit or return something bigger, which
is assumed not to overflow. Alpha seems to satisfy both conditions.
I'm going to apply your patch and delete the Alpha parts.
Meanwhile, ping Richard Henderson (rth@xxxxxxxxxx) or one
of the other Alpha experts for me to get confirmation on
this stuff.
Even better.
Regards
Patrick
|