From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 8E010D0D78F for ; Fri, 11 Oct 2024 13:11:59 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 2183F6B00A8; Fri, 11 Oct 2024 09:11:59 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 1C8656B00A9; Fri, 11 Oct 2024 09:11:59 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 0900B6B00AA; Fri, 11 Oct 2024 09:11:59 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id DE79D6B00A8 for ; Fri, 11 Oct 2024 09:11:58 -0400 (EDT) Received: from smtpin19.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id B351CC1103 for ; Fri, 11 Oct 2024 13:11:53 +0000 (UTC) X-FDA: 82661359074.19.43DF218 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by imf15.hostedemail.com (Postfix) with ESMTP id 64827A002F for ; Fri, 11 Oct 2024 13:11:54 +0000 (UTC) Authentication-Results: imf15.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b="mkfHdAM/"; dmarc=pass (policy=quarantine) header.from=kernel.org; spf=pass (imf15.hostedemail.com: domain of rppt@kernel.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=rppt@kernel.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1728652164; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=2RwrNMaXEVf+fPMtbdKU2In7yXYFW/yAahtRwPVdwSM=; b=ZczSZGrhHDhh/egHSmhqAHBmFgnsjC4pXIsSmfCOfVPw4i36L7UykTP3jjqWL2bZLyqARB asD+D4A4ToQ6vVR3ZVfke1ZvKf06biIq7fQazvlRRlBsKus+/EWNMyYwGQjApP+9cml+3r i0YFgq2qgcFzs5Yl6H6AL3dpDGaH9So= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1728652164; a=rsa-sha256; cv=none; b=XAzJFDNdFvmXZidi6N6hoBtrW92/CuZnSZoB9JTKLt0VhVmlfoUpSRa11upZGw0AJRn5HR d0ApQuS9XjSSpgvq5dsw61VRhvf6Db8ABcC1YsKFshqK7GnRzKtOBiqq5dVuVOyocT/Tu2 TreDCq23kQY8CJOFMrAg7q1hTgwq140= ARC-Authentication-Results: i=1; imf15.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b="mkfHdAM/"; dmarc=pass (policy=quarantine) header.from=kernel.org; spf=pass (imf15.hostedemail.com: domain of rppt@kernel.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=rppt@kernel.org Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by dfw.source.kernel.org (Postfix) with ESMTP id 73BD65C5936; Fri, 11 Oct 2024 13:11:51 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id E6DA1C4CEC3; Fri, 11 Oct 2024 13:11:41 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1728652315; bh=7pS2FYk9N9B4YqopZOxx9CZfs1CwCBBuU1c1xPtkC0Q=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=mkfHdAM/O2j0+o7F0ia+QL7UdbrNu2y1z3BvD4hyPXKMHT9CsznTwaLY3L0oxzPVw N+8eDqbjCJgPfU8NrVndW6fdXieVprlD9s6pHGcpa0RNy5KR+qq82dgacIfFUzWEv4 VCx/HYcga6hc1emJLs+2bsf0ILcO+Biq7Ngq5kC13+7FMUWGH9wyjtkcCbUWxRtpgf 9RIr/YUoD0wfiaQ7mpacJD6dsbCtqv17Q78k1FRMItzPTefkFmMNus9ibPaVyd6p4W 9otfJ1G6NZlOPgdUY9g4dIK2Jg/uNybQK6JdUNzy5QKNZVWZoxDhoUKtOptuhyDM3n YPE5xKDErE/rg== Date: Fri, 11 Oct 2024 16:08:12 +0300 From: Mike Rapoport To: kernel test robot Cc: oe-lkp@lists.linux.dev, lkp@intel.com, Linux Memory Management List , Andrew Morton , Andreas Larsson , Andy Lutomirski , Ard Biesheuvel , Arnd Bergmann , Borislav Petkov , Brian Cain , Catalin Marinas , Christophe Leroy , Christoph Hellwig , Dave Hansen , Dinh Nguyen , Geert Uytterhoeven , Guo Ren , Helge Deller , Huacai Chen , Ingo Molnar , Johannes Berg , John Paul Adrian Glaubitz , Kent Overstreet , "Liam R. Howlett" , Luis Chamberlain , Mark Rutland , Masami Hiramatsu , Matt Turner , Max Filippov , Michael Ellerman , Michal Simek , Oleg Nesterov , Palmer Dabbelt , Peter Zijlstra , Richard Weinberger , Russell King , Song Liu , Stafford Horne , Steven Rostedt , Thomas Bogendoerfer , Thomas Gleixner , Uladzislau Rezki , Vineet Gupta , Will Deacon , linux-kernel@vger.kernel.org Subject: Re: [linux-next:master] [x86/module] 6661cae1aa: WARNING:at_arch/x86/mm/pat/set_memory.c:#__cpa_process_fault Message-ID: References: <202410111408.8fe6f604-lkp@intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <202410111408.8fe6f604-lkp@intel.com> X-Rspamd-Server: rspam07 X-Rspamd-Queue-Id: 64827A002F X-Stat-Signature: r5jk4ogryz8so6xgntzy7b1jsrdb69jp X-Rspam-User: X-HE-Tag: 1728652314-223670 X-HE-Meta: U2FsdGVkX1+/voJ8/M4LHzYzeYG4dGzAiHqt7rkEzi4XEFulAfclwU4VOQ8kdBauw+dFuGFgtgfr9xSRoBXbTVi3OWY4Rf7WYKdU0bBURL3JP5CFvP+/tzBmmiL5cjdLfNnGB0K4RfUQlUdOZfWNbIVomJGKUrnUBNwj5c1vq6lB7UV6bCpv2QyWXcF6YJS6sY+KSU/y06D0ZNu2TqjAGSpLypNAQKOtAu2buggezWEKCL+07gBRiEa32QUYjNA/d1Rb6vfFhEkJLTm6f1PuCNCEf8vYpqy7hQr4vZnDJNfOWpHhWZHoHPI+JaxuZlPTMrcOL0uOLockyQL3dS6oy7QplKOWhG7ZSLolLhKVSqQZMFEflAc8J/EcHYeM734DXtLaIk4QcBTjAyeYxNeCV49SEB04XGxa6rrDjXCBZCAvZcWoLxeXLBjGATSaOLVPW9tJ8U345+XKmxWbDF9CV6ajxjZH1ku6UKNW3CT9gFYeeTk6/GlEkqKBQ9QTHHq4Lb7+sjkCRt59QxHsOycGqDzIo3gLvTW/3qG/M1SRn2VodargQVvL/a4v2grpgPQyN8RyiA83psTXSGztM4LiHdRaUkwvNNJFPBIm6l4toG8kFMwklLyT8pjIuIVHUJ4uqwtfvVBVkEMG3B3O7qIt5kJgdxBCBnUGSzSseSXNkzr+gFclxEx5xTPQQ1ii6bSgJ73JqMkG7s5+v+omn6uLeFIoKC3vAVY43CQCzHEujn1jhXG4l7xnj/8wxnjcrv0WI9KILKgnP5ClJhhVTzaDNizelpvzDbtDuXcbaIIL0TcilM4C6og2jwZn63JQoG940S30ureb7LDz8bjxKz68ORqFoItvACUyoDSzaj9iULmSx7XKhl9mIzNSnJ1SYXybxAidSgaLRjcBNt9B/xztnN1rzJ1buA+HVttqdbv9K6bA9npa5mT7v5g3gJ9TqMLxwsXnp/t/i3TIqxD5mXm jujxXEwJ mEU+++e11rXKE7i3XnLDz4lBlkNYO8k8KsCWK1fPkuMT9DeNhXRZP4iN56XftlpqDhVNhZtWb+Sy51ycAbzBP4LaMMmCBqjPbug2eUZzNxqsPxx53Agk+YcBzyt/Veg/zCLiCKa3p5GvZVEifIB78loWtfNX0U6/nUPodmLJhPbU1K5gEkX1q6dhR2QwpXzfYCbJgTT2ZFygXhvQ43FEdsNx4XNFPXOOY+dMlnqiLYef9b04MF+EFnMIhi0AjO0IwUoBP8eR2sy6PPc0h4W8PuRYdu8d7NcdVL3WppgIUdND/FQf1zmnxtFRzVZrAiDOxYRAzuzKVuZ0G4+mBFEtLQbbdI/6Fd9pyEh/AzzvBykb6OIYIIykB48K+H+33AePmkrvhzbhMGAk5hqcVAX0LHWimFprKMRaZGNpf9LyRVmku3hTYoxXQG4pF0w== X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: On Fri, Oct 11, 2024 at 02:30:50PM +0800, kernel test robot wrote: > > > Hello, > > kernel test robot noticed "WARNING:at_arch/x86/mm/pat/set_memory.c:#__cpa_process_fault" on: > > commit: 6661cae1aa66d826b7ecd7044d0d76c66c015266 ("x86/module: enable ROX caches for module text") > https://git.kernel.org/cgit/linux/kernel/git/next/linux-next.git master > > [test failed on linux-next/master 0cca97bf23640ff68a6e8a74e9b6659fdc27f48c] > > in testcase: boot > > compiler: gcc-12 > test machine: qemu-system-x86_64 -enable-kvm -cpu SandyBridge -smp 2 -m 16G It would have been nice if the report mentioned it was 32-bit kernel. This patch disables ROX caches on 32-bit, it should fix the issue. diff --git a/arch/x86/mm/init.c b/arch/x86/mm/init.c index a0ec99fb9385..8ea2355f701a 100644 --- a/arch/x86/mm/init.c +++ b/arch/x86/mm/init.c @@ -1065,20 +1065,30 @@ static void execmem_fill_trapping_insns(void *ptr, size_t size, bool writeable) struct execmem_info __init *execmem_arch_setup(void) { unsigned long start, offset = 0; + enum execmem_range_flags flags; + pgprot_t pgprot; if (kaslr_enabled()) offset = get_random_u32_inclusive(1, 1024) * PAGE_SIZE; start = MODULES_VADDR + offset; + if (IS_ENABLED(CONFIG_X86_64)) { + pgprot = PAGE_KERNEL_ROX; + flags = EXECMEM_KASAN_SHADOW | EXECMEM_ROX_CACHE; + } else { + pgprot = PAGE_KERNEL; + flags = EXECMEM_KASAN_SHADOW; + } + execmem_info = (struct execmem_info){ .fill_trapping_insns = execmem_fill_trapping_insns, .ranges = { [EXECMEM_MODULE_TEXT] = { - .flags = EXECMEM_KASAN_SHADOW | EXECMEM_ROX_CACHE, + .flags = flags, .start = start, .end = MODULES_END, - .pgprot = PAGE_KERNEL_ROX, + .pgprot = pgprot, .alignment = MODULE_ALIGN, }, [EXECMEM_KPROBES ... EXECMEM_BPF] = { > +--------------------------------------------------------------+------------+------------+ > | | d44c348582 | 6661cae1aa | > +--------------------------------------------------------------+------------+------------+ > | WARNING:at_arch/x86/mm/pat/set_memory.c:#__cpa_process_fault | 0 | 6 | > | EIP:__cpa_process_fault | 0 | 6 | > +--------------------------------------------------------------+------------+------------+ > > > If you fix the issue in a separate patch/commit (i.e. not just a new version of > the same patch/commit), kindly add following tags > | Reported-by: kernel test robot > | Closes: https://lore.kernel.org/oe-lkp/202410111408.8fe6f604-lkp@intel.com > > > [ 8.158938][ T98] ------------[ cut here ]------------ > [ 8.161035][ T98] CPA: called for zero pte. vaddr = 0 cpa->vaddr = 0 > [ 8.163217][ T98] WARNING: CPU: 0 PID: 98 at arch/x86/mm/pat/set_memory.c:1620 __cpa_process_fault (arch/x86/mm/pat/set_memory.c:1620 arch/x86/mm/pat/set_memory.c:1583) > [ 8.166598][ T98] Modules linked in: > [ 8.167997][ T98] CPU: 0 UID: 0 PID: 98 Comm: udevd Not tainted 6.12.0-rc2-00142-g6661cae1aa66 #1 > [ 8.170966][ T98] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.16.2-debian-1.16.2-1 04/01/2014 > [ 8.174383][ T98] EIP: __cpa_process_fault (arch/x86/mm/pat/set_memory.c:1620 arch/x86/mm/pat/set_memory.c:1583) > [ 8.176288][ T98] Code: d8 51 89 f9 e8 39 fb ff ff 83 c4 0c 85 c0 0f 89 95 fe ff ff e9 60 fe ff ff 8b 03 ff 30 ff 75 e8 68 e0 05 ff c1 e8 7c a8 00 00 <0f> 0b c7 45 ec f2 ff ff ff 83 c4 0c e9 fb fc ff ff 8d 76 00 55 89 > All code > ======== > 0: d8 51 89 fcoms -0x77(%rcx) > 3: f9 stc > 4: e8 39 fb ff ff call 0xfffffffffffffb42 > 9: 83 c4 0c add $0xc,%esp > c: 85 c0 test %eax,%eax > e: 0f 89 95 fe ff ff jns 0xfffffffffffffea9 > 14: e9 60 fe ff ff jmp 0xfffffffffffffe79 > 19: 8b 03 mov (%rbx),%eax > 1b: ff 30 push (%rax) > 1d: ff 75 e8 push -0x18(%rbp) > 20: 68 e0 05 ff c1 push $0xffffffffc1ff05e0 > 25: e8 7c a8 00 00 call 0xa8a6 > 2a:* 0f 0b ud2 <-- trapping instruction > 2c: c7 45 ec f2 ff ff ff movl $0xfffffff2,-0x14(%rbp) > 33: 83 c4 0c add $0xc,%esp > 36: e9 fb fc ff ff jmp 0xfffffffffffffd36 > 3b: 8d 76 00 lea 0x0(%rsi),%esi > 3e: 55 push %rbp > 3f: 89 .byte 0x89 > > Code starting with the faulting instruction > =========================================== > 0: 0f 0b ud2 > 2: c7 45 ec f2 ff ff ff movl $0xfffffff2,-0x14(%rbp) > 9: 83 c4 0c add $0xc,%esp > c: e9 fb fc ff ff jmp 0xfffffffffffffd0c > 11: 8d 76 00 lea 0x0(%rsi),%esi > 14: 55 push %rbp > 15: 89 .byte 0x89 > [ 8.182574][ T98] EAX: 00000032 EBX: edb81db0 ECX: 0000021d EDX: 00000000 > [ 8.185016][ T98] ESI: edb81d4a EDI: 00000000 EBP: edb81d30 ESP: edb81cf8 > [ 8.187433][ T98] DS: 007b ES: 007b FS: 0000 GS: 0033 SS: 0068 EFLAGS: 00010202 > [ 8.190182][ T98] CR0: 80050033 CR2: b7c8e548 CR3: 2db88000 CR4: 00040690 > [ 8.192564][ T98] Call Trace: > [ 8.193877][ T98] ? show_regs (arch/x86/kernel/dumpstack.c:479) > [ 8.195475][ T98] ? __cpa_process_fault (arch/x86/mm/pat/set_memory.c:1620 arch/x86/mm/pat/set_memory.c:1583) > [ 8.197352][ T98] ? __warn (kernel/panic.c:748) > [ 8.198883][ T98] ? __cpa_process_fault (arch/x86/mm/pat/set_memory.c:1620 arch/x86/mm/pat/set_memory.c:1583) > [ 8.200760][ T98] ? report_bug (lib/bug.c:201 lib/bug.c:219) > [ 8.202456][ T98] ? __cpa_process_fault (arch/x86/mm/pat/set_memory.c:1620 arch/x86/mm/pat/set_memory.c:1583) > [ 8.204259][ T98] ? exc_overflow (arch/x86/kernel/traps.c:301) > [ 8.205893][ T98] ? handle_bug (arch/x86/kernel/traps.c:260) > [ 8.207451][ T98] ? exc_invalid_op (arch/x86/kernel/traps.c:309 (discriminator 1)) > [ 8.209215][ T98] ? handle_exception (arch/x86/entry/entry_32.S:1047) > [ 8.210933][ T98] ? exc_overflow (arch/x86/kernel/traps.c:301) > [ 8.212585][ T98] ? __cpa_process_fault (arch/x86/mm/pat/set_memory.c:1620 arch/x86/mm/pat/set_memory.c:1583) > [ 8.214504][ T98] ? exc_overflow (arch/x86/kernel/traps.c:301) > [ 8.216170][ T98] ? __cpa_process_fault (arch/x86/mm/pat/set_memory.c:1620 arch/x86/mm/pat/set_memory.c:1583) > [ 8.218077][ T98] ? __change_page_attr_set_clr (arch/x86/mm/pat/set_memory.c:1808) > [ 8.220025][ T98] __change_page_attr (arch/x86/mm/pat/set_memory.c:1644) > [ 8.221883][ T98] __change_page_attr_set_clr (arch/x86/mm/pat/set_memory.c:1808) > [ 8.223837][ T98] ? trace_hardirqs_on (kernel/trace/trace_preemptirq.c:63) > [ 8.225669][ T98] ? _raw_spin_unlock_irqrestore (arch/x86/include/asm/irqflags.h:42 arch/x86/include/asm/irqflags.h:97 arch/x86/include/asm/irqflags.h:155 include/linux/spinlock_api_smp.h:151 kernel/locking/spinlock.c:194) > [ 8.227684][ T98] ? page_address (mm/highmem.c:778) > [ 8.229415][ T98] set_direct_map_valid_noflush (arch/x86/mm/pat/set_memory.c:2453) > [ 8.231211][ T98] execmem_set_direct_map_valid (mm/execmem.c:53) > [ 8.233327][ T98] execmem_alloc (mm/execmem.c:263 mm/execmem.c:291 mm/execmem.c:335 mm/execmem.c:357) > [ 8.234958][ T98] move_module (kernel/module/main.c:1220 kernel/module/main.c:2291) > [ 8.236569][ T98] layout_and_allocate+0xe7/0x160 > [ 8.238634][ T98] load_module (kernel/module/main.c:2955) > [ 8.240229][ T98] init_module_from_file (kernel/module/main.c:3262) > [ 8.242074][ T98] idempotent_init_module (kernel/module/main.c:3196 kernel/module/main.c:3274) > [ 8.243946][ T98] __ia32_sys_finit_module (include/linux/file.h:68 kernel/module/main.c:3301 kernel/module/main.c:3283 kernel/module/main.c:3283) > [ 8.245807][ T98] ia32_sys_call (arch/x86/entry/syscall_32.c:44) > [ 8.247342][ T98] do_int80_syscall_32 (arch/x86/entry/common.c:165 arch/x86/entry/common.c:339) > [ 8.249008][ T98] entry_INT80_32 (arch/x86/entry/entry_32.S:944) > [ 8.250662][ T98] EIP: 0xb7dc0222 > [ 8.252022][ T98] Code: 06 89 8a f0 02 00 00 c3 55 57 56 53 8b 6c 24 2c 8b 7c 24 28 8b 74 24 24 8b 54 24 20 8b 4c 24 1c 8b 5c 24 18 8b 44 24 14 cd 80 <5b> 5e 5f 5d 3d 01 f0 ff ff 0f 83 8f b5 f3 ff c3 66 90 66 90 66 90 > All code > ======== > 0: 06 (bad) > 1: 89 8a f0 02 00 00 mov %ecx,0x2f0(%rdx) > 7: c3 ret > 8: 55 push %rbp > 9: 57 push %rdi > a: 56 push %rsi > b: 53 push %rbx > c: 8b 6c 24 2c mov 0x2c(%rsp),%ebp > 10: 8b 7c 24 28 mov 0x28(%rsp),%edi > 14: 8b 74 24 24 mov 0x24(%rsp),%esi > 18: 8b 54 24 20 mov 0x20(%rsp),%edx > 1c: 8b 4c 24 1c mov 0x1c(%rsp),%ecx > 20: 8b 5c 24 18 mov 0x18(%rsp),%ebx > 24: 8b 44 24 14 mov 0x14(%rsp),%eax > 28: cd 80 int $0x80 > 2a:* 5b pop %rbx <-- trapping instruction > 2b: 5e pop %rsi > 2c: 5f pop %rdi > 2d: 5d pop %rbp > 2e: 3d 01 f0 ff ff cmp $0xfffff001,%eax > 33: 0f 83 8f b5 f3 ff jae 0xfffffffffff3b5c8 > 39: c3 ret > 3a: 66 90 xchg %ax,%ax > 3c: 66 90 xchg %ax,%ax > 3e: 66 90 xchg %ax,%ax > > Code starting with the faulting instruction > =========================================== > 0: 5b pop %rbx > 1: 5e pop %rsi > 2: 5f pop %rdi > 3: 5d pop %rbp > 4: 3d 01 f0 ff ff cmp $0xfffff001,%eax > 9: 0f 83 8f b5 f3 ff jae 0xfffffffffff3b59e > f: c3 ret > 10: 66 90 xchg %ax,%ax > 12: 66 90 xchg %ax,%ax > 14: 66 90 xchg %ax,%ax > > > The kernel config and materials to reproduce are available at: > https://download.01.org/0day-ci/archive/20241011/202410111408.8fe6f604-lkp@intel.com > > > > -- > 0-DAY CI Kernel Test Service > https://github.com/intel/lkp-tests/wiki > -- Sincerely yours, Mike.