On Thu, 2 Apr 2020 at 19:08, Kirill A. Shutemov kirill@shutemov.name wrote:
On Thu, Apr 02, 2020 at 04:49:02PM +0530, Naresh Kamboju wrote:
While running LTP mm thp01 test case on i386 kernel running on x86_64 device the following kernel warning was noticed multiple times.
Interesting. I suspect it's related to 2-level page tables in this configuration. But I cannot immediately see how.
Could you test if enabling HIGHMEM64 fixes the issue?
CONFIG_HIGHMEM64G=y
Below is patch that prints some additional info:
Applied your patch and reproduced the problem, The boot log show this warning,
[ 0.261879] ************************************************************ [ 0.261880] ** WARNING! WARNING! WARNING! WARNING! WARNING! WARNING! ** [ 0.261881] ** ** [ 0.261881] ** You are using 32-bit PTI on a 64-bit PCID-capable CPU. ** [ 0.261882] ** Your performance will increase dramatically if you ** [ 0.261882] ** switch to a 64-bit kernel! ** [ 0.261883] ** ** [ 0.261884] ** WARNING! WARNING! WARNING! WARNING! WARNING! WARNING! ** [ 0.261884] ************************************************************ ...
Reproducing steps: ------------------------ cd /opt/ltp ./runltp -f mm
[ 734.485672] ------------[ cut here ]------------ [ 734.490306] WARNING: CPU: 3 PID: 32321 at mm/mremap.c:212 move_page_tables+0x7c3/0x830 [ 734.498212] Modules linked in: x86_pkg_temp_thermal [ 734.503084] CPU: 3 PID: 32321 Comm: true Tainted: G W 5.6.2-rc1+ #14 [ 734.510729] Hardware name: Supermicro SYS-5019S-ML/X11SSH-F, BIOS 2.2 05/23/2018 [ 734.518110] EIP: move_page_tables+0x7c3/0x830 [ 734.522463] Code: 0c eb a7 8d 45 d8 83 4d e8 01 e8 c8 e6 01 00 e9 be f8 ff ff 8d 45 d8 31 d2 e8 59 e8 01 00 e9 a5 fc ff ff 31 db e9 81 fc ff ff <0f> 0b 8b 45 b8 e8 43 e0 fe ff ff 75 b0 ff 75 08 ff 75 cc 68 e4 50 [ 734.541200] EAX: eb5f1fe8 EBX: 00400000 ECX: 2b5f1001 EDX: 2b5f1000 [ 734.547456] ESI: ea5d6010 EDI: eb5f1ff0 EBP: da381e14 ESP: da381d84 [ 734.553714] DS: 007b ES: 007b FS: 00d8 GS: 00e0 SS: 0068 EFLAGS: 00010202 [ 734.560492] CR0: 80050033 CR2: b7d11f50 CR3: 2a5d6000 CR4: 003406f0 [ 734.566748] DR0: 00000000 DR1: 00000000 DR2: 00000000 DR3: 00000000 [ 734.573006] DR6: fffe0ff0 DR7: 00000400 [ 734.576835] Call Trace: [ 734.579282] setup_arg_pages+0x22c/0x350 [ 734.583207] ? strlcpy+0x33/0x50 [ 734.586459] load_elf_binary+0x352/0x1010 [ 734.590468] ? selinux_inode_permission+0xe5/0x1f0 [ 734.595254] search_binary_handler+0x77/0x1a0 [ 734.599614] __do_execve_file+0x5aa/0x710 [ 734.603615] sys_execve+0x21/0x30 [ 734.606926] do_fast_syscall_32+0x75/0x260 [ 734.611019] entry_SYSENTER_32+0xa5/0xf8 [ 734.614942] EIP: 0xb7ef6c11 [ 734.617735] Code: Bad RIP value. [ 734.620956] EAX: ffffffda EBX: bfb8dcb0 ECX: 08069420 EDX: bfb8df14 [ 734.627238] ESI: 080599d4 EDI: bfb8dcb9 EBP: bfb8dd58 ESP: bfb8dc88 [ 734.633499] DS: 007b ES: 007b FS: 0000 GS: 0033 SS: 007b EFLAGS: 00000296 [ 734.640276] ---[ end trace e625d4d55b8380f3 ]--- [ 734.644934] vma dbc4c180 start bf801000 end c0000000 [ 734.644934] next 00000000 prev 00000000 mm d0d75d40 [ 734.644934] prot 25 anon_vma d0dfddc8 vm_ops 00000000 [ 734.644934] pgoff bfa01 file 00000000 private_data 00000000 [ 734.644934] flags: 0x118173(read|write|mayread|maywrite|mayexec|growsdown|seqread|randread|account) [ 734.674346] old_addr: 0xbfc00000, new_addr: 0xbfa00000, old_end: 0xc0000000 [ 734.681322] old_pmd: 0x77923067 [ 734.681322] new_pmd: 0x7796d067 [ 734.684510] ------------[ cut here ]------------ [ 734.692295] WARNING: CPU: 2 PID: 32321 at mm/mremap.c:212 move_page_tables+0x7c3/0x830 [ 734.700241] Modules linked in: x86_pkg_temp_thermal [ 734.705128] CPU: 2 PID: 32321 Comm: true Tainted: G W 5.6.2-rc1+ #14 [ 734.712770] Hardware name: Supermicro SYS-5019S-ML/X11SSH-F, BIOS 2.2 05/23/2018 [ 734.720156] EIP: move_page_tables+0x7c3/0x830 [ 734.724506] Code: 0c eb a7 8d 45 d8 83 4d e8 01 e8 c8 e6 01 00 e9 be f8 ff ff 8d 45 d8 31 d2 e8 59 e8 01 00 e9 a5 fc ff ff 31 db e9 81 fc ff ff <0f> 0b 8b 45 b8 e8 43 e0 fe ff ff 75 b0 ff 75 08 ff 75 cc 68 e4 50 [ 734.743256] EAX: eb5f1ff0 EBX: 00200000 ECX: 2b5f1001 EDX: 2b5f1000 [ 734.749517] ESI: ea5d6010 EDI: eb5f1ff8 EBP: da381e14 ESP: da381d84 [ 734.755776] DS: 007b ES: 007b FS: 00d8 GS: 00e0 SS: 0068 EFLAGS: 00010202 [ 734.762553] CR0: 80050033 CR2: b7f1f4e0 CR3: 2a5d6000 CR4: 003406f0 [ 734.768808] DR0: 00000000 DR1: 00000000 DR2: 00000000 DR3: 00000000 [ 734.775067] DR6: fffe0ff0 DR7: 00000400 [ 734.778898] Call Trace: [ 734.781344] setup_arg_pages+0x22c/0x350 [ 734.785269] ? strlcpy+0x33/0x50 [ 734.788499] load_elf_binary+0x352/0x1010 [ 734.792503] ? selinux_inode_permission+0xe5/0x1f0 [ 734.797287] search_binary_handler+0x77/0x1a0 [ 734.801639] __do_execve_file+0x5aa/0x710 [ 734.805642] sys_execve+0x21/0x30 [ 734.808953] do_fast_syscall_32+0x75/0x260 [ 734.813045] entry_SYSENTER_32+0xa5/0xf8 [ 734.816959] EIP: 0xb7ef6c11 [ 734.819752] Code: Bad RIP value. [ 734.822976] EAX: ffffffda EBX: bfb8dcb0 ECX: 08069420 EDX: bfb8df14 [ 734.829261] ESI: 080599d4 EDI: bfb8dcb9 EBP: bfb8dd58 ESP: bfb8dc88 [ 734.835525] DS: 007b ES: 007b FS: 0000 GS: 0033 SS: 007b EFLAGS: 00000296 [ 734.842302] ---[ end trace e625d4d55b8380f4 ]--- [ 734.846940] vma dbc4c180 start bf801000 end c0000000 [ 734.846940] next 00000000 prev 00000000 mm d0d75d40 [ 734.846940] prot 25 anon_vma d0dfddc8 vm_ops 00000000 [ 734.846940] pgoff bfa01 file 00000000 private_data 00000000 [ 734.846940] flags: 0x118173(read|write|mayread|maywrite|mayexec|growsdown|seqread|randread|account) [ 734.876355] old_addr: 0xbfe00000, new_addr: 0xbfc00000, old_end: 0xc0000000 [ 734.883316] old_pmd: 0x77a08067
Full test log, https://lkft.validation.linaro.org/scheduler/job/1334357#L478
- Naresh