summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Gleixner <tglx@linutronix.de>2006-01-12 11:36:14 +0100
committerThomas Gleixner <tglx@linutronix.de>2006-01-12 11:36:14 +0100
commite2787630c1abb075c935cf47e91beb7c656f48c4 (patch)
tree43b6ee44b9f81fdb33283313f167d6ecec2b0243
parent288867ec5c377db82933b64460ce050e5c998ee9 (diff)
downloadkernel-common-e2787630c1abb075c935cf47e91beb7c656f48c4.tar.gz
kernel-common-e2787630c1abb075c935cf47e91beb7c656f48c4.tar.bz2
kernel-common-e2787630c1abb075c935cf47e91beb7c656f48c4.zip
[hrtimer] Change resolution storage to ktime_t format
Change the storage format of the per base resolution to ktime_t to make it easier accessible in the hrtimers code. Change the resolution from (NSEC_PER_SEC/HZ) to TICK_NSEC as Roman pointed out. TICK_NSEC is closer to the real resolution. Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
-rw-r--r--include/linux/hrtimer.h2
-rw-r--r--include/linux/ktime.h4
-rw-r--r--kernel/hrtimer.c3
3 files changed, 4 insertions, 5 deletions
diff --git a/include/linux/hrtimer.h b/include/linux/hrtimer.h
index abb674c9b764..98c5c1537b5d 100644
--- a/include/linux/hrtimer.h
+++ b/include/linux/hrtimer.h
@@ -85,7 +85,7 @@ struct hrtimer_base {
spinlock_t lock;
struct rb_root active;
struct rb_node *first;
- unsigned long resolution;
+ ktime_t resolution;
ktime_t (*get_time)(void);
struct hrtimer *curr_timer;
};
diff --git a/include/linux/ktime.h b/include/linux/ktime.h
index 222a047cc145..1bd6552cc341 100644
--- a/include/linux/ktime.h
+++ b/include/linux/ktime.h
@@ -272,8 +272,8 @@ static inline u64 ktime_to_ns(const ktime_t kt)
* idea of the (in)accuracy of timers. Timer values are rounded up to
* this resolution values.
*/
-#define KTIME_REALTIME_RES (NSEC_PER_SEC/HZ)
-#define KTIME_MONOTONIC_RES (NSEC_PER_SEC/HZ)
+#define KTIME_REALTIME_RES (ktime_t){ .tv64 = TICK_NSEC }
+#define KTIME_MONOTONIC_RES (ktime_t){ .tv64 = TICK_NSEC }
/* Get the monotonic time in timespec format: */
extern void ktime_get_ts(struct timespec *ts);
diff --git a/kernel/hrtimer.c b/kernel/hrtimer.c
index e6e8278bcb18..76d759ce6231 100644
--- a/kernel/hrtimer.c
+++ b/kernel/hrtimer.c
@@ -518,9 +518,8 @@ int hrtimer_get_res(const clockid_t which_clock, struct timespec *tp)
{
struct hrtimer_base *bases;
- tp->tv_sec = 0;
bases = per_cpu(hrtimer_bases, raw_smp_processor_id());
- tp->tv_nsec = bases[which_clock].resolution;
+ *tp = ktime_to_timespec(bases[which_clock].resolution);
return 0;
}