2021-05-24 02:52:30

by Yejune Deng

[permalink] [raw]
Subject: [PATCH] irqflags: Remove the CONFIG_TRACE_IRQFLAGS

trace_hardirqs_on() and trace_hardirqs_off() had include the
CONFIG_TRACE_IRQFLAGS, so remove the redundant CONFIG_TRACE_IRQFLAGS.

Signed-off-by: Yejune Deng <[email protected]>
---
include/linux/irqflags.h | 16 ----------------
1 file changed, 16 deletions(-)

diff --git a/include/linux/irqflags.h b/include/linux/irqflags.h
index 600c10d..b5edd7b 100644
--- a/include/linux/irqflags.h
+++ b/include/linux/irqflags.h
@@ -189,12 +189,6 @@ extern void warn_bogus_irq_restore(void);
#define raw_irqs_disabled() (arch_irqs_disabled())
#define raw_safe_halt() arch_safe_halt()

-/*
- * The local_irq_*() APIs are equal to the raw_local_irq*()
- * if !TRACE_IRQFLAGS.
- */
-#ifdef CONFIG_TRACE_IRQFLAGS
-
#define local_irq_enable() \
do { \
trace_hardirqs_on(); \
@@ -230,16 +224,6 @@ extern void warn_bogus_irq_restore(void);
} while (0)


-#else /* !CONFIG_TRACE_IRQFLAGS */
-
-#define local_irq_enable() do { raw_local_irq_enable(); } while (0)
-#define local_irq_disable() do { raw_local_irq_disable(); } while (0)
-#define local_irq_save(flags) do { raw_local_irq_save(flags); } while (0)
-#define local_irq_restore(flags) do { raw_local_irq_restore(flags); } while (0)
-#define safe_halt() do { raw_safe_halt(); } while (0)
-
-#endif /* CONFIG_TRACE_IRQFLAGS */
-
#define local_save_flags(flags) raw_local_save_flags(flags)

/*
--
2.7.4


2021-05-24 11:29:58

by Mark Rutland

[permalink] [raw]
Subject: Re: [PATCH] irqflags: Remove the CONFIG_TRACE_IRQFLAGS

On Mon, May 24, 2021 at 10:51:19AM +0800, Yejune Deng wrote:
> trace_hardirqs_on() and trace_hardirqs_off() had include the
> CONFIG_TRACE_IRQFLAGS, so remove the redundant CONFIG_TRACE_IRQFLAGS.
>
> Signed-off-by: Yejune Deng <[email protected]>
> ---
> include/linux/irqflags.h | 16 ----------------
> 1 file changed, 16 deletions(-)
>
> diff --git a/include/linux/irqflags.h b/include/linux/irqflags.h
> index 600c10d..b5edd7b 100644
> --- a/include/linux/irqflags.h
> +++ b/include/linux/irqflags.h
> @@ -189,12 +189,6 @@ extern void warn_bogus_irq_restore(void);
> #define raw_irqs_disabled() (arch_irqs_disabled())
> #define raw_safe_halt() arch_safe_halt()
>
> -/*
> - * The local_irq_*() APIs are equal to the raw_local_irq*()
> - * if !TRACE_IRQFLAGS.
> - */
> -#ifdef CONFIG_TRACE_IRQFLAGS
> -
> #define local_irq_enable() \
> do { \
> trace_hardirqs_on(); \
> @@ -230,16 +224,6 @@ extern void warn_bogus_irq_restore(void);
> } while (0)
>
>
> -#else /* !CONFIG_TRACE_IRQFLAGS */
> -
> -#define local_irq_enable() do { raw_local_irq_enable(); } while (0)
> -#define local_irq_disable() do { raw_local_irq_disable(); } while (0)

The implementation we're left with is:

| #define local_irq_disable() \
| do { \
| bool was_disabled = raw_irqs_disabled();\
| raw_local_irq_disable(); \
| if (!was_disabled) \
| trace_hardirqs_off(); \
| } while (0)

... where the compiler almost certainly won't be able to optimize away
the call to raw_irqs_disabled(), which wraps arch_irqs_disabled(). Note
that arch_irqs_disabled() is typically implemented with a volatile asm
block to save the processor flags.

We could special-case local_irq_disable() to prevent this, or we could
leave it as-is. I'd err towards the latter.

Thanks,
Mark.

> -#define local_irq_save(flags) do { raw_local_irq_save(flags); } while (0)
> -#define local_irq_restore(flags) do { raw_local_irq_restore(flags); } while (0)
> -#define safe_halt() do { raw_safe_halt(); } while (0)
> -
> -#endif /* CONFIG_TRACE_IRQFLAGS */
> -
> #define local_save_flags(flags) raw_local_save_flags(flags)
>
> /*
> --
> 2.7.4
>

2021-05-25 06:50:00

by kernel test robot

[permalink] [raw]
Subject: [irqflags] 21db66c4ff: will-it-scale.per_process_ops -4.5% regression



Greeting,

FYI, we noticed a -4.5% regression of will-it-scale.per_process_ops due to commit:


commit: 21db66c4ff4e737875727ee7a1af94fd30c2a2f4 ("[PATCH] irqflags: Remove the CONFIG_TRACE_IRQFLAGS")
url: https://github.com/0day-ci/linux/commits/Yejune-Deng/irqflags-Remove-the-CONFIG_TRACE_IRQFLAGS/20210524-105251
base: https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git c4681547bcce777daf576925a966ffa824edd09d

in testcase: will-it-scale
on test machine: 192 threads 4 sockets Intel(R) Xeon(R) Platinum 9242 CPU @ 2.30GHz with 192G memory
with following parameters:

nr_task: 16
mode: process
test: dup1
cpufreq_governor: performance
ucode: 0x5003006

test-description: Will It Scale takes a testcase and runs it from 1 through to n parallel copies to see if the testcase will scale. It builds both a process and threads based test in order to see any differences between the two.
test-url: https://github.com/antonblanchard/will-it-scale

In addition to that, the commit also has significant impact on the following tests:

+------------------+---------------------------------------------------------------+
| testcase: change | will-it-scale: will-it-scale.per_process_ops -1.2% regression |
| test machine | 104 threads 2 sockets Skylake with 192G memory |
| test parameters | cpufreq_governor=performance |
| | mode=process |
| | nr_task=50% |
| | test=futex3 |
| | ucode=0x2006a0a |
+------------------+---------------------------------------------------------------+


FYI, we have identical kconfig for both 21db66c4ff and parent (config file is attached)
and the CONFIG_TRACE_IRQFLAGS is disabled.

If you fix the issue, kindly add following tag
Reported-by: kernel test robot <[email protected]>


Details are as below:
-------------------------------------------------------------------------------------------------->


To reproduce:

git clone https://github.com/intel/lkp-tests.git
cd lkp-tests
bin/lkp install job.yaml # job file is attached in this email
bin/lkp split-job --compatible job.yaml # generate the yaml file for lkp run
bin/lkp run generated-yaml-file

=========================================================================================
compiler/cpufreq_governor/kconfig/mode/nr_task/rootfs/tbox_group/test/testcase/ucode:
gcc-9/performance/x86_64-rhel-8.3/process/16/debian-10.4-x86_64-20200603.cgz/lkp-csl-2ap2/dup1/will-it-scale/0x5003006

commit:
v5.13-rc3
21db66c4ff ("irqflags: Remove the CONFIG_TRACE_IRQFLAGS")

v5.13-rc3 21db66c4ff4e737875727ee7a1a
---------------- ---------------------------
%stddev %change %stddev
\ | \
78047414 -4.5% 74526776 will-it-scale.16.processes
4877962 -4.5% 4657922 will-it-scale.per_process_ops
78047414 -4.5% 74526776 will-it-scale.workload
54046 ? 2% -7.2% 50161 ? 2% meminfo.Active
54046 ? 2% -7.2% 50161 ? 2% meminfo.Active(anon)
30554 ? 6% -14.2% 26213 ? 14% softirqs.CPU104.SCHED
28598 ? 4% -12.9% 24899 ? 10% softirqs.CPU109.SCHED
16002 ? 12% -21.4% 12576 ? 17% softirqs.CPU162.RCU
5.04e+10 ? 7% -46.6% 2.692e+10 ? 78% cpuidle.C1E.time
1.04e+08 ? 5% -29.7% 73111874 ? 29% cpuidle.C1E.usage
1.755e+09 ?208% +1300.9% 2.459e+10 ? 85% cpuidle.C6.time
3699595 ?209% +689.3% 29200515 ? 84% cpuidle.C6.usage
0.02 ? 20% +144.3% 0.05 ? 67% perf-sched.sch_delay.max.ms.do_task_dead.do_exit.do_group_exit.__x64_sys_exit_group.do_syscall_64
0.01 ? 19% +665.6% 0.08 ? 85% perf-sched.sch_delay.max.ms.do_wait.kernel_wait4.__do_sys_wait4.do_syscall_64
532.87 ? 10% +27.9% 681.63 ? 5% perf-sched.wait_and_delay.avg.ms.schedule_hrtimeout_range_clock.poll_schedule_timeout.constprop.0.do_sys_poll
61.17 ? 2% -18.0% 50.14 ? 4% perf-sched.wait_and_delay.count.schedule_hrtimeout_range_clock.poll_schedule_timeout.constprop.0.do_sys_poll
532.87 ? 10% +27.9% 681.63 ? 5% perf-sched.wait_time.avg.ms.schedule_hrtimeout_range_clock.poll_schedule_timeout.constprop.0.do_sys_poll
13487 ? 2% -7.2% 12517 ? 2% proc-vmstat.nr_active_anon
18501 -5.2% 17532 proc-vmstat.nr_shmem
13487 ? 2% -7.2% 12517 ? 2% proc-vmstat.nr_zone_active_anon
48140 ? 21% -28.9% 34224 ? 39% proc-vmstat.numa_pte_updates
17766 ? 2% -5.7% 16757 proc-vmstat.pgactivate
15.33 ? 6% +56.5% 24.00 ? 27% turbostat.Avg_MHz
57931556 ? 5% -31.7% 39572049 ? 32% turbostat.C1E
48.22 ? 6% -23.6 24.59 ? 86% turbostat.C1E%
2118971 ?212% +693.9% 16821659 ? 85% turbostat.C6
1.56 ?211% +23.0 24.54 ? 85% turbostat.C6%
0.06 ? 11% +27348.2% 16.01 ? 88% turbostat.CPU%c6
0.11 +941.1% 1.17 ? 77% perf-stat.i.MPKI
1.217e+10 -4.3% 1.164e+10 perf-stat.i.branch-instructions
11.21 ? 3% -4.8 6.41 ? 49% perf-stat.i.cache-miss-rate%
6914647 +914.4% 70145425 ? 77% perf-stat.i.cache-references
0.85 +8.8% 0.93 ? 3% perf-stat.i.cpi
5.347e+10 +4.6% 5.595e+10 ? 3% perf-stat.i.cpu-cycles
0.00 ? 83% +0.0 0.01 ? 85% perf-stat.i.dTLB-load-miss-rate%
2.002e+10 -3.1% 1.941e+10 perf-stat.i.dTLB-loads
0.00 ? 20% +0.0 0.00 ? 77% perf-stat.i.dTLB-store-miss-rate%
31277 ? 22% +800.4% 281623 ? 77% perf-stat.i.dTLB-store-misses
1.347e+10 -3.3% 1.302e+10 perf-stat.i.dTLB-stores
6.284e+10 -3.9% 6.041e+10 perf-stat.i.instructions
1.17 -8.0% 1.08 ? 3% perf-stat.i.ipc
0.28 +4.6% 0.29 ? 3% perf-stat.i.metric.GHz
51.86 +631.4% 379.32 ? 74% perf-stat.i.metric.K/sec
237.76 -3.5% 229.53 perf-stat.i.metric.M/sec
190143 ? 3% -9.6% 171895 ? 7% perf-stat.i.node-load-misses
94.23 ? 6% -16.6 77.65 ? 18% perf-stat.i.node-store-miss-rate%
0.11 +955.6% 1.16 ? 77% perf-stat.overall.MPKI
11.76 ? 3% -5.2 6.53 ? 50% perf-stat.overall.cache-miss-rate%
0.85 +8.8% 0.93 ? 3% perf-stat.overall.cpi
0.00 ? 86% +0.0 0.01 ? 85% perf-stat.overall.dTLB-load-miss-rate%
0.00 ? 21% +0.0 0.00 ? 77% perf-stat.overall.dTLB-store-miss-rate%
1.18 -8.0% 1.08 ? 3% perf-stat.overall.ipc
90.88 ? 5% -14.8 76.04 ? 16% perf-stat.overall.node-store-miss-rate%
1.213e+10 -4.3% 1.16e+10 perf-stat.ps.branch-instructions
6890069 +914.6% 69905237 ? 77% perf-stat.ps.cache-references
5.329e+10 +4.6% 5.576e+10 ? 3% perf-stat.ps.cpu-cycles
40856 ? 86% +5184.2% 2158934 ? 85% perf-stat.ps.dTLB-load-misses
1.995e+10 -3.1% 1.934e+10 perf-stat.ps.dTLB-loads
31163 ? 22% +800.6% 280650 ? 77% perf-stat.ps.dTLB-store-misses
1.342e+10 -3.3% 1.298e+10 perf-stat.ps.dTLB-stores
6.263e+10 -3.9% 6.021e+10 perf-stat.ps.instructions
189640 ? 3% -9.7% 171303 ? 7% perf-stat.ps.node-load-misses
1.891e+13 -3.9% 1.818e+13 perf-stat.total.instructions
0.69 ? 9% +0.2 0.86 ? 7% perf-profile.calltrace.cycles-pp.locks_remove_posix.filp_close.__x64_sys_close.do_syscall_64.entry_SYSCALL_64_after_hwframe
0.90 ? 8% +0.2 1.07 ? 5% perf-profile.calltrace.cycles-pp.entry_SYSCALL_64_safe_stack.__close
0.09 ?223% +0.6 0.68 ? 10% perf-profile.calltrace.cycles-pp.dnotify_flush.filp_close.__x64_sys_close.do_syscall_64.entry_SYSCALL_64_after_hwframe
0.96 ? 18% +0.7 1.63 ? 7% perf-profile.calltrace.cycles-pp.hrtimer_interrupt.__sysvec_apic_timer_interrupt.sysvec_apic_timer_interrupt.asm_sysvec_apic_timer_interrupt.cpuidle_enter_state
0.21 ?141% +0.7 0.87 ? 16% perf-profile.calltrace.cycles-pp.menu_select.do_idle.cpu_startup_entry.start_secondary.secondary_startup_64_no_verify
0.30 ?100% +0.7 0.98 ? 16% perf-profile.calltrace.cycles-pp.__hrtimer_run_queues.hrtimer_interrupt.__sysvec_apic_timer_interrupt.sysvec_apic_timer_interrupt.asm_sysvec_apic_timer_interrupt
0.98 ? 18% +0.7 1.66 ? 7% perf-profile.calltrace.cycles-pp.__sysvec_apic_timer_interrupt.sysvec_apic_timer_interrupt.asm_sysvec_apic_timer_interrupt.cpuidle_enter_state.cpuidle_enter
1.48 ? 8% +0.8 2.31 ? 3% perf-profile.calltrace.cycles-pp.syscall_exit_to_user_mode.do_syscall_64.entry_SYSCALL_64_after_hwframe.dup
1.66 ? 13% +0.9 2.55 ? 7% perf-profile.calltrace.cycles-pp.sysvec_apic_timer_interrupt.asm_sysvec_apic_timer_interrupt.cpuidle_enter_state.cpuidle_enter.do_idle
1.87 ? 12% +1.0 2.85 ? 7% perf-profile.calltrace.cycles-pp.asm_sysvec_apic_timer_interrupt.cpuidle_enter_state.cpuidle_enter.do_idle.cpu_startup_entry
0.81 ? 8% +1.7 2.47 ? 5% perf-profile.calltrace.cycles-pp.exit_to_user_mode_prepare.syscall_exit_to_user_mode.do_syscall_64.entry_SYSCALL_64_after_hwframe.__close
1.50 ? 8% +2.6 4.14 ? 6% perf-profile.calltrace.cycles-pp.syscall_exit_to_user_mode.do_syscall_64.entry_SYSCALL_64_after_hwframe.__close
11.46 ? 8% +4.0 15.49 ? 5% perf-profile.calltrace.cycles-pp.do_syscall_64.entry_SYSCALL_64_after_hwframe.__close
13.30 ? 8% +4.2 17.50 ? 5% perf-profile.calltrace.cycles-pp.entry_SYSCALL_64_after_hwframe.__close
0.09 ? 10% +0.0 0.12 ? 10% perf-profile.children.cycles-pp.read_tsc
0.11 ? 6% +0.0 0.15 ? 9% perf-profile.children.cycles-pp.process_simple
0.04 ? 72% +0.0 0.09 ? 23% perf-profile.children.cycles-pp.update_rq_clock
0.02 ?141% +0.0 0.06 ? 7% perf-profile.children.cycles-pp.perf_session__deliver_event
0.10 ? 9% +0.0 0.15 ? 7% perf-profile.children.cycles-pp.native_sched_clock
0.06 ? 14% +0.1 0.11 ? 15% perf-profile.children.cycles-pp.load_balance
0.02 ?142% +0.1 0.07 ? 11% perf-profile.children.cycles-pp.update_sd_lb_stats
0.02 ?141% +0.1 0.07 ? 18% perf-profile.children.cycles-pp.hrtimer_next_event_without
0.00 +0.1 0.05 ? 9% perf-profile.children.cycles-pp.__ordered_events__flush
0.10 ? 16% +0.1 0.15 ? 15% perf-profile.children.cycles-pp.perf_mux_hrtimer_handler
0.13 ? 11% +0.1 0.19 ? 8% perf-profile.children.cycles-pp.rebalance_domains
0.11 ? 9% +0.1 0.17 ? 8% perf-profile.children.cycles-pp.sched_clock_cpu
0.00 +0.1 0.06 ? 16% perf-profile.children.cycles-pp.arch_scale_freq_tick
0.02 ?142% +0.1 0.08 ? 10% perf-profile.children.cycles-pp.find_busiest_group
0.01 ?223% +0.1 0.07 ? 17% perf-profile.children.cycles-pp.get_next_timer_interrupt
0.00 +0.1 0.08 ? 29% perf-profile.children.cycles-pp.rcu_idle_exit
0.03 ? 99% +0.1 0.11 ? 23% perf-profile.children.cycles-pp.rcu_sched_clock_irq
0.00 +0.1 0.08 ? 31% perf-profile.children.cycles-pp.__hrtimer_next_event_base
0.01 ?223% +0.1 0.09 ? 33% perf-profile.children.cycles-pp.hrtimer_update_next_event
0.39 ? 7% +0.1 0.48 ? 8% perf-profile.children.cycles-pp.rcu_nocb_flush_deferred_wakeup
0.22 ? 8% +0.1 0.33 ? 11% perf-profile.children.cycles-pp.__softirqentry_text_start
0.29 ? 9% +0.1 0.43 ? 10% perf-profile.children.cycles-pp.irq_exit_rcu
0.37 ? 15% +0.1 0.51 ? 7% perf-profile.children.cycles-pp.scheduler_tick
0.73 ? 9% +0.2 0.90 ? 8% perf-profile.children.cycles-pp.locks_remove_posix
0.45 ? 11% +0.2 0.68 ? 10% perf-profile.children.cycles-pp.dnotify_flush
0.53 ? 14% +0.3 0.79 ? 8% perf-profile.children.cycles-pp.update_process_times
0.58 ? 9% +0.3 0.85 ? 6% perf-profile.children.cycles-pp.syscall_exit_to_user_mode_prepare
0.54 ? 14% +0.3 0.84 ? 9% perf-profile.children.cycles-pp.tick_sched_handle
0.60 ? 13% +0.3 0.91 ? 7% perf-profile.children.cycles-pp.tick_sched_timer
0.45 ? 32% +0.4 0.88 ? 15% perf-profile.children.cycles-pp.menu_select
0.79 ? 12% +0.5 1.29 ? 11% perf-profile.children.cycles-pp.__hrtimer_run_queues
1.32 ? 13% +0.7 2.02 ? 3% perf-profile.children.cycles-pp.hrtimer_interrupt
1.34 ? 13% +0.7 2.06 ? 3% perf-profile.children.cycles-pp.__sysvec_apic_timer_interrupt
2.05 ? 11% +0.9 2.98 ? 5% perf-profile.children.cycles-pp.sysvec_apic_timer_interrupt
2.29 ? 11% +1.0 3.32 ? 5% perf-profile.children.cycles-pp.asm_sysvec_apic_timer_interrupt
1.86 ? 8% +1.6 3.46 ? 4% perf-profile.children.cycles-pp.exit_to_user_mode_prepare
3.41 ? 8% +3.5 6.91 ? 4% perf-profile.children.cycles-pp.syscall_exit_to_user_mode
27.46 ? 8% +6.1 33.56 ? 4% perf-profile.children.cycles-pp.do_syscall_64
31.32 ? 8% +6.4 37.72 ? 4% perf-profile.children.cycles-pp.entry_SYSCALL_64_after_hwframe
0.09 ? 10% +0.0 0.14 ? 8% perf-profile.self.cycles-pp.native_sched_clock
0.00 +0.1 0.06 ? 16% perf-profile.self.cycles-pp.arch_scale_freq_tick
0.02 ?142% +0.1 0.08 ? 57% perf-profile.self.cycles-pp.tick_nohz_next_event
0.00 +0.1 0.08 ? 28% perf-profile.self.cycles-pp.do_idle
0.01 ?223% +0.1 0.09 ? 25% perf-profile.self.cycles-pp.rcu_sched_clock_irq
0.23 ? 7% +0.1 0.37 ? 8% perf-profile.self.cycles-pp.rcu_nocb_flush_deferred_wakeup
0.26 ? 10% +0.1 0.41 ? 9% perf-profile.self.cycles-pp.cpuidle_enter_state
0.19 ? 30% +0.2 0.42 ? 10% perf-profile.self.cycles-pp.menu_select
0.44 ? 13% +0.2 0.67 ? 11% perf-profile.self.cycles-pp.dnotify_flush
0.52 ? 9% +0.3 0.81 ? 6% perf-profile.self.cycles-pp.syscall_exit_to_user_mode_prepare
1.44 ? 8% +1.4 2.87 ? 4% perf-profile.self.cycles-pp.exit_to_user_mode_prepare
1.16 ? 8% +1.6 2.81 ? 4% perf-profile.self.cycles-pp.syscall_exit_to_user_mode
7117 ? 24% -48.3% 3677 ? 59% interrupts.CPU1.NMI:Non-maskable_interrupts
7117 ? 24% -48.3% 3677 ? 59% interrupts.CPU1.PMI:Performance_monitoring_interrupts
6322 ? 27% -58.1% 2650 ? 23% interrupts.CPU101.NMI:Non-maskable_interrupts
6322 ? 27% -58.1% 2650 ? 23% interrupts.CPU101.PMI:Performance_monitoring_interrupts
6929 ? 18% -52.8% 3272 ? 41% interrupts.CPU104.NMI:Non-maskable_interrupts
6929 ? 18% -52.8% 3272 ? 41% interrupts.CPU104.PMI:Performance_monitoring_interrupts
68.00 ? 6% +90.3% 129.43 ? 33% interrupts.CPU120.NMI:Non-maskable_interrupts
68.00 ? 6% +90.3% 129.43 ? 33% interrupts.CPU120.PMI:Performance_monitoring_interrupts
62.67 ? 23% +92.6% 120.71 ? 31% interrupts.CPU137.NMI:Non-maskable_interrupts
62.67 ? 23% +92.6% 120.71 ? 31% interrupts.CPU137.PMI:Performance_monitoring_interrupts
66.33 ? 28% +86.7% 123.86 ? 33% interrupts.CPU138.NMI:Non-maskable_interrupts
66.33 ? 28% +86.7% 123.86 ? 33% interrupts.CPU138.PMI:Performance_monitoring_interrupts
61.17 ? 24% +93.4% 118.29 ? 44% interrupts.CPU139.NMI:Non-maskable_interrupts
61.17 ? 24% +93.4% 118.29 ? 44% interrupts.CPU139.PMI:Performance_monitoring_interrupts
66.33 ? 6% +91.9% 127.29 ? 73% interrupts.CPU142.NMI:Non-maskable_interrupts
66.33 ? 6% +91.9% 127.29 ? 73% interrupts.CPU142.PMI:Performance_monitoring_interrupts
76.50 ? 11% +51.8% 116.14 ? 29% interrupts.CPU147.NMI:Non-maskable_interrupts
76.50 ? 11% +51.8% 116.14 ? 29% interrupts.CPU147.PMI:Performance_monitoring_interrupts
68.83 ? 6% +75.0% 120.43 ? 32% interrupts.CPU148.NMI:Non-maskable_interrupts
68.83 ? 6% +75.0% 120.43 ? 32% interrupts.CPU148.PMI:Performance_monitoring_interrupts
61.33 ? 22% +85.2% 113.57 ? 31% interrupts.CPU149.NMI:Non-maskable_interrupts
61.33 ? 22% +85.2% 113.57 ? 31% interrupts.CPU149.PMI:Performance_monitoring_interrupts
61.33 ? 21% +84.2% 113.00 ? 32% interrupts.CPU162.NMI:Non-maskable_interrupts
61.33 ? 21% +84.2% 113.00 ? 32% interrupts.CPU162.PMI:Performance_monitoring_interrupts
63.17 ? 22% +54.7% 97.71 ? 35% interrupts.CPU172.NMI:Non-maskable_interrupts
63.17 ? 22% +54.7% 97.71 ? 35% interrupts.CPU172.PMI:Performance_monitoring_interrupts
63.00 ? 19% +82.8% 115.14 ? 39% interrupts.CPU174.NMI:Non-maskable_interrupts
63.00 ? 19% +82.8% 115.14 ? 39% interrupts.CPU174.PMI:Performance_monitoring_interrupts
56.33 ? 27% +113.8% 120.43 ? 32% interrupts.CPU178.NMI:Non-maskable_interrupts
56.33 ? 27% +113.8% 120.43 ? 32% interrupts.CPU178.PMI:Performance_monitoring_interrupts
62.50 ? 20% +98.4% 124.00 ? 35% interrupts.CPU180.NMI:Non-maskable_interrupts
62.50 ? 20% +98.4% 124.00 ? 35% interrupts.CPU180.PMI:Performance_monitoring_interrupts
63.17 ? 16% +86.8% 118.00 ? 31% interrupts.CPU182.NMI:Non-maskable_interrupts
63.17 ? 16% +86.8% 118.00 ? 31% interrupts.CPU182.PMI:Performance_monitoring_interrupts
62.67 ? 19% +93.1% 121.00 ? 33% interrupts.CPU183.NMI:Non-maskable_interrupts
62.67 ? 19% +93.1% 121.00 ? 33% interrupts.CPU183.PMI:Performance_monitoring_interrupts
62.50 ? 19% +86.3% 116.43 ? 30% interrupts.CPU184.NMI:Non-maskable_interrupts
62.50 ? 19% +86.3% 116.43 ? 30% interrupts.CPU184.PMI:Performance_monitoring_interrupts
57.67 ? 29% +106.1% 118.86 ? 31% interrupts.CPU185.NMI:Non-maskable_interrupts
57.67 ? 29% +106.1% 118.86 ? 31% interrupts.CPU185.PMI:Performance_monitoring_interrupts
65.67 ? 23% +89.1% 124.14 ? 33% interrupts.CPU29.NMI:Non-maskable_interrupts
65.67 ? 23% +89.1% 124.14 ? 33% interrupts.CPU29.PMI:Performance_monitoring_interrupts
60.83 ? 21% +89.3% 115.14 ? 40% interrupts.CPU30.NMI:Non-maskable_interrupts
60.83 ? 21% +89.3% 115.14 ? 40% interrupts.CPU30.PMI:Performance_monitoring_interrupts
60.50 ? 21% +88.7% 114.14 ? 40% interrupts.CPU31.NMI:Non-maskable_interrupts
60.50 ? 21% +88.7% 114.14 ? 40% interrupts.CPU31.PMI:Performance_monitoring_interrupts
55.33 ? 31% +120.0% 121.71 ? 32% interrupts.CPU33.NMI:Non-maskable_interrupts
55.33 ? 31% +120.0% 121.71 ? 32% interrupts.CPU33.PMI:Performance_monitoring_interrupts
54.50 ? 31% +120.7% 120.29 ? 33% interrupts.CPU34.NMI:Non-maskable_interrupts
54.50 ? 31% +120.7% 120.29 ? 33% interrupts.CPU34.PMI:Performance_monitoring_interrupts
54.67 ? 31% +130.5% 126.00 ? 35% interrupts.CPU35.NMI:Non-maskable_interrupts
54.67 ? 31% +130.5% 126.00 ? 35% interrupts.CPU35.PMI:Performance_monitoring_interrupts
54.83 ? 31% +139.4% 131.29 ? 38% interrupts.CPU36.NMI:Non-maskable_interrupts
54.83 ? 31% +139.4% 131.29 ? 38% interrupts.CPU36.PMI:Performance_monitoring_interrupts
54.83 ? 31% +122.5% 122.00 ? 33% interrupts.CPU37.NMI:Non-maskable_interrupts
54.83 ? 31% +122.5% 122.00 ? 33% interrupts.CPU37.PMI:Performance_monitoring_interrupts
55.83 ? 32% +115.9% 120.57 ? 33% interrupts.CPU38.NMI:Non-maskable_interrupts
55.83 ? 32% +115.9% 120.57 ? 33% interrupts.CPU38.PMI:Performance_monitoring_interrupts
57.67 ? 35% +112.6% 122.57 ? 32% interrupts.CPU39.NMI:Non-maskable_interrupts
57.67 ? 35% +112.6% 122.57 ? 32% interrupts.CPU39.PMI:Performance_monitoring_interrupts
68.67 ? 4% +61.4% 110.86 ? 35% interrupts.CPU41.NMI:Non-maskable_interrupts
68.67 ? 4% +61.4% 110.86 ? 35% interrupts.CPU41.PMI:Performance_monitoring_interrupts
70.17 ? 9% +77.5% 124.57 ? 33% interrupts.CPU42.NMI:Non-maskable_interrupts
70.17 ? 9% +77.5% 124.57 ? 33% interrupts.CPU42.PMI:Performance_monitoring_interrupts
66.17 ? 5% +87.2% 123.86 ? 34% interrupts.CPU43.NMI:Non-maskable_interrupts
66.17 ? 5% +87.2% 123.86 ? 34% interrupts.CPU43.PMI:Performance_monitoring_interrupts
52.67 ? 32% +132.7% 122.57 ? 33% interrupts.CPU44.NMI:Non-maskable_interrupts
52.67 ? 32% +132.7% 122.57 ? 33% interrupts.CPU44.PMI:Performance_monitoring_interrupts
67.33 ? 44% +80.1% 121.29 ? 32% interrupts.CPU45.NMI:Non-maskable_interrupts
67.33 ? 44% +80.1% 121.29 ? 32% interrupts.CPU45.PMI:Performance_monitoring_interrupts
56.00 ? 32% +263.3% 203.43 ?106% interrupts.CPU46.NMI:Non-maskable_interrupts
56.00 ? 32% +263.3% 203.43 ?106% interrupts.CPU46.PMI:Performance_monitoring_interrupts
57.00 ? 33% +113.3% 121.57 ? 33% interrupts.CPU47.NMI:Non-maskable_interrupts
57.00 ? 33% +113.3% 121.57 ? 33% interrupts.CPU47.PMI:Performance_monitoring_interrupts
57.83 ? 29% +139.1% 138.29 ? 29% interrupts.CPU50.NMI:Non-maskable_interrupts
57.83 ? 29% +139.1% 138.29 ? 29% interrupts.CPU50.PMI:Performance_monitoring_interrupts
55.17 ? 39% +131.0% 127.43 ? 27% interrupts.CPU51.NMI:Non-maskable_interrupts
55.17 ? 39% +131.0% 127.43 ? 27% interrupts.CPU51.PMI:Performance_monitoring_interrupts
50.83 ? 36% +150.7% 127.43 ? 27% interrupts.CPU52.NMI:Non-maskable_interrupts
50.83 ? 36% +150.7% 127.43 ? 27% interrupts.CPU52.PMI:Performance_monitoring_interrupts
56.33 ? 29% +141.2% 135.86 ? 37% interrupts.CPU54.NMI:Non-maskable_interrupts
56.33 ? 29% +141.2% 135.86 ? 37% interrupts.CPU54.PMI:Performance_monitoring_interrupts
55.17 ? 30% +124.3% 123.71 ? 30% interrupts.CPU55.NMI:Non-maskable_interrupts
55.17 ? 30% +124.3% 123.71 ? 30% interrupts.CPU55.PMI:Performance_monitoring_interrupts
43.83 ? 35% +366.1% 204.29 ? 86% interrupts.CPU56.NMI:Non-maskable_interrupts
43.83 ? 35% +366.1% 204.29 ? 86% interrupts.CPU56.PMI:Performance_monitoring_interrupts
51.67 ? 27% +121.5% 114.43 ? 35% interrupts.CPU59.NMI:Non-maskable_interrupts
51.67 ? 27% +121.5% 114.43 ? 35% interrupts.CPU59.PMI:Performance_monitoring_interrupts
49.33 ? 31% +131.9% 114.43 ? 34% interrupts.CPU60.NMI:Non-maskable_interrupts
49.33 ? 31% +131.9% 114.43 ? 34% interrupts.CPU60.PMI:Performance_monitoring_interrupts
49.83 ? 32% +135.1% 117.14 ? 40% interrupts.CPU61.NMI:Non-maskable_interrupts
49.83 ? 32% +135.1% 117.14 ? 40% interrupts.CPU61.PMI:Performance_monitoring_interrupts
54.50 ? 28% +125.7% 123.00 ? 31% interrupts.CPU62.NMI:Non-maskable_interrupts
54.50 ? 28% +125.7% 123.00 ? 31% interrupts.CPU62.PMI:Performance_monitoring_interrupts
55.50 ? 29% +121.9% 123.14 ? 30% interrupts.CPU63.NMI:Non-maskable_interrupts
55.50 ? 29% +121.9% 123.14 ? 30% interrupts.CPU63.PMI:Performance_monitoring_interrupts
54.67 ? 27% +246.8% 189.57 ? 81% interrupts.CPU64.NMI:Non-maskable_interrupts
54.67 ? 27% +246.8% 189.57 ? 81% interrupts.CPU64.PMI:Performance_monitoring_interrupts
71.33 ? 14% +116.3% 154.29 ? 55% interrupts.CPU67.NMI:Non-maskable_interrupts
71.33 ? 14% +116.3% 154.29 ? 55% interrupts.CPU67.PMI:Performance_monitoring_interrupts
75.83 ? 18% +66.3% 126.14 ? 28% interrupts.CPU68.NMI:Non-maskable_interrupts
75.83 ? 18% +66.3% 126.14 ? 28% interrupts.CPU68.PMI:Performance_monitoring_interrupts
57.83 ? 32% +118.4% 126.29 ? 28% interrupts.CPU70.NMI:Non-maskable_interrupts
57.83 ? 32% +118.4% 126.29 ? 28% interrupts.CPU70.PMI:Performance_monitoring_interrupts
62.67 ? 21% +75.5% 110.00 ? 35% interrupts.CPU77.NMI:Non-maskable_interrupts
62.67 ? 21% +75.5% 110.00 ? 35% interrupts.CPU77.PMI:Performance_monitoring_interrupts
61.67 ? 21% +79.5% 110.71 ? 35% interrupts.CPU78.NMI:Non-maskable_interrupts
61.67 ? 21% +79.5% 110.71 ? 35% interrupts.CPU78.PMI:Performance_monitoring_interrupts
61.83 ? 20% +79.3% 110.86 ? 33% interrupts.CPU79.NMI:Non-maskable_interrupts
61.83 ? 20% +79.3% 110.86 ? 33% interrupts.CPU79.PMI:Performance_monitoring_interrupts
67.67 ? 3% +120.6% 149.29 ? 46% interrupts.CPU80.NMI:Non-maskable_interrupts
67.67 ? 3% +120.6% 149.29 ? 46% interrupts.CPU80.PMI:Performance_monitoring_interrupts
67.50 ? 4% +79.3% 121.00 ? 31% interrupts.CPU81.NMI:Non-maskable_interrupts
67.50 ? 4% +79.3% 121.00 ? 31% interrupts.CPU81.PMI:Performance_monitoring_interrupts
62.00 ? 21% +73.3% 107.43 ? 34% interrupts.CPU92.NMI:Non-maskable_interrupts
62.00 ? 21% +73.3% 107.43 ? 34% interrupts.CPU92.PMI:Performance_monitoring_interrupts
61.83 ? 22% +73.0% 107.00 ? 34% interrupts.CPU93.NMI:Non-maskable_interrupts
61.83 ? 22% +73.0% 107.00 ? 34% interrupts.CPU93.PMI:Performance_monitoring_interrupts
62.00 ? 21% +132.5% 144.14 ? 76% interrupts.CPU94.NMI:Non-maskable_interrupts
62.00 ? 21% +132.5% 144.14 ? 76% interrupts.CPU94.PMI:Performance_monitoring_interrupts
6253 ? 12% -50.2% 3114 ? 40% interrupts.CPU98.NMI:Non-maskable_interrupts
6253 ? 12% -50.2% 3114 ? 40% interrupts.CPU98.PMI:Performance_monitoring_interrupts
227499 ? 8% -21.0% 179728 ? 9% interrupts.NMI:Non-maskable_interrupts
227499 ? 8% -21.0% 179728 ? 9% interrupts.PMI:Performance_monitoring_interrupts
1042 ? 27% -68.5% 328.00 ? 86% interrupts.TLB:TLB_shootdowns



will-it-scale.16.processes

7.85e+07 +----------------------------------------------------------------+
| .+..+.+.+.+.+.+ .+.+.+.+.. .+.+.+.+ |
7.8e+07 |.+ + .+.+ +.+ |
7.75e+07 |-+ + .+.+. .+. |
| + +.+ |
7.7e+07 |-+ |
7.65e+07 |-+ |
| |
7.6e+07 |-+ |
7.55e+07 |-+ |
| |
7.5e+07 |-+ O O O O O O |
7.45e+07 |-O O O O O O O O O O O O O O O O O O |
| O O O O |
7.4e+07 +----------------------------------------------------------------+


will-it-scale.per_process_ops

4.9e+06 +----------------------------------------------------------------+
|.+.+..+.+.+ + + +.+.+.+.+.+..+.+.+.+.+.+ |
4.85e+06 |-+ + .. |
| +.+.+.+.+.+ |
| |
4.8e+06 |-+ |
| |
4.75e+06 |-+ |
| |
4.7e+06 |-+ |
| O O O O O O |
| O O O O O O O O O O O O O O O O O O O O |
4.65e+06 |-+ O O |
| O |
4.6e+06 +----------------------------------------------------------------+


will-it-scale.workload

7.85e+07 +----------------------------------------------------------------+
| .+..+.+.+.+.+.+ .+.+.+.+.. .+.+.+.+ |
7.8e+07 |.+ + .+.+ +.+ |
7.75e+07 |-+ + .+.+. .+. |
| + +.+ |
7.7e+07 |-+ |
7.65e+07 |-+ |
| |
7.6e+07 |-+ |
7.55e+07 |-+ |
| |
7.5e+07 |-+ O O O O O O |
7.45e+07 |-O O O O O O O O O O O O O O O O O O |
| O O O O |
7.4e+07 +----------------------------------------------------------------+


[*] bisect-good sample
[O] bisect-bad sample

***************************************************************************************************
lkp-skl-fpga01: 104 threads 2 sockets Skylake with 192G memory
=========================================================================================
compiler/cpufreq_governor/kconfig/mode/nr_task/rootfs/tbox_group/test/testcase/ucode:
gcc-9/performance/x86_64-rhel-8.3/process/50%/debian-10.4-x86_64-20200603.cgz/lkp-skl-fpga01/futex3/will-it-scale/0x2006a0a

commit:
v5.13-rc3
21db66c4ff ("irqflags: Remove the CONFIG_TRACE_IRQFLAGS")

v5.13-rc3 21db66c4ff4e737875727ee7a1a
---------------- ---------------------------
%stddev %change %stddev
\ | \
1.051e+08 -1.2% 1.038e+08 will-it-scale.52.processes
2020588 -1.2% 1995983 will-it-scale.per_process_ops
1.051e+08 -1.2% 1.038e+08 will-it-scale.workload
80.35 ? 4% -48.3 32.04 ? 19% turbostat.PKG_%
0.00 +1.2 1.21 ? 11% perf-profile.calltrace.cycles-pp.exit_to_user_mode_prepare.syscall_exit_to_user_mode.do_syscall_64.entry_SYSCALL_64_after_hwframe.syscall
0.45 ? 12% +0.8 1.22 ? 11% perf-profile.children.cycles-pp.exit_to_user_mode_prepare
0.03 ?100% +0.1 0.09 ? 11% perf-profile.self.cycles-pp.rcu_nocb_flush_deferred_wakeup
0.35 ? 13% +0.7 1.08 ? 11% perf-profile.self.cycles-pp.exit_to_user_mode_prepare
7.508e+09 -1.2% 7.418e+09 perf-stat.i.branch-instructions
1.103e+08 -1.2% 1.089e+08 perf-stat.i.branch-misses
1.047e+08 -1.2% 1.035e+08 perf-stat.i.dTLB-load-misses
1.106e+08 -5.2% 1.048e+08 perf-stat.i.iTLB-load-misses
476.13 +4.4% 497.12 perf-stat.i.instructions-per-iTLB-miss
473.01 +4.6% 494.76 perf-stat.overall.instructions-per-iTLB-miss
7.484e+09 -1.2% 7.394e+09 perf-stat.ps.branch-instructions
1.1e+08 -1.3% 1.086e+08 perf-stat.ps.branch-misses
1.044e+08 -1.2% 1.032e+08 perf-stat.ps.dTLB-load-misses
1.102e+08 -5.2% 1.045e+08 perf-stat.ps.iTLB-load-misses
205.83 ? 27% -38.9% 125.71 ? 50% interrupts.CPU102.RES:Rescheduling_interrupts
579.17 ? 14% +40.0% 810.57 ? 41% interrupts.CPU18.CAL:Function_call_interrupts
250.17 ? 10% -50.4% 124.00 ? 50% interrupts.CPU21.RES:Rescheduling_interrupts
333.00 ? 33% -39.0% 203.29 ? 20% interrupts.CPU36.RES:Rescheduling_interrupts
240.33 ? 28% -46.1% 129.43 ? 65% interrupts.CPU44.RES:Rescheduling_interrupts
918.33 ? 18% -26.8% 672.29 ? 11% interrupts.CPU5.CAL:Function_call_interrupts
222.00 ? 26% -46.8% 118.14 ? 66% interrupts.CPU57.RES:Rescheduling_interrupts
6182 ? 22% -36.6% 3917 ? 43% interrupts.CPU59.NMI:Non-maskable_interrupts
6182 ? 22% -36.6% 3917 ? 43% interrupts.CPU59.PMI:Performance_monitoring_interrupts
168.50 ? 42% -58.3% 70.29 ? 50% interrupts.CPU63.RES:Rescheduling_interrupts
797.17 ? 11% -21.8% 623.57 ? 15% interrupts.CPU73.CAL:Function_call_interrupts
85.00 ? 47% +138.0% 202.29 ? 33% interrupts.CPU73.RES:Rescheduling_interrupts
30941 ? 40% -46.7% 16493 ? 20% softirqs.CPU102.RCU
38860 ? 41% -49.2% 19737 ? 20% softirqs.CPU21.RCU
12439 ? 40% +121.2% 27510 ? 30% softirqs.CPU21.SCHED
35338 ? 46% -44.5% 19600 ? 17% softirqs.CPU33.RCU
31104 ? 38% -40.5% 18512 ? 24% softirqs.CPU35.RCU
34441 ? 39% -41.7% 20065 ? 16% softirqs.CPU36.RCU
29595 ? 34% -40.3% 17662 ? 17% softirqs.CPU39.RCU
31616 ? 22% -53.0% 14858 ? 55% softirqs.CPU5.SCHED
28193 ? 24% -44.1% 15756 ? 50% softirqs.CPU50.SCHED
37243 ? 43% -50.0% 18618 ? 20% softirqs.CPU57.RCU
13945 ? 51% +104.9% 28576 ? 32% softirqs.CPU57.SCHED
28293 ? 34% -46.7% 15075 ? 6% softirqs.CPU63.RCU
33311 ? 16% -47.2% 17572 ? 47% softirqs.CPU73.SCHED
29970 ? 38% -43.6% 16895 ? 20% softirqs.CPU76.RCU
30102 ? 36% -40.2% 17988 ? 11% softirqs.CPU77.RCU
27180 ? 37% -36.0% 17407 ? 16% softirqs.CPU93.RCU





Disclaimer:
Results have been estimated based on internal Intel analysis and are provided
for informational purposes only. Any difference in system hardware or software
design or configuration may affect actual performance.


---
0DAY/LKP+ Test Infrastructure Open Source Technology Center
https://lists.01.org/hyperkitty/list/[email protected] Intel Corporation

Thanks,
Oliver Sang


Attachments:
(No filename) (36.59 kB)
config-5.13.0-rc3-00001-g21db66c4ff4e (176.78 kB)
job-script (8.07 kB)
job.yaml (5.40 kB)
reproduce (346.00 B)
Download all attachments

2021-05-28 05:00:56

by Steven Rostedt

[permalink] [raw]
Subject: Re: [irqflags] 21db66c4ff: will-it-scale.per_process_ops -4.5% regression

On Tue, 25 May 2021 15:03:54 +0800
kernel test robot <[email protected]> wrote:

> FYI, we noticed a -4.5% regression of will-it-scale.per_process_ops due to commit:

As Mark explained, your patch was not a nop. And the 0day bot just
showed you why we didn't do it the way you suggested.

-- Steve