From patchwork Sat Sep 23 09:41:58 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Li, Xin3" X-Patchwork-Id: 143944 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:cae8:0:b0:403:3b70:6f57 with SMTP id r8csp266890vqu; Sat, 23 Sep 2023 09:27:18 -0700 (PDT) X-Google-Smtp-Source: AGHT+IF+wQUPRKs4a4oTQSlLnhtQAQWnfYt8GKAsIGlU8YKnoBcBsmbT5mE8E6tetgXJ8id072nl X-Received: by 2002:a05:6a00:2e8b:b0:690:c887:8cd8 with SMTP id fd11-20020a056a002e8b00b00690c8878cd8mr2996259pfb.32.1695486438663; Sat, 23 Sep 2023 09:27:18 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1695486438; cv=none; d=google.com; s=arc-20160816; b=W4ZJYmqCj70ED5cUF/+zZg+PQQRWBKd7MByWfObs8juLN16ZFoUDANsN36xxuZvhkN yzHAwDPABg+iZH+iPUVKJaxW4+fVCTuruLUakmSfEj6UXO+3TUUEU7aaqWYtjje7puKg NOvPOERmPZd+CzSWFNZGQaQZV+jXIyRKZupMSfzYXTZhE9NrPIlNbSfqDmSB3Qc1o1Z1 F+u3LmM9bLEJg5Z90fOMeWc7pnOaIh736jNCwdicYezKkCE1QvoqeisFoKzYdKVE/CcY vtklX9aTLKOcHy5XTZjiE30SLJULOJKEP771fg4pErZci3JsXo3KAHY3EP4u8jDzrGqV Sp6g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=cLu+Nie38tLk5TZpiMn0bhtKs2zR9NOclJkrcTwTo9I=; fh=Tb1p8S3iOxe/kX/WSNC3xEJzSVgGJ5DaxSrKb+pzH+4=; b=u7hlvgGdAA4rHtlQ+d/YDAVac4m76I5y6weKFtlNdcxp3YPNFncLP8O1D//EOkzVAA btEesqeIuieiLP+LWmd6R0XlATHYZ22EbdMibbZmkp+AjZfeRMUvsoNJU2yQaPMC2IM8 S7wXnUnGOon6Rr117m27pNEbBLfnRESBGMGwYoa50kTSkkGINZipP0LqOa4jiVuuUhvd vgTcel5OXNSbDxOFJT5VWYenPwxorUjOWKH72a4sM5Cyoxgo2berLXnJDY4VZy1AVsTc klduGfqlaJvdtN/JN2Ncrl3XI1UsCGcKRB2KgSQWhy1EK8sma6n3uqdHJcbPcwKSv7eN Bxag== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=FxShut8O; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:4 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: from howler.vger.email (howler.vger.email. [2620:137:e000::3:4]) by mx.google.com with ESMTPS id l72-20020a63914b000000b00573fd89e62asi6257921pge.483.2023.09.23.09.27.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 23 Sep 2023 09:27:18 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:4 as permitted sender) client-ip=2620:137:e000::3:4; Authentication-Results: mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=FxShut8O; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:4 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by howler.vger.email (Postfix) with ESMTP id D3EB4867F1E2; Sat, 23 Sep 2023 03:13:35 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at howler.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231593AbjIWKNK (ORCPT + 29 others); Sat, 23 Sep 2023 06:13:10 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42414 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231486AbjIWKMA (ORCPT ); Sat, 23 Sep 2023 06:12:00 -0400 Received: from mgamail.intel.com (mgamail.intel.com [134.134.136.100]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 9223A1BF; Sat, 23 Sep 2023 03:11:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1695463908; x=1726999908; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=vZ6vels66+tC8YRpSCj8dEsAAUPLXovJkO1WpIp9s0Y=; b=FxShut8OSTP2gqFGPujEDcYiQhcPUSHeoZoj+QHqy1pUb9B1DRuY5yaY IbC9z21iDeetxKbaOD0/4hrxehwDIOUxIYhVqo9nGgLUzfVq1oNzMF3Kf UD/m1XitLicMxP/OzIBlbTWIl2DnldTFBYOxEdgOAsXvF3XV6Zto1p4DC XNVmrFMV6TOZzVVGgBpq4pShVmioZNl0EJGixgo10rvjjMvcjgHH+Lcnt NprkMZ9RJuLP8IdGRElYXfQ+79lWhdUNA0WRH4Xib148QhRFG1apQuCSp ZUSZhx0QKalDZxp6QAov56uDTuCE6R0JU+TYk3fPhT1ZBG00o5FGU4/FS A==; X-IronPort-AV: E=McAfee;i="6600,9927,10841"; a="447492350" X-IronPort-AV: E=Sophos;i="6.03,171,1694761200"; d="scan'208";a="447492350" Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by orsmga105.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 23 Sep 2023 03:11:47 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10841"; a="813388183" X-IronPort-AV: E=Sophos;i="6.03,171,1694761200"; d="scan'208";a="813388183" Received: from unknown (HELO fred..) ([172.25.112.68]) by fmsmga008.fm.intel.com with ESMTP; 23 Sep 2023 03:11:47 -0700 From: Xin Li To: linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-edac@vger.kernel.org, linux-hyperv@vger.kernel.org, kvm@vger.kernel.org, xen-devel@lists.xenproject.org Cc: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de, dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com, luto@kernel.org, pbonzini@redhat.com, seanjc@google.com, peterz@infradead.org, jgross@suse.com, ravi.v.shankar@intel.com, mhiramat@kernel.org, andrew.cooper3@citrix.com, jiangshanlai@gmail.com, nik.borisov@suse.com Subject: [PATCH v11 23/37] x86/fred: Make exc_page_fault() work for FRED Date: Sat, 23 Sep 2023 02:41:58 -0700 Message-Id: <20230923094212.26520-24-xin3.li@intel.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230923094212.26520-1-xin3.li@intel.com> References: <20230923094212.26520-1-xin3.li@intel.com> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED, SPF_HELO_NONE,SPF_NONE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (howler.vger.email [0.0.0.0]); Sat, 23 Sep 2023 03:13:36 -0700 (PDT) X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1777846387775403887 X-GMAIL-MSGID: 1777846387775403887 From: "H. Peter Anvin (Intel)" On a FRED system, the faulting address (CR2) is passed on the stack, to avoid the problem of transient state. Thus we get the page fault address from the stack instead of CR2. Signed-off-by: H. Peter Anvin (Intel) Tested-by: Shan Kang Signed-off-by: Thomas Gleixner Signed-off-by: Xin Li --- arch/x86/mm/fault.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/arch/x86/mm/fault.c b/arch/x86/mm/fault.c index ab778eac1952..7675bc067153 100644 --- a/arch/x86/mm/fault.c +++ b/arch/x86/mm/fault.c @@ -34,6 +34,7 @@ #include /* kvm_handle_async_pf */ #include /* fixup_vdso_exception() */ #include +#include #define CREATE_TRACE_POINTS #include @@ -1516,8 +1517,10 @@ handle_page_fault(struct pt_regs *regs, unsigned long error_code, DEFINE_IDTENTRY_RAW_ERRORCODE(exc_page_fault) { - unsigned long address = read_cr2(); irqentry_state_t state; + unsigned long address; + + address = cpu_feature_enabled(X86_FEATURE_FRED) ? fred_event_data(regs) : read_cr2(); prefetchw(¤t->mm->mmap_lock);