lkml.org 
[lkml]   [2006]   [Mar]   [4]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Subject[RFC][PATCH] export clocksource resolution (experimental)
From
Date
Hey Thomas,
Earlier there was some discussion of trying to export the clocksource
resolution so it could be used to make sure we don't expire hrtimers
early. I scratched out this first pass patch to provide an interface to
do so. Let me know if this was similar to what you were thinking of.

thanks
-john

include/linux/timeofday.h | 1 +
kernel/time/timeofday.c | 18 ++++++++++++++++++
2 files changed, 19 insertions(+)

linux-2.6.16-rc5_timeofday-clocksource-resolution_B20.patch
============================================
diff --git a/include/linux/timeofday.h b/include/linux/timeofday.h
index 5222c4c..fb47e82 100644
--- a/include/linux/timeofday.h
+++ b/include/linux/timeofday.h
@@ -30,6 +30,7 @@ extern int do_settimeofday(struct timesp

/* Internal functions */
extern int timeofday_is_continuous(void);
+extern u32 timeofday_get_clockres(void);
extern void timeofday_init(void);

#ifndef CONFIG_IS_TICK_BASED
diff --git a/kernel/time/timeofday.c b/kernel/time/timeofday.c
index 8085b86..5d1d6e4 100644
--- a/kernel/time/timeofday.c
+++ b/kernel/time/timeofday.c
@@ -650,6 +650,24 @@ int timeofday_is_continuous(void)
}

/**
+ * timeofday_get_clockres - returns the underlying clocksource's resolution
+ */
+u32 timeofday_get_clockres(void)
+{
+ unsigned long seq;
+ u32 res;
+ do {
+ seq = read_seqbegin(&system_time_lock);
+
+ /* take one cycle -> N+1 nsecs */
+ res = cyc2ns(clock, 0, 1) + 1;
+
+ } while (read_seqretry(&system_time_lock, seq));
+
+ return res;
+}
+
+/**
* timeofday_init - Initializes time variables
*/
void __init timeofday_init(void)

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2006-03-04 06:04    [W:0.182 / U:0.044 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site