arter97 / exfat-linux

EOL exFAT filesystem module for Linux kernel. Everyone should be using https://github.com/namjaejeon/linux-exfat-oot instead.
Other
262 stars 59 forks source link

Transient page allocation failure on 4.19 #28

Open cdhowie opened 3 years ago

cdhowie commented 3 years ago

uname:

Linux chowie-desktop 4.19.0-10-amd64 #1 SMP Debian 4.19.132-1 (2020-07-24) x86_64 GNU/Linux

free:

              total        used        free      shared  buff/cache   available
Mem:       16356524     7470612     1138208      278212     7747704     8358364
Swap:       8384508     2810380     5574128

Attempting to mount an 8TiB volume resulted in a page allocation failure. I tried a few more times and eventually the mount succeeded.

Here is the kernel log from one of the failed attempts:

[1067668.178473] mount: page allocation failure: order:5, mode:0x60c0c0(GFP_KERNEL|__GFP_COMP|__GFP_ZERO), nodemask=(null)
[1067668.178476] mount cpuset=/ mems_allowed=0
[1067668.178486] CPU: 3 PID: 3256 Comm: mount Tainted: P        W  OE     4.19.0-10-amd64 #1 Debian 4.19.132-1
[1067668.178488] Hardware name: System76, Inc. Wild Dog Pro/Desktop, BIOS F4 03/25/2016
[1067668.178489] Call Trace:
[1067668.178503]  dump_stack+0x66/0x90
[1067668.178510]  warn_alloc.cold.120+0x6c/0xec
[1067668.178516]  __alloc_pages_slowpath+0xc73/0xcb0
[1067668.178521]  ? radix_tree_lookup_slot+0x1e/0x50
[1067668.178526]  ? find_get_entry+0x19/0xf0
[1067668.178533]  ? __find_get_block+0xb4/0x2d0
[1067668.178538]  __alloc_pages_nodemask+0x28b/0x2b0
[1067668.178545]  kmalloc_order+0x14/0x30
[1067668.178550]  kmalloc_order_trace+0x1d/0xa0
[1067668.178562]  exfat_create_upcase_table+0x106/0x390 [exfat]
[1067668.178572]  exfat_fill_super+0x4e3/0x8f0 [exfat]
[1067668.178580]  ? exfat_remount+0x50/0x50 [exfat]
[1067668.178586]  mount_bdev+0x177/0x1b0
[1067668.178592]  mount_fs+0x3e/0x145
[1067668.178598]  vfs_kern_mount.part.36+0x54/0x120
[1067668.178603]  do_mount+0x20e/0xcc0
[1067668.178608]  ? _copy_from_user+0x37/0x60
[1067668.178613]  ? memdup_user+0x4b/0x70
[1067668.178618]  ksys_mount+0xb6/0xd0
[1067668.178623]  __x64_sys_mount+0x21/0x30
[1067668.178629]  do_syscall_64+0x53/0x110
[1067668.178635]  entry_SYSCALL_64_after_hwframe+0x44/0xa9
[1067668.178639] RIP: 0033:0x7fb772b46fea
[1067668.178644] Code: 48 8b 0d a9 0e 0c 00 f7 d8 64 89 01 48 83 c8 ff c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 44 00 00 49 89 ca b8 a5 00 00 00 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 8b 0d 76 0e 0c 00 f7 d8 64 89 01 48
[1067668.178646] RSP: 002b:00007ffde2801d98 EFLAGS: 00000246 ORIG_RAX: 00000000000000a5
[1067668.178650] RAX: ffffffffffffffda RBX: 00005596bc078a40 RCX: 00007fb772b46fea
[1067668.178652] RDX: 00005596bc081c70 RSI: 00005596bc07b960 RDI: 00005596bc078c50
[1067668.178654] RBP: 00007fb772e941c4 R08: 0000000000000000 R09: 00007fb772c090a0
[1067668.178656] R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000
[1067668.178658] R13: 0000000000000000 R14: 00005596bc078c50 R15: 00005596bc081c70
[1067668.178662] warn_alloc_show_mem: 1 callbacks suppressed
[1067668.178663] Mem-Info:
[1067668.178672] active_anon:1102088 inactive_anon:236499 isolated_anon:0
                  active_file:1150883 inactive_file:475014 isolated_file:0
                  unevictable:20902 dirty:26066 writeback:16 unstable:0
                  slab_reclaimable:106038 slab_unreclaimable:141826
                  mapped:143154 shmem:69835 pagetables:25703 bounce:0
                  free:442318 free_pcp:47 free_cma:0
[1067668.178679] Node 0 active_anon:4408352kB inactive_anon:945996kB active_file:4603532kB inactive_file:1900056kB unevictable:83608kB isolated(anon):0kB isolated(file):0kB mapped:572616kB dirty:104264kB writeback:64kB shmem:279340kB shmem_thp: 0kB shmem_pmdmapped: 0kB anon_thp: 200704kB writeback_tmp:0kB unstable:0kB all_unreclaimable? no
[1067668.178681] Node 0 DMA free:15888kB min:64kB low:80kB high:96kB active_anon:0kB inactive_anon:0kB active_file:0kB inactive_file:0kB unevictable:0kB writepending:0kB present:15980kB managed:15896kB mlocked:0kB kernel_stack:0kB pagetables:0kB bounce:0kB free_pcp:0kB local_pcp:0kB free_cma:0kB
[1067668.178688] lowmem_reserve[]: 0 2024 15911 15911 15911
[1067668.178693] Node 0 DMA32 free:411428kB min:8588kB low:10732kB high:12876kB active_anon:645192kB inactive_anon:153448kB active_file:424272kB inactive_file:132572kB unevictable:0kB writepending:10420kB present:2181712kB managed:2116144kB mlocked:0kB kernel_stack:5200kB pagetables:8656kB bounce:0kB free_pcp:168kB local_pcp:0kB free_cma:0kB
[1067668.178701] lowmem_reserve[]: 0 0 13886 13886 13886
[1067668.178704] Node 0 Normal free:1341956kB min:58928kB low:73660kB high:88392kB active_anon:3763160kB inactive_anon:792548kB active_file:4179260kB inactive_file:1767736kB unevictable:83608kB writepending:94004kB present:14508032kB managed:14224484kB mlocked:83608kB kernel_stack:48000kB pagetables:94156kB bounce:0kB free_pcp:20kB local_pcp:0kB free_cma:0kB
[1067668.178712] lowmem_reserve[]: 0 0 0 0 0
[1067668.178716] Node 0 DMA: 0*4kB 0*8kB 1*16kB (U) 0*32kB 2*64kB (U) 1*128kB (U) 1*256kB (U) 0*512kB 1*1024kB (U) 1*2048kB (M) 3*4096kB (M) = 15888kB
[1067668.178730] Node 0 DMA32: 59199*4kB (UME) 15005*8kB (UME) 2568*16kB (UME) 392*32kB (UME) 26*64kB (UME) 0*128kB 0*256kB 0*512kB 0*1024kB 0*2048kB 0*4096kB = 412132kB
[1067668.178743] Node 0 Normal: 200753*4kB (UMEH) 57928*8kB (UMEH) 4661*16kB (UMEH) 28*32kB (UMEH) 7*64kB (H) 2*128kB (H) 0*256kB 0*512kB 0*1024kB 0*2048kB 0*4096kB = 1342612kB
[1067668.178759] Node 0 hugepages_total=0 hugepages_free=0 hugepages_surp=0 hugepages_size=1048576kB
[1067668.178761] Node 0 hugepages_total=0 hugepages_free=0 hugepages_surp=0 hugepages_size=2048kB
[1067668.178763] 1749186 total pagecache pages
[1067668.178767] 73125 pages in swap cache
[1067668.178769] Swap cache stats: add 10028345, delete 9956150, find 5017586/7293913
[1067668.178771] Free swap  = 5573772kB
[1067668.178772] Total swap = 8384508kB
[1067668.178774] 4176431 pages RAM
[1067668.178775] 0 pages HighMem/MovableOnly
[1067668.178776] 87300 pages reserved
[1067668.178778] 0 pages hwpoisoned
[1067668.180775] mount: page allocation failure: order:5, mode:0x60c0c0(GFP_KERNEL|__GFP_COMP|__GFP_ZERO), nodemask=(null)
[1067668.180776] mount cpuset=/ mems_allowed=0
[1067668.180784] CPU: 3 PID: 3256 Comm: mount Tainted: P        W  OE     4.19.0-10-amd64 #1 Debian 4.19.132-1
[1067668.180786] Hardware name: System76, Inc. Wild Dog Pro/Desktop, BIOS F4 03/25/2016
[1067668.180788] Call Trace:
[1067668.180797]  dump_stack+0x66/0x90
[1067668.180803]  warn_alloc.cold.120+0x6c/0xec
[1067668.180809]  __alloc_pages_slowpath+0xc73/0xcb0
[1067668.180814]  ? radix_tree_lookup_slot+0x1e/0x50
[1067668.180818]  ? find_get_entry+0x19/0xf0
[1067668.180825]  ? __find_get_block+0xb4/0x2d0
[1067668.180830]  __alloc_pages_nodemask+0x28b/0x2b0
[1067668.180836]  kmalloc_order+0x14/0x30
[1067668.180841]  kmalloc_order_trace+0x1d/0xa0
[1067668.180851]  exfat_create_upcase_table+0x292/0x390 [exfat]
[1067668.180860]  exfat_fill_super+0x4e3/0x8f0 [exfat]
[1067668.180867]  ? exfat_remount+0x50/0x50 [exfat]
[1067668.180873]  mount_bdev+0x177/0x1b0
[1067668.180879]  mount_fs+0x3e/0x145
[1067668.180885]  vfs_kern_mount.part.36+0x54/0x120
[1067668.180890]  do_mount+0x20e/0xcc0
[1067668.180895]  ? _copy_from_user+0x37/0x60
[1067668.180900]  ? memdup_user+0x4b/0x70
[1067668.180905]  ksys_mount+0xb6/0xd0
[1067668.180910]  __x64_sys_mount+0x21/0x30
[1067668.180916]  do_syscall_64+0x53/0x110
[1067668.180921]  entry_SYSCALL_64_after_hwframe+0x44/0xa9
[1067668.180924] RIP: 0033:0x7fb772b46fea
[1067668.180928] Code: 48 8b 0d a9 0e 0c 00 f7 d8 64 89 01 48 83 c8 ff c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 44 00 00 49 89 ca b8 a5 00 00 00 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 8b 0d 76 0e 0c 00 f7 d8 64 89 01 48
[1067668.180930] RSP: 002b:00007ffde2801d98 EFLAGS: 00000246 ORIG_RAX: 00000000000000a5
[1067668.180933] RAX: ffffffffffffffda RBX: 00005596bc078a40 RCX: 00007fb772b46fea
[1067668.180935] RDX: 00005596bc081c70 RSI: 00005596bc07b960 RDI: 00005596bc078c50
[1067668.180937] RBP: 00007fb772e941c4 R08: 0000000000000000 R09: 00007fb772c090a0
[1067668.180939] R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000
[1067668.180941] R13: 0000000000000000 R14: 00005596bc078c50 R15: 00005596bc081c70
[1067668.180947] exFAT-fs (sdf2): failed to load upcase table
[1067668.180955] exFAT-fs (sdf2): failed to recognize exfat type
mat-c commented 3 years ago

May be fixed with https://github.com/namjaejeon/linux-exfat-oot/commits/exfat-next

tmm1 commented 3 years ago

[1067668.178562] exfat_create_upcase_table+0x106/0x390 [exfat]

specifically this is fixed in https://github.com/namjaejeon/linux-exfat-oot/commit/779f03e9676d7cb54dfcad34570b42db2bb27aea