Re: [PATCH -mm] mm, swap: Fix bad swap file entry warning

From: Dexuan-Linux Cui
Date: Fri May 31 2019 - 14:31:15 EST


On Fri, May 31, 2019 at 10:00 AM Mike Kravetz <mike.kravetz@xxxxxxxxxx> wrote:
>
> On 5/30/19 7:41 PM, Huang, Ying wrote:
> > From: Huang Ying <ying.huang@xxxxxxxxx>
> >
> > Mike reported the following warning messages
> >
> > get_swap_device: Bad swap file entry 1400000000000001
> >
> > This is produced by
> >
> > - total_swapcache_pages()
> > - get_swap_device()
> >
> > Where get_swap_device() is used to check whether the swap device is
> > valid and prevent it from being swapoff if so. But get_swap_device()
> > may produce warning message as above for some invalid swap devices.
> > This is fixed via calling swp_swap_info() before get_swap_device() to
> > filter out the swap devices that may cause warning messages.
> >
> > Fixes: 6a946753dbe6 ("mm/swap_state.c: simplify total_swapcache_pages() with get_swap_device()")
> > Signed-off-by: "Huang, Ying" <ying.huang@xxxxxxxxx>
>
> Thank you, this eliminates the messages for me:
>
> Tested-by: Mike Kravetz <mike.kravetz@xxxxxxxxxx>
>
> --
> Mike Kravetz

Hi,
Did you know about the panic reported here:
https://marc.info/?t=155930773000003&r=1&w=2

"Kernel panic - not syncing: stack-protector: Kernel stack is
corrupted in: write_irq_affinity.isra"

This panic is reported on PowerPC and x86.

In the case of x86, we see a lot of "get_swap_device: Bad swap file entry"
errors before the panic:

...
[ 24.404693] get_swap_device: Bad swap file entry 5800000000000001
[ 24.408702] get_swap_device: Bad swap file entry 5c00000000000001
[ 24.412510] get_swap_device: Bad swap file entry 6000000000000001
[ 24.416519] get_swap_device: Bad swap file entry 6400000000000001
[ 24.420217] get_swap_device: Bad swap file entry 6800000000000001
[ 24.423921] get_swap_device: Bad swap file entry 6c00000000000001
[ 24.427685] get_swap_device: Bad swap file entry 7000000000000001
[ 24.760678] Kernel panic - not syncing: stack-protector: Kernel
stack is corrupted in: write_irq_affinity.isra.7+0xe5/0xf0
[ 24.760975] CPU: 25 PID: 1773 Comm: irqbalance Not tainted
5.2.0-rc2-2fefea438dac #1
[ 24.760975] Hardware name: Microsoft Corporation Virtual
Machine/Virtual Machine, BIOS 090007 06/02/2017
[ 24.760975] Call Trace:
[ 24.760975] dump_stack+0x46/0x5b
[ 24.760975] panic+0xf8/0x2d2
[ 24.760975] ? write_irq_affinity.isra.7+0xe5/0xf0
[ 24.760975] __stack_chk_fail+0x15/0x20
[ 24.760975] write_irq_affinity.isra.7+0xe5/0xf0
[ 24.760975] proc_reg_write+0x40/0x60
[ 24.760975] vfs_write+0xb3/0x1a0
[ 24.760975] ? _cond_resched+0x16/0x40
[ 24.760975] ksys_write+0x5c/0xe0
[ 24.760975] do_syscall_64+0x4f/0x120
[ 24.760975] entry_SYSCALL_64_after_hwframe+0x44/0xa9
[ 24.760975] RIP: 0033:0x7f93bcdde187
[ 24.760975] Code: c3 66 90 41 54 55 49 89 d4 53 48 89 f5 89 fb 48
83 ec 10 e8 6b 05 02 00 4c 89 e2 41 89 c0 48 89 ee 89 df b8 01 00 00
00 0f 05 <48> 3d 00 f0 ff ff 77 35 44 89 c7 48 89 44 24 08 e8 a4 05 02
00 48
[ 24.760975] RSP: 002b:00007ffc4600d900 EFLAGS: 00000293 ORIG_RAX:
0000000000000001
[ 24.760975] RAX: ffffffffffffffda RBX: 0000000000000006 RCX: 00007f93bcdde187
[ 24.760975] RDX: 0000000000000008 RSI: 00005595ad515540 RDI: 0000000000000006
[ 24.760975] RBP: 00005595ad515540 R08: 0000000000000000 R09: 00005595ab381820
[ 24.760975] R10: 0000000000000008 R11: 0000000000000293 R12: 0000000000000008
[ 24.760975] R13: 0000000000000008 R14: 00007f93bd0b62a0 R15: 00007f93bd0b5760
[ 24.760975] Kernel Offset: 0x3a000000 from 0xffffffff81000000
(relocation range: 0xffffffff80000000-0xffffffffbfffffff)
[ 24.760975] ---[ end Kernel panic - not syncing: stack-protector:
Kernel stack is corrupted in: write_irq_affinity.isra.7+0xe5/0xf0 ]---

Thanks,
-- Dexuan