Re: [RFC PATCH v2 0/4] Add support for S3 non-stop TSC support.

From: John Stultz
Date: Tue Mar 05 2013 - 01:18:16 EST


On 03/05/2013 12:32 PM, Jason Gunthorpe wrote:
On Tue, Mar 05, 2013 at 11:53:02AM +0800, Feng Tang wrote:

// Drops some small precision along the way but is simple..
static inline u64 cyclecounter_cyc2ns_128(const struct cyclecounter *cc,
cycle_t cycles)
{
u64 max = U64_MAX/cc->mult;
u64 num = cycles/max;
u64 result = num * ((max * cc->mult) >> cc->shift);
return result + cyclecounter_cyc2ns(cc, cycles - num*cc->mult);
}
Your way is surely more accurate, if maintainers are ok with adding
the new API, I will use it.
Okay, give it a good look though, I only wrote it out in email, never
tested it :)

Probably want to use clocksource instead of cyclecounter, but I think Jason's approach sounds ok. I might suggest that you initially make the function static to the timekeeping code, just so we don't get unexpected users.

thanks
-john
--
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/