|
@@ -62,12 +62,18 @@ struct module;
|
|
|
* @suspend: suspend function for the clocksource, if necessary
|
|
|
* @resume: resume function for the clocksource, if necessary
|
|
|
* @owner: module reference, must be set by clocksource in modules
|
|
|
+ *
|
|
|
+ * Note: This struct is not used in hotpathes of the timekeeping code
|
|
|
+ * because the timekeeper caches the hot path fields in its own data
|
|
|
+ * structure, so no line cache alignment is required,
|
|
|
+ *
|
|
|
+ * The pointer to the clocksource itself is handed to the read
|
|
|
+ * callback. If you need extra information there you can wrap struct
|
|
|
+ * clocksource into your own struct. Depending on the amount of
|
|
|
+ * information you need you should consider to cache line align that
|
|
|
+ * structure.
|
|
|
*/
|
|
|
struct clocksource {
|
|
|
- /*
|
|
|
- * Hotpath data, fits in a single cache line when the
|
|
|
- * clocksource itself is cacheline aligned.
|
|
|
- */
|
|
|
cycle_t (*read)(struct clocksource *cs);
|
|
|
cycle_t mask;
|
|
|
u32 mult;
|
|
@@ -95,7 +101,7 @@ struct clocksource {
|
|
|
cycle_t wd_last;
|
|
|
#endif
|
|
|
struct module *owner;
|
|
|
-} ____cacheline_aligned;
|
|
|
+};
|
|
|
|
|
|
/*
|
|
|
* Clock source flags bits::
|