Message ID | 20221104141118.119-4-thunder.leizhen@huawei.com (mailing list archive) |
---|---|
State | Superseded |
Commit | 47d08997a1e82dc2e8a6b6d8dc8fc0d3be09babb |
Headers | show |
Series | rcu: Add RCU stall diagnosis information | expand |
Hi, On 11/4/2022 7:41 PM, Zhen Lei wrote: > Returns the number of context switches on the specified CPU, which can be > used to diagnose rcu stall. > > Signed-off-by: Zhen Lei <thunder.leizhen@huawei.com> > --- > include/linux/kernel_stat.h | 1 + > kernel/sched/core.c | 5 +++++ > 2 files changed, 6 insertions(+) > > diff --git a/include/linux/kernel_stat.h b/include/linux/kernel_stat.h > index 898076e173a928a..9935f7ecbfb9e31 100644 > --- a/include/linux/kernel_stat.h > +++ b/include/linux/kernel_stat.h > @@ -52,6 +52,7 @@ DECLARE_PER_CPU(struct kernel_cpustat, kernel_cpustat); > #define kstat_cpu(cpu) per_cpu(kstat, cpu) > #define kcpustat_cpu(cpu) per_cpu(kernel_cpustat, cpu) > > +extern unsigned long long nr_context_switches_cpu(int cpu); > extern unsigned long long nr_context_switches(void); > > extern unsigned int kstat_irqs_cpu(unsigned int irq, int cpu); > diff --git a/kernel/sched/core.c b/kernel/sched/core.c > index 5800b0623ff3068..a0d19f67f2046d9 100644 > --- a/kernel/sched/core.c > +++ b/kernel/sched/core.c > @@ -5229,6 +5229,11 @@ bool single_task_running(void) > } > EXPORT_SYMBOL(single_task_running); > > +unsigned long long nr_context_switches_cpu(int cpu) > +{ > + return cpu_rq(cpu)->nr_switches; > +} > + > unsigned long long nr_context_switches(void) > { > int i; LGTM. Reviewed-by: Mukesh Ojha <quic_mojha@quicinc.com> -Mukesh
diff --git a/include/linux/kernel_stat.h b/include/linux/kernel_stat.h index 898076e173a928a..9935f7ecbfb9e31 100644 --- a/include/linux/kernel_stat.h +++ b/include/linux/kernel_stat.h @@ -52,6 +52,7 @@ DECLARE_PER_CPU(struct kernel_cpustat, kernel_cpustat); #define kstat_cpu(cpu) per_cpu(kstat, cpu) #define kcpustat_cpu(cpu) per_cpu(kernel_cpustat, cpu) +extern unsigned long long nr_context_switches_cpu(int cpu); extern unsigned long long nr_context_switches(void); extern unsigned int kstat_irqs_cpu(unsigned int irq, int cpu); diff --git a/kernel/sched/core.c b/kernel/sched/core.c index 5800b0623ff3068..a0d19f67f2046d9 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -5229,6 +5229,11 @@ bool single_task_running(void) } EXPORT_SYMBOL(single_task_running); +unsigned long long nr_context_switches_cpu(int cpu) +{ + return cpu_rq(cpu)->nr_switches; +} + unsigned long long nr_context_switches(void) { int i;
Returns the number of context switches on the specified CPU, which can be used to diagnose rcu stall. Signed-off-by: Zhen Lei <thunder.leizhen@huawei.com> --- include/linux/kernel_stat.h | 1 + kernel/sched/core.c | 5 +++++ 2 files changed, 6 insertions(+)