[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20241113095550.GBZzR3pg-RhJKPDazS@fat_crate.local>
Date: Wed, 13 Nov 2024 10:55:50 +0100
From: Borislav Petkov <bp@...en8.de>
To: Rik van Riel <riel@...riel.com>
Cc: linux-kernel@...r.kernel.org, dave.hansen@...ux.intel.com,
luto@...nel.org, peterz@...radead.org, tglx@...utronix.de,
mingo@...hat.com, x86@...nel.org, kernel-team@...a.com,
hpa@...or.com
Subject: Re: [PATCh 0/3] x86,tlb: context switch optimizations
On Fri, Nov 08, 2024 at 07:27:47PM -0500, Rik van Riel wrote:
> While profiling switch_mm_irqs_off with several workloads,
> it appears there are two hot spots that probably don't need
> to be there.
One of those three is causing the below here, zapping them from tip.
[ 3.050931] smpboot: x86: Booting SMP configuration:
[ 3.054476] .... node #0, CPUs: #1 #2 #3 #4 #5 #6 #7 #8 #9 #10 #11 #12 #13 #14 #15 #16 #17 #18 #19 #20
[ 3.166533] Callback from call_rcu_tasks() invoked.
[ 3.178695] #21 #22 #23 #24 #25 #26 #27 #28 #29 #30 #31
[ 3.186469] ------------[ cut here ]------------
[ 3.186469] WARNING: CPU: 16 PID: 97 at kernel/smp.c:807 smp_call_function_many_cond+0x188/0x720
[ 3.186469] Modules linked in:
[ 3.186469] CPU: 16 UID: 0 PID: 97 Comm: cpuhp/16 Not tainted 6.12.0-rc7+ #1
[ 3.186469] Hardware name: Supermicro Super Server/H12SSL-i, BIOS 2.5 09/08/2022
[ 3.186469] RIP: 0010:smp_call_function_many_cond+0x188/0x720
[ 3.186469] Code: 96 54 91 01 85 d2 0f 84 f7 fe ff ff 65 8b 05 37 8c e3 7e 85 c0 0f 85 e8 fe ff ff 65 8b 05 0c 89 e3 7e 85 c0 0f 85 d9 fe ff ff <0f> 0b e9 d2 fe ff ff 65 f7 05 4e c5 e4 7e ff ff ff 7f 0f 85 a6 fe
[ 3.186469] RSP: 0018:ffffc90000dbfbe8 EFLAGS: 00010046
[ 3.186469] RAX: 0000000000000000 RBX: ffffffff8109eeb0 RCX: 0000000000000000
[ 3.186469] RDX: 0000000000000001 RSI: 0000000000000001 RDI: ffffffff824908dd
[ 3.186469] RBP: ffff889003235380 R08: ffffffff8109eeb0 R09: 0000000000000006
[ 3.186469] R10: 0000000000000013 R11: 0000000000000005 R12: 0000000000000010
[ 3.186469] R13: ffff88810006a480 R14: ffff889003235380 R15: 0000000000000010
[ 3.186469] FS: 0000000000000000(0000) GS:ffff889003200000(0000) knlGS:0000000000000000
[ 3.186469] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[ 3.186469] CR2: 0000000000000000 CR3: 0000000002a3a001 CR4: 0000000000770ef0
[ 3.186469] PKRU: 55555554
[ 3.186469] Call Trace:
[ 3.186469] <TASK>
[ 3.186469] ? __warn+0xa1/0x1c0
[ 3.186469] ? smp_call_function_many_cond+0x188/0x720
[ 3.186469] ? report_bug+0x1b5/0x1e0
[ 3.186469] ? handle_bug+0x58/0x90
[ 3.186469] ? exc_invalid_op+0x17/0x70
[ 3.186469] ? asm_exc_invalid_op+0x16/0x20
[ 3.186469] ? __pfx_tlb_is_not_lazy+0x10/0x10
[ 3.186469] ? __pfx_tlb_is_not_lazy+0x10/0x10
[ 3.186469] ? smp_call_function_many_cond+0x188/0x720
[ 3.186469] ? smp_call_function_many_cond+0x2a/0x720
[ 3.186469] ? __pte_offset_map_lock+0xa4/0x190
[ 3.186469] ? __pfx_flush_tlb_func+0x10/0x10
[ 3.186469] ? srso_alias_return_thunk+0x5/0xfbef5
[ 3.186469] ? lock_acquire+0x11a/0x350
[ 3.186469] ? __pfx_flush_tlb_func+0x10/0x10
[ 3.186469] ? __pfx_tlb_is_not_lazy+0x10/0x10
[ 3.186469] on_each_cpu_cond_mask+0x50/0x90
[ 3.186469] flush_tlb_mm_range+0x1a8/0x1f0
[ 3.186469] ? cpu_bugs_smt_update+0x14/0x1f0
[ 3.186469] __text_poke+0x366/0x5d0
[ 3.186469] ? __pfx_text_poke_memcpy+0x10/0x10
[ 3.186469] ? cpu_bugs_smt_update+0x14/0x1f0
[ 3.186469] text_poke_bp_batch+0xa1/0x3d0
[ 3.186469] ? mptcp_pm_get_add_addr_signal_max+0x10/0x30
[ 3.186469] ? arch_jump_label_transform_queue+0x55/0x80
[ 3.186469] ? __pfx_sched_cpu_activate+0x10/0x10
[ 3.186469] text_poke_finish+0x1b/0x30
[ 3.186469] arch_jump_label_transform_apply+0x18/0x30
[ 3.186469] static_key_slow_inc_cpuslocked+0x55/0xa0
[ 3.186469] ? srso_alias_return_thunk+0x5/0xfbef5
[ 3.186469] sched_cpu_activate+0x45/0x190
[ 3.186469] ? __pfx_sched_cpu_activate+0x10/0x10
[ 3.186469] cpuhp_invoke_callback+0x159/0x6b0
[ 3.186469] ? cpuhp_thread_fun+0x81/0x290
[ 3.186469] cpuhp_thread_fun+0x203/0x290
[ 3.186469] ? cpuhp_thread_fun+0x81/0x290
[ 3.186469] ? smpboot_thread_fn+0x2b/0x260
[ 3.186469] smpboot_thread_fn+0x1ae/0x260
[ 3.186469] ? __pfx_smpboot_thread_fn+0x10/0x10
[ 3.186469] kthread+0xee/0x120
[ 3.186469] ? __pfx_kthread+0x10/0x10
[ 3.186469] ret_from_fork+0x4c/0x60
[ 3.186469] ? __pfx_kthread+0x10/0x10
[ 3.186469] ret_from_fork_asm+0x1a/0x30
[ 3.186469] </TASK>
[ 3.186469] irq event stamp: 122
[ 3.186469] hardirqs last enabled at (121): [<ffffffff81106ff7>] balance_push_set+0xe7/0x110
[ 3.186469] hardirqs last disabled at (122): [<ffffffff81048129>] __text_poke+0x489/0x5d0
[ 3.186469] softirqs last enabled at (0): [<ffffffff810b1ae5>] copy_process+0x9f5/0x2a70
[ 3.186469] softirqs last disabled at (0): [<0000000000000000>] 0x0
[ 3.186469] ---[ end trace 0000000000000000 ]---
--
Regards/Gruss,
Boris.
https://people.kernel.org/tglx/notes-about-netiquette
Powered by blists - more mailing lists