Rev 6934 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 6934 | Rev 6936 | ||
---|---|---|---|
Line 60... | Line 60... | ||
60 | * @flags: flags describing special properties |
60 | * @flags: flags describing special properties |
61 | * @archdata: arch-specific data |
61 | * @archdata: arch-specific data |
62 | * @suspend: suspend function for the clocksource, if necessary |
62 | * @suspend: suspend function for the clocksource, if necessary |
63 | * @resume: resume function for the clocksource, if necessary |
63 | * @resume: resume function for the clocksource, if necessary |
64 | * @owner: module reference, must be set by clocksource in modules |
64 | * @owner: module reference, must be set by clocksource in modules |
- | 65 | * |
|
- | 66 | * Note: This struct is not used in hotpathes of the timekeeping code |
|
- | 67 | * because the timekeeper caches the hot path fields in its own data |
|
- | 68 | * structure, so no line cache alignment is required, |
|
- | 69 | * |
|
- | 70 | * The pointer to the clocksource itself is handed to the read |
|
- | 71 | * callback. If you need extra information there you can wrap struct |
|
- | 72 | * clocksource into your own struct. Depending on the amount of |
|
- | 73 | * information you need you should consider to cache line align that |
|
- | 74 | * structure. |
|
65 | */ |
75 | */ |
66 | struct clocksource { |
76 | struct clocksource { |
67 | /* |
- | |
68 | * Hotpath data, fits in a single cache line when the |
- | |
69 | * clocksource itself is cacheline aligned. |
- | |
70 | */ |
- | |
71 | cycle_t (*read)(struct clocksource *cs); |
77 | cycle_t (*read)(struct clocksource *cs); |
72 | cycle_t mask; |
78 | cycle_t mask; |
73 | u32 mult; |
79 | u32 mult; |
74 | u32 shift; |
80 | u32 shift; |
75 | u64 max_idle_ns; |
81 | u64 max_idle_ns; |
Line 93... | Line 99... | ||
93 | struct list_head wd_list; |
99 | struct list_head wd_list; |
94 | cycle_t cs_last; |
100 | cycle_t cs_last; |
95 | cycle_t wd_last; |
101 | cycle_t wd_last; |
96 | #endif |
102 | #endif |
97 | struct module *owner; |
103 | struct module *owner; |
98 | } ____cacheline_aligned; |
104 | }; |
Line 99... | Line 105... | ||
99 | 105 | ||
100 | /* |
106 | /* |
101 | * Clock source flags bits:: |
107 | * Clock source flags bits:: |
102 | */ |
108 | */ |