Messages in this thread Patch in this message | ![/](/images/icornerl.gif) | | From | Enlin Mu <> | Date | Fri, 15 Mar 2024 10:07:42 +0800 | Subject | Re: [PATCH] hrtimer:Add get_hrtimer_cpu_base() |
| |
Thomas Gleixner <tglx@linutronix.de> 于2024年3月14日周四 19:59写道: > > On Thu, Mar 14 2024 at 18:45, Enlin Mu wrote: > > Thomas Gleixner <tglx@linutronix.de> 于2024年3月14日周四 18:22写道: > >> > >> On Wed, Mar 13 2024 at 05:30, Enlin Mu wrote: > >> > From: Enlin Mu <enlin.mu@unisoc.com> > >> > > >> > On the Arm platform,arch_timer may occur irq strom, > >> > By using the next_timer of hrtimer_cpu_base, it is > >> > possible to quickly locate abnormal timers. > >> > As it is an out of tree modules,the function needs > >> > to be exproted. > >> > >> No. We are not exporting for out of tree code. > > Can you explain it? > > Exporting functions or variables requires an in tree usecase. > Thands, I got it.
If patch is following: --- include/linux/hrtimer.h | 1 + kernel/time/hrtimer.c | 1 + kernel/time/tick-internal.h | 1 - kernel/time/timer_list.c | 1 + 4 files changed, 3 insertions(+), 1 deletion(-)
diff --git a/include/linux/hrtimer.h b/include/linux/hrtimer.h index 2a37d2a8e808..a0eaed4a3edc 100644 --- a/include/linux/hrtimer.h +++ b/include/linux/hrtimer.h @@ -278,6 +278,7 @@ static inline void hrtimer_start(struct hrtimer *timer, ktime_t tim, extern int hrtimer_cancel(struct hrtimer *timer); extern int hrtimer_try_to_cancel(struct hrtimer *timer); extern struct hrtimer_cpu_base *get_hrtimer_cpu_base(int cpu); +DECLARE_PER_CPU(struct tick_device, tick_cpu_device);
static inline void hrtimer_start_expires(struct hrtimer *timer, enum hrtimer_mode mode) diff --git a/kernel/time/hrtimer.c b/kernel/time/hrtimer.c index f7cf7d48b91d..49024d07c61b 100644 --- a/kernel/time/hrtimer.c +++ b/kernel/time/hrtimer.c @@ -113,6 +113,7 @@ DEFINE_PER_CPU(struct hrtimer_cpu_base, hrtimer_bases) = }, } }; +EXPORT_PER_CPU_SYMBOL(hrtimer_bases);
static const int hrtimer_clock_to_base_table[MAX_CLOCKS] = { /* Make sure we catch unsupported clockids */ diff --git a/kernel/time/tick-internal.h b/kernel/time/tick-internal.h index 5f2105e637bd..96df7d21506c 100644 --- a/kernel/time/tick-internal.h +++ b/kernel/time/tick-internal.h @@ -18,7 +18,6 @@ struct timer_events { # define TICK_DO_TIMER_NONE -1 # define TICK_DO_TIMER_BOOT -2
-DECLARE_PER_CPU(struct tick_device, tick_cpu_device); extern ktime_t tick_next_period; extern int tick_do_timer_cpu __read_mostly;
diff --git a/kernel/time/timer_list.c b/kernel/time/timer_list.c index 1c311c46da50..b6fee42e3861 100644 --- a/kernel/time/timer_list.c +++ b/kernel/time/timer_list.c @@ -16,6 +16,7 @@ #include <linux/uaccess.h>
#include "tick-internal.h" +#include <linux/hrtimer.h>
struct timer_list_iter { int cpu; -- please review and comment.
Thanks
| ![\](/images/icornerr.gif) |