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 2595DC64ED6 for ; Tue, 28 Feb 2023 10:54:00 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 647D86B0071; Tue, 28 Feb 2023 05:54:00 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 5F8236B0072; Tue, 28 Feb 2023 05:54:00 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 4E6596B0073; Tue, 28 Feb 2023 05:54:00 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id 3FA606B0071 for ; Tue, 28 Feb 2023 05:54:00 -0500 (EST) Received: from smtpin18.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id DE85AC1469 for ; Tue, 28 Feb 2023 10:53:59 +0000 (UTC) X-FDA: 80516390598.18.3EB5720 Received: from out30-111.freemail.mail.aliyun.com (out30-111.freemail.mail.aliyun.com [115.124.30.111]) by imf18.hostedemail.com (Postfix) with ESMTP id 13A861C0007 for ; Tue, 28 Feb 2023 10:53:56 +0000 (UTC) Authentication-Results: imf18.hostedemail.com; dkim=none; dmarc=pass (policy=none) header.from=alibaba.com; spf=pass (imf18.hostedemail.com: domain of wuzongyong@linux.alibaba.com designates 115.124.30.111 as permitted sender) smtp.mailfrom=wuzongyong@linux.alibaba.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1677581638; h=from:from:sender:reply-to: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; bh=j1k1X4GqNZQE5MSwqvDV5cjtNiUPuj047eG1yS8wrOc=; b=GpS+GV3CC80XMr30AyXgKXz8aTouSMn0b4MK/hp1hyJoBotCIiS3nX5CIhNgGmDBm0k8AO 1pl2T6U5lM8A2gFHdwNbw42NRnabhZHduVUSV+sEPxSHeWszdsPlRPK/nxjcM7Zhvq4ALI UOyaD+wfsm/ZVpEStRVEgIj8yQgu1rc= ARC-Authentication-Results: i=1; imf18.hostedemail.com; dkim=none; dmarc=pass (policy=none) header.from=alibaba.com; spf=pass (imf18.hostedemail.com: domain of wuzongyong@linux.alibaba.com designates 115.124.30.111 as permitted sender) smtp.mailfrom=wuzongyong@linux.alibaba.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1677581638; a=rsa-sha256; cv=none; b=OkHyafITxUSG8dhRZ8dSbpcK/5Yhe/N0GOt0OdQxaWLxW0hN9YqdErft/SNdSn9p4l4cNk vV3FrPBJ0A2M2Z8qxH0r6YLeSOkgb6MFugqgM2X6Oa3OtybJM4Szsy0f3spK3MiF7Yn8Lk FZxeNi7/O7yKTKeh6JogfRx6Ma6m1pc= X-Alimail-AntiSpam:AC=PASS;BC=-1|-1;BR=01201311R711e4;CH=green;DM=||false|;DS=||;FP=0|-1|-1|-1|0|-1|-1|-1;HT=ay29a033018046051;MF=wuzongyong@linux.alibaba.com;NM=1;PH=DS;RN=39;SR=0;TI=SMTPD_---0Vcj3mWh_1677581630; Received: from localhost(mailfrom:wuzongyong@linux.alibaba.com fp:SMTPD_---0Vcj3mWh_1677581630) by smtp.aliyun-inc.com; Tue, 28 Feb 2023 18:53:51 +0800 Date: Tue, 28 Feb 2023 18:53:50 +0800 From: Wu Zongyong To: Michael Roth Cc: kvm@vger.kernel.org, linux-coco@lists.linux.dev, linux-mm@kvack.org, linux-crypto@vger.kernel.org, x86@kernel.org, linux-kernel@vger.kernel.org, tglx@linutronix.de, mingo@redhat.com, jroedel@suse.de, thomas.lendacky@amd.com, hpa@zytor.com, ardb@kernel.org, pbonzini@redhat.com, seanjc@google.com, vkuznets@redhat.com, jmattson@google.com, luto@kernel.org, dave.hansen@linux.intel.com, slp@redhat.com, pgonda@google.com, peterz@infradead.org, srinivas.pandruvada@linux.intel.com, rientjes@google.com, dovmurik@linux.ibm.com, tobin@ibm.com, bp@alien8.de, vbabka@suse.cz, kirill@shutemov.name, ak@linux.intel.com, tony.luck@intel.com, marcorr@google.com, sathyanarayanan.kuppuswamy@linux.intel.com, alpergun@google.com, dgilbert@redhat.com, jarkko@kernel.org, ashish.kalra@amd.com, nikunj.dadhania@amd.com, wutu.xq2@linux.alibaba.com Subject: Re: [PATCH RFC v8 19/56] x86/fault: Return pfn from dump_pagetable() for SEV-specific fault handling. Message-ID: <20230228105350.GA15593@L-PF27918B-1352.localdomain> Reply-To: Wu Zongyong References: <20230220183847.59159-1-michael.roth@amd.com> <20230220183847.59159-20-michael.roth@amd.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20230220183847.59159-20-michael.roth@amd.com> User-Agent: Mutt/1.9.4 (2018-02-28) X-Rspamd-Queue-Id: 13A861C0007 X-Rspamd-Server: rspam09 X-Rspam-User: X-Stat-Signature: 3ng3md7byrfdtxu3hknhf9qtdpkni3tp X-HE-Tag: 1677581636-660835 X-HE-Meta: U2FsdGVkX1/Pt3FI8qPgg6ZV3AlsAw/74btwad1jw4IUxP/k8ygaq1y3qSBAZUaefixZbtkuTNMpOahya+XG0HF9NeUZCVUZnFGUl/hFmuXQtIN/4de9Hzguk2C6hANAqyvGIXfYhnHTvqKfo1Bmq3opYMAr0PdzdIHUQZgjs+p/An1fx0Bgp0HOCCWi3/qu/YprPcmpu9Ix+CXrOAF/Hqck8cRQpCYMm6n+16INgZjdeASbpM3SmtHHInxBV0cV7TRzCCVluN36ToV55LPrYMQUYa2/iArFstF6oOuTusuzCdL6vxKbIhPhWorqH0E0kqIhYVKOuIL5RpVw8wMxzb4Wa3wMidZQXgiNxyVSnFT2LUwwyI4Y8t5xtSwBkXobxuze7J4Y6h4SuWVbDvt2cWZx9fWzN1VlpGQ7izcxyMM2/HPw1TJbQlVijgUA4SCR3EujOc9gxZH4bPRVnSKVFAq1bq0yvaOO65u18UKU26WdV67oRhoRHOZNrr3/8yB35cREY7SMYK2nnQcLaTcWOhPL+lVDyExGzM6zaNJTYWLNceIYBVfuL40ESEgMI1oB4Qfjdjmpt2qyJuVCjI787PV/gttHwaFBhOsuuQ8gErmFcCzB7JJXiP0kMluQwrvP8okYbuqzUiETGxYvcICSp30U+CWKb8duAyRlQnbj6ayDzZkNwp2B1CMuKDfpw/SQBOcBkODEsyfmOM3YxwxRGBaTJoiQ77xpcgGfbpbmBBrKeKURrF/NNlxYGU6ovHjfpxlyuzzL208OKu8PfzHO/3wWuGxXpYlIC3KNx7JrAkSihPOmNHvSBFNmQZCrtpvPkYcarluOQgBjKxj9QzJ99ENTvDHfHAMAgNpQhzpLECsfsaPIrLwQUecWWbMCZN0tHJ7jSEqQjQkTiKo7VeMXognP2B7aWIiSg4epzua4CgjneVyYmhkaWm+bPS8kpsJtNBx+eXjT+uSH9ilrgVl uiQQdwRX OYNESwajjL4SSrDFfxGgg1fhYJe8Id3oAMMgdtlQlu7DEgjVfIUZKRmYpY+hsipLCKW28JDUqx9GaQOttZ1nrUBx9x/Oh/BSVGcqFkTvfuSoLuX2vv0alfKRJtqY659wV32XwAL9r0EIouWA7NiqwdSWNoAp/rcxur4hAFjp9mR0wUBfjuGpT1dcUtqto5ODmOj2dmiIaADaheApNPHcfKPO7fv0T/jz0SVGPQRiDM1MC+ESxj0Vt2CitF4kQP9Mn+B6t2g1KOL7Tsh2ovk3B9Kd2per4aEGUc5ANw8zalRA0DSzQo+hWquWUiQ== 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: On Mon, Feb 20, 2023 at 12:38:10PM -0600, Michael Roth wrote: > From: Ashish Kalra > > Return pfn from dump_pagetable() to do SEV-specific > fault handling. Used for handling SNP RMP page fault. > > Signed-off-by: Ashish Kalra > Signed-off-by: Michael Roth > --- > arch/x86/mm/fault.c | 15 +++++++++++---- > 1 file changed, 11 insertions(+), 4 deletions(-) > > diff --git a/arch/x86/mm/fault.c b/arch/x86/mm/fault.c > index afd4cde17001..f2b16dcfbd9a 100644 > --- a/arch/x86/mm/fault.c > +++ b/arch/x86/mm/fault.c > @@ -311,7 +311,7 @@ static bool low_pfn(unsigned long pfn) > return pfn < max_low_pfn; > } > > -static void dump_pagetable(unsigned long address) > +static unsigned long dump_pagetable(unsigned long address) > { > pgd_t *base = __va(read_cr3_pa()); > pgd_t *pgd = &base[pgd_index(address)]; > @@ -345,8 +345,10 @@ static void dump_pagetable(unsigned long address) > > pte = pte_offset_kernel(pmd, address); > pr_cont("*pte = %0*Lx ", sizeof(*pte) * 2, (u64)pte_val(*pte)); > + return 0; > out: > pr_cont("\n"); > + return 0; > } > > #else /* CONFIG_X86_64: */ > @@ -367,10 +369,11 @@ static int bad_address(void *p) > return get_kernel_nofault(dummy, (unsigned long *)p); > } > > -static void dump_pagetable(unsigned long address) > +static unsigned long dump_pagetable(unsigned long address) > { > pgd_t *base = __va(read_cr3_pa()); > pgd_t *pgd = base + pgd_index(address); > + unsigned long pfn; pfn should be initialized otherwise this function may return an uninitialized value. > p4d_t *p4d; > pud_t *pud; > pmd_t *pmd; > @@ -388,6 +391,7 @@ static void dump_pagetable(unsigned long address) > if (bad_address(p4d)) > goto bad; > > + pfn = p4d_pfn(*p4d); > pr_cont("P4D %lx ", p4d_val(*p4d)); > if (!p4d_present(*p4d) || p4d_large(*p4d)) > goto out; > @@ -396,6 +400,7 @@ static void dump_pagetable(unsigned long address) > if (bad_address(pud)) > goto bad; > > + pfn = pud_pfn(*pud); > pr_cont("PUD %lx ", pud_val(*pud)); > if (!pud_present(*pud) || pud_large(*pud)) > goto out; > @@ -404,6 +409,7 @@ static void dump_pagetable(unsigned long address) > if (bad_address(pmd)) > goto bad; > > + pfn = pmd_pfn(*pmd); > pr_cont("PMD %lx ", pmd_val(*pmd)); > if (!pmd_present(*pmd) || pmd_large(*pmd)) > goto out; > @@ -412,13 +418,14 @@ static void dump_pagetable(unsigned long address) > if (bad_address(pte)) > goto bad; > > + pfn = pte_pfn(*pte); > pr_cont("PTE %lx", pte_val(*pte)); > out: > pr_cont("\n"); > - > - return; > + return pfn; > bad: > pr_info("BAD\n"); > + return -1; > } > > #endif /* CONFIG_X86_64 */ > -- > 2.25.1 > > > >