Re: [PATCH 7/9] RFC: rtc: implement rtc_read_timeval()

From: John Stultz
Date: Fri Jun 14 2013 - 15:18:32 EST


On 06/14/2013 10:43 AM, Alexander Holler wrote:
Am 14.06.2013 19:23, schrieb John Stultz:
On 06/14/2013 09:52 AM, Alexander Holler wrote:
Some RTCs offer a higher resolution than seconds. To support reading such
high resolution timestamps from inside the kernel implement
rtc_read_timeval() and add a read_timeval to the rtc-ops.

So I like the direction this patch is going. But if we're going to add a
new interface, lets not use an already out-dated structure (timeval).

Instead could you rework this to be timepsec based? Or ktime_t if its
really internal only?

Sure, no problem. I wasn't aware timeval is out-dated and I've read somewhere in the sources a comment that ktime_t has to disappear. I had no clue if I should use timeval or timespec, and just have roled a dice to decide between timeval and timespec.

That "internal only" is only because I don't want to write changes for the userspace api to handle RTCs with greater precision than seconds. I don't have a writable RTC supporting such a precision and I want to leave this for people which are developing such devices and earning money with them.


Ok. Pushing it out to userland and the settime interfaces are probably logically separate enough.

That said, the the pain with this change is it leaves us with duplicate internal interfaces to read the time. So at some point we'll have to go through all the clocksource drivers and convert them to provide the timespec granular method, even if they just return the second portion.

Otherwise, you end up with a mishmash of some users using the second granular and some users using the highres and not all RTCs working for all users (or the users have to do their own fallback logic).

That said, I think such a transition is needed eventually, and this gets us at least started in that direction.

Alessandro: You have any thoughts here on how to best approach this sort of eventually far-reaching change?

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/