Re: reproducable panic eviction work queue
From: Eric Dumazet <hidden>
Date: 2015-07-18 08:56:40
On Fri, 2015-07-17 at 21:18 +0000, Johan Schuijt wrote:
Hey guys, We’re currently running into a reproducible panic in the eviction work queue code when we pin al our eth* IRQ to different CPU cores (in order to scale our networking performance for our virtual servers). This only occurs in kernels >= 3.17 and is a result of the following change: https://git.kernel.org/cgit/linux/kernel/git/stable/linux-stable.git/commit/?h=linux-3.18.y&id=b13d3cbfb8e8a8f53930af67d1ebf05149f32c24 The race/panic we see seems to be the same as, or similar to: https://git.kernel.org/cgit/linux/kernel/git/stable/linux-stable.git/commit/?h=linux-3.18.y&id=65ba1f1ec0eff1c25933468e1d238201c0c2cb29 We can confirm that this is directly exposed by the IRQ pinning since disabling this stops us from being able to reproduce this case :) How te reproduce: in our test-setup we have 4 machines generating UDP packets which are send to the vulnerable host. These all have a MTU of 100 (for test purposes) and send UDP packets of a size of 256 bytes. Within half an hour you will see the following panic: crash> bt PID: 56 TASK: ffff885f3d9fc210 CPU: 9 COMMAND: "kworker/9:0" #0 [ffff885f3da03b60] machine_kexec at ffffffff8104a1f7 #1 [ffff885f3da03bb0] crash_kexec at ffffffff810db187 #2 [ffff885f3da03c80] oops_end at ffffffff81015140 #3 [ffff885f3da03ca0] general_protection at ffffffff814f6c88 [exception RIP: inet_evict_bucket+281] RIP: ffffffff81480699 RSP: ffff885f3da03d58 RFLAGS: 00010292 RAX: ffff885f3da03d08 RBX: dead0000001000a8 RCX: ffff885f3da03d08 RDX: 0000000000000006 RSI: ffff885f3da03ce8 RDI: dead0000001000a8 RBP: 0000000000000002 R8: 0000000000000286 R9: ffff88302f401640 R10: 0000000080000000 R11: ffff88602ec0c138 R12:
Check commits 65ba1f1ec0eff1c25933468e1d238201c0c2cb29 & d70127e8a942364de8dd140fe73893efda363293 Also please send your mails in text format, not html, and CC netdev ( I did here)