mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-12-29 09:16:33 +00:00
Documentation: timers: hrtimers: Make hybrid union historical
Non-scalar time was removed from the ktime hybrid union in v3.17, and the union itself followed suit in v4.10. Make it clear that ktime_t is always a 64bit scalar type, to avoid confusing the casual reader. While at it, fix a spelling mistake. Fixes:24e4a8c3e8
("ktime: Kill non-scalar ktime_t implementation for 2038") Fixes:2456e85535
("ktime: Get rid of the union") Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be> Reviewed-by: Thomas Gleixner <tglx@linutronix.de> Link: https://lore.kernel.org/r/59250a3d1c2c827b5c1833169a6e652ca6a784e6.1683021785.git.geert+renesas@glider.be Signed-off-by: Jonathan Corbet <corbet@lwn.net>
This commit is contained in:
parent
0b656310bf
commit
4c093cbb89
@ -123,17 +123,12 @@ equivalent to timer_delete() and timer_delete_sync()] - so there's no direct
|
|||||||
potential for code sharing either.
|
potential for code sharing either.
|
||||||
|
|
||||||
Basic data types: every time value, absolute or relative, is in a
|
Basic data types: every time value, absolute or relative, is in a
|
||||||
special nanosecond-resolution type: ktime_t. The kernel-internal
|
special nanosecond-resolution 64bit type: ktime_t.
|
||||||
representation of ktime_t values and operations is implemented via
|
(Originally, the kernel-internal representation of ktime_t values and
|
||||||
macros and inline functions, and can be switched between a "hybrid
|
operations was implemented via macros and inline functions, and could be
|
||||||
union" type and a plain "scalar" 64bit nanoseconds representation (at
|
switched between a "hybrid union" type and a plain "scalar" 64bit
|
||||||
compile time). The hybrid union type optimizes time conversions on 32bit
|
nanoseconds representation (at compile time). This was abandoned in the
|
||||||
CPUs. This build-time-selectable ktime_t storage format was implemented
|
context of the Y2038 work.)
|
||||||
to avoid the performance impact of 64-bit multiplications and divisions
|
|
||||||
on 32bit CPUs. Such operations are frequently necessary to convert
|
|
||||||
between the storage formats provided by kernel and userspace interfaces
|
|
||||||
and the internal time format. (See include/linux/ktime.h for further
|
|
||||||
details.)
|
|
||||||
|
|
||||||
hrtimers - rounding of timer values
|
hrtimers - rounding of timer values
|
||||||
-----------------------------------
|
-----------------------------------
|
||||||
@ -148,7 +143,7 @@ a given clock has - be it low-res, high-res, or artificially-low-res.
|
|||||||
hrtimers - testing and verification
|
hrtimers - testing and verification
|
||||||
-----------------------------------
|
-----------------------------------
|
||||||
|
|
||||||
We used the high-resolution clock subsystem ontop of hrtimers to verify
|
We used the high-resolution clock subsystem on top of hrtimers to verify
|
||||||
the hrtimer implementation details in praxis, and we also ran the posix
|
the hrtimer implementation details in praxis, and we also ran the posix
|
||||||
timer tests in order to ensure specification compliance. We also ran
|
timer tests in order to ensure specification compliance. We also ran
|
||||||
tests on low-resolution clocks.
|
tests on low-resolution clocks.
|
||||||
|
Loading…
Reference in New Issue
Block a user