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 56B59C7EE31 for ; Fri, 27 Jun 2025 10:32:01 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id ECCCF6B00C4; Fri, 27 Jun 2025 06:32:00 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id E7E896B00C5; Fri, 27 Jun 2025 06:32:00 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id D451F6B00D2; Fri, 27 Jun 2025 06:32:00 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id C0E936B00C4 for ; Fri, 27 Jun 2025 06:32:00 -0400 (EDT) Received: from smtpin07.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id 9376080660 for ; Fri, 27 Jun 2025 10:32:00 +0000 (UTC) X-FDA: 83600815200.07.AAD5796 Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.17]) by imf12.hostedemail.com (Postfix) with ESMTP id 4741940002 for ; Fri, 27 Jun 2025 10:31:58 +0000 (UTC) Authentication-Results: imf12.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=XBn6+XQ0; spf=none (imf12.hostedemail.com: domain of kirill.shutemov@linux.intel.com has no SPF policy when checking 192.198.163.17) smtp.mailfrom=kirill.shutemov@linux.intel.com; dmarc=pass (policy=none) header.from=intel.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1751020318; 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=WVffrYqe16xIa6pTeUH1s1Q27HNyBiAcRhZK7cEGDvg=; b=cI2e6hnrVzjdSnfUCLtmf35aSXKdfLqwwUZzRJiDxFwgGkfL/1bRB15pR5LVOPoZ2pYsh2 T6B41wxxh2USvzNxqggN3CAzTalNPu7/JsgqdxiDmaq2spMKG0TPriiCcq+Nxb3/nKg9bm P1NcSmMXpTFZgJk8WOccfEFDr1wrpOU= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1751020318; a=rsa-sha256; cv=none; b=sNHzTuNlvoqzQ3JQ31FGi3+F2oCgGm+VDZUCIP6WSyKtqHq09GcC09U85PeoxFJbk1HdFi NE/Uj/FFcZlb8VvH7+bmObQyzw4vZM6h2GeikhNPE/tAQuQZKFOruIbg9KY/z5uMjwHhi5 A27c9eF5S2eMPLCi/YKGdHt9cTKSEg4= ARC-Authentication-Results: i=1; imf12.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=XBn6+XQ0; spf=none (imf12.hostedemail.com: domain of kirill.shutemov@linux.intel.com has no SPF policy when checking 192.198.163.17) smtp.mailfrom=kirill.shutemov@linux.intel.com; dmarc=pass (policy=none) header.from=intel.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1751020318; x=1782556318; h=date:from:to:cc:subject:message-id:references: mime-version:in-reply-to; bh=W2Bg30qV1ZfFbZr7Wq/g5PCtFv368PERSSRJrjS6UTk=; b=XBn6+XQ0we69PWQLYggoBPGIO1Ag0H3WPj0ge3oMoSb0lzJxI1iHgrvj 4K4Xt7dkENbAanSJNIwIFJolGqk3u6J7SDchxy51+G62l0S6YYveigFO5 itOXZGlpJz5jYAg1QaQBdEKWNeZ5tj+Pgsp3Z/RTKwpa0/CNThAHLnJEG OuboCkRArHZkeX1NlCxP2weoVmV2dCZPnMKDSUfnxZ685U+EgB3IrQ7x4 5GDn6ZlLf25LynS40IjRX+J2eVHwDR1i8PVNza6vsj/w0EM47gAJWu4lo fFIZjpLSvqHjxBk73wr/tKTd0cMYxMFYJOIVkCXHEO+zUi5muvGAo32eN A==; X-CSE-ConnectionGUID: s1Tj13CIRN64J9mlUyrDIA== X-CSE-MsgGUID: T+K+kR4TSZmvZ8Ye7A42FQ== X-IronPort-AV: E=McAfee;i="6800,10657,11476"; a="53273450" X-IronPort-AV: E=Sophos;i="6.16,270,1744095600"; d="scan'208";a="53273450" Received: from fmviesa003.fm.intel.com ([10.60.135.143]) by fmvoesa111.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 27 Jun 2025 03:31:57 -0700 X-CSE-ConnectionGUID: mSOf9phKQ8mXRoDpmTh3ng== X-CSE-MsgGUID: j0xk4bnTShW880YXbbD4CA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.16,270,1744095600"; d="scan'208";a="156817812" Received: from black.fi.intel.com ([10.237.72.28]) by fmviesa003.fm.intel.com with ESMTP; 27 Jun 2025 03:31:46 -0700 Received: by black.fi.intel.com (Postfix, from userid 1000) id A0FEA6A; Fri, 27 Jun 2025 13:31:44 +0300 (EEST) Date: Fri, 27 Jun 2025 13:31:44 +0300 From: "Kirill A. Shutemov" To: Xin Li Cc: Andy Lutomirski , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Dave Hansen , x86@kernel.org, "H. Peter Anvin" , Peter Zijlstra , Ard Biesheuvel , "Paul E. McKenney" , Josh Poimboeuf , Xiongwei Song , Xin Li , "Mike Rapoport (IBM)" , Brijesh Singh , Michael Roth , Tony Luck , Alexey Kardashevskiy , Alexander Shishkin , Jonathan Corbet , Sohil Mehta , Ingo Molnar , Pawan Gupta , Daniel Sneddon , Kai Huang , Sandipan Das , Breno Leitao , Rick Edgecombe , Alexei Starovoitov , Hou Tao , Juergen Gross , Vegard Nossum , Kees Cook , Eric Biggers , Jason Gunthorpe , "Masami Hiramatsu (Google)" , Andrew Morton , Luis Chamberlain , Yuntao Wang , Rasmus Villemoes , Christophe Leroy , Tejun Heo , Changbin Du , Huang Shijie , Geert Uytterhoeven , Namhyung Kim , Arnaldo Carvalho de Melo , linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-efi@vger.kernel.org, linux-mm@kvack.org Subject: Re: [PATCHv7 13/16] x86/traps: Handle LASS thrown #SS Message-ID: References: <20250625125112.3943745-1-kirill.shutemov@linux.intel.com> <20250625125112.3943745-15-kirill.shutemov@linux.intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-Rspam-User: X-Stat-Signature: 49bbikh9r3gg8r8ffeg5inz8e4npnm4g X-Rspamd-Queue-Id: 4741940002 X-Rspamd-Server: rspam08 X-HE-Tag: 1751020318-874199 X-HE-Meta: U2FsdGVkX1/bf25fnIDkiqnEmcDtRYqS7lr9JdJGnP0z2EcqYchnWHK1pZlqqDe9HeufC2359GhSRR9pqho+jUS0BNZLC6lTXG+yjQ47J/2DExt5rJBUY52PUJGMCQNNuztc7LS09ah6C0mf0V/S11+YBrIduvbdBXl4kdVN0vW7ZTMWD973odb+46z2RztfidXI+GoCeYuA7zKWVQp4KDbYy5/r1dsBLZxIJoiHw9N8BK2lyxlhufhirA8/oVBYON3xSLtsc1mzOAWgvaT+LbfwYtdC3vGs4Ve4Y4AAwYrrQkITBR4SncLNNBdNfWM+lVEeVOCueFowI22N9DdJez+aQQ0TO4MBvS+tYKNfxTvKANZ9XrVTByFcp7LobZ38JA+BpteCNUM78i4cx+CwDnUOEQMmtEZgcro+vl/5Asn3Ck6k3CsO91v6Ky0ZgYa7qpx4xIZU8WnlcN4E5sBW+cUcHbdJhsvxcvW3Dmah9aKo5sB4I+KrVCTBXckx93TsfKbjtJVwQl28f0fxcgG4TgBloF8d06h/QiVc9Hic4ke42d8+tlultux0j4MtzH+Lh//3zpwa2dTEU0HC65qT++O8MObVkedHaKAKWA3g+CtBHo5lYzC4+gxXBtE0PODpUeojIpoPfmZZdQZACNvcbxZqD2wLOGrjqKGARm4/bkrJlUGyLUUUcg1nj/yuFvk7YMaIIxROdO20ApQpwIxniytYTJCYBq2HC+anxT+5lWgvofxrNglFvgh6AW1gaNkwSo28o9tq3A11Q/YSh61kO7vaMmH1NIlFSOX+Dt20po5SHcGDSgSTqqi0K2P3BFSHLEePmS7VtFtGu1A4UyG/1pqMfdRsKSv1MO4kefzQAoRqpWJ576hnQEnGrjOTB9s0SovtDt5dRJ30Rzn1FvTg32+xNZ3InaUUi1Fud61Rie0OfkaywyVNKXEUXg/kv3F7HZltRcz2q13C0m7UvTc I6wYhvlb R6jDEv+pedKFk3R4oWVqE2sDJnpPilmbR3uKk418wkkxa5JnNyrxs52/AOKSTY7qpogjdx8CL+YNrQbpE/NTWMGcP5OOiHj9GjMhFYnTcTh4nfwkcSpZsTnXCHC86kYBuijJ5SL2IKoEmhm5FeqwjsQeVc+nCZtPurXjbUtCs53OGY+l7/GPUpnIK/Kq4KVGDg3SCbOvSbG5EPhLPh7gXmjoeyi1ipG62bWk6hA1G9+QRv/GYgOWwW8HSlDKwp/yaUAE0Y1pWVLI1tjpLFA24KxKRnlSwM7Z2XO+9gRe8SAPuir17EJqYVlBCL97J9fTgVY4swfKgUqI/F3pg9pT6Zl4xBBVS7MRFE2DF 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 Thu, Jun 26, 2025 at 10:57:47AM -0700, Xin Li wrote: > On 6/25/2025 5:51 AM, Kirill A. Shutemov wrote: > > LASS throws a #GP for any violations except for stack register accesses, > > in which case it throws a #SS instead. Handle this similarly to how other > > LASS violations are handled. > > > > In case of FRED, before handling #SS as LASS violation, kernel has to > > check if there's a fixup for the exception. It can address #SS due to > > invalid user context on ERETU[1]. See 5105e7687ad3 ("x86/fred: Fixup > > Forgot to put the link to [1]? Maybe just remove "[1]"? I will add the link. It is important context. > > fault on ERETU by jumping to fred_entrypoint_user") for more details. > > > > Co-developed-by: Alexander Shishkin > > Signed-off-by: Alexander Shishkin > > Signed-off-by: Kirill A. Shutemov > > --- > > arch/x86/kernel/traps.c | 39 +++++++++++++++++++++++++++++++++------ > > 1 file changed, 33 insertions(+), 6 deletions(-) > > > > diff --git a/arch/x86/kernel/traps.c b/arch/x86/kernel/traps.c > > index e2ad760b17ea..f1f92e1ba524 100644 > > --- a/arch/x86/kernel/traps.c > > +++ b/arch/x86/kernel/traps.c > > @@ -418,12 +418,6 @@ DEFINE_IDTENTRY_ERRORCODE(exc_segment_not_present) > > SIGBUS, 0, NULL); > > } > > -DEFINE_IDTENTRY_ERRORCODE(exc_stack_segment) > > -{ > > - do_error_trap(regs, error_code, "stack segment", X86_TRAP_SS, SIGBUS, > > - 0, NULL); > > -} > > - > > DEFINE_IDTENTRY_ERRORCODE(exc_alignment_check) > > { > > char *str = "alignment check"; > > @@ -866,6 +860,39 @@ DEFINE_IDTENTRY_ERRORCODE(exc_general_protection) > > cond_local_irq_disable(regs); > > } > > +#define SSFSTR "stack segment fault" > > + > > +DEFINE_IDTENTRY_ERRORCODE(exc_stack_segment) > > +{ > > + if (user_mode(regs)) > > + goto error_trap; > > + > > + if (cpu_feature_enabled(X86_FEATURE_FRED) && > > + fixup_exception(regs, X86_TRAP_SS, error_code, 0)) > > + return; > > + > > Thanks for making the change for FRED. > > > + if (cpu_feature_enabled(X86_FEATURE_LASS)) { > > + enum kernel_gp_hint hint; > > + unsigned long gp_addr; > > + > > + hint = get_kernel_gp_address(regs, &gp_addr); > > + if (hint != GP_NO_HINT) { > > + printk(SSFSTR ", %s 0x%lx", kernel_gp_hint_help[hint], > > + gp_addr); > > + } > > + > > + if (hint != GP_NON_CANONICAL) > > + gp_addr = 0; > > Nit: GP/gp don't seem fit here, maybe we need a more generic name? > > Sorry I don't have a recommendation. Naming is hard. Maybe get_kernel_exc_address()/kernel_exc_hint_help/EXC_NO_HINT/... ? > > + > > + die_addr(SSFSTR, regs, error_code, gp_addr); > > + return; > > + } > > + > > +error_trap: > > + do_error_trap(regs, error_code, "stack segment", X86_TRAP_SS, SIGBUS, > > + 0, NULL); > > The indentation has changed; I believe the original formatting is > preferable. > > > +} > > + > > static bool do_int3(struct pt_regs *regs) > > { > > int res; > > Just minor comments, so > > Reviewed-by: Xin Li (Intel) Thanks. -- Kiryl Shutsemau / Kirill A. Shutemov