Received: by 2002:a05:6a10:f3d0:0:0:0:0 with SMTP id a16csp616960pxv; Thu, 8 Jul 2021 09:59:48 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxTuS6MXvmXS21WGAoxAaTfyp+4NSdreIOFwWBY0WDXhf2xvtsovCE87fJPPH50zboqQOlG X-Received: by 2002:a17:906:1fca:: with SMTP id e10mr4202014ejt.420.1625763587842; Thu, 08 Jul 2021 09:59:47 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1625763587; cv=none; d=google.com; s=arc-20160816; b=aJdJm1tFsNT0vZKg3Awr/DY/7EEtBDL5TcHw+TUxArpjbA5B+loiw05sKzFAZor6bq bOuJ0u/uZGQQD/X6XxZ7/s1mGzOfgN/y4z27/bgx33UiZWzbMzFFFtnKilbS5b1Wirnp keQTWBqQ4VtSStBBb7HiOJqcFfL4AbV+SOIbjwmqXOx5/nfW7QiVCetEiE4LHx7ms3f9 fDMyf9rQTWa15U9q3YllU6/OTxrs5n8ItjG1iQaZsaLwjqgWyOConpx80nP0IIbfNu04 P4aitQbTlvTlTznLVmwHsn5dK0dNREtQbB4Ju0rOspxew1z/eonfvwz4/F4jFXmQSR2Z SDag== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:content-language :in-reply-to:mime-version:user-agent:date:message-id:autocrypt:from :references:cc:to:subject; bh=3JQDiud+xqrhCpWz/wj2iKEBBdDxhJutCBsBqNBJXMI=; b=ZDIoZoY39d129fuKbujAxh6wEeoKJmHJXGIVwuebpXyWm/qVFZp5ELyiS9KG1ejsI2 15f7VXfC6lFJyYoGHlGCxg2Ao2s2aImEtlBfyhPNOEb8oSrNpClAilrE+A8aST0QFhG/ Xq8pCaGF47SdHMXMiEFS10t7gr7SwG4BP7F/P6XPf4JmUHMZNGFC32df6Nxja+qcrRca LKy3Pimx/6B0o5JQNs8jtxfBYVnKvTvAjDf9oDZBqpugL9nfagPh+5TrARJmW98mH3h8 8KbM5jroh9DHwUueDnNeH1w12YQiX44XNlJq0MSUGaDRp+8Lpe71w8Ho0jFNlbUOe6fJ Bldg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-crypto-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-crypto-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id o2si3721413eds.325.2021.07.08.09.59.17; Thu, 08 Jul 2021 09:59:47 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-crypto-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-crypto-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-crypto-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230018AbhGHRBh (ORCPT + 99 others); Thu, 8 Jul 2021 13:01:37 -0400 Received: from mga02.intel.com ([134.134.136.20]:45502 "EHLO mga02.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229975AbhGHRBg (ORCPT ); Thu, 8 Jul 2021 13:01:36 -0400 X-IronPort-AV: E=McAfee;i="6200,9189,10039"; a="196721498" X-IronPort-AV: E=Sophos;i="5.84,224,1620716400"; d="scan'208";a="196721498" Received: from fmsmga006.fm.intel.com ([10.253.24.20]) by orsmga101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 08 Jul 2021 09:58:49 -0700 X-IronPort-AV: E=Sophos;i="5.84,224,1620716400"; d="scan'208";a="645975018" Received: from kezheong-mobl.gar.corp.intel.com (HELO [10.212.152.178]) ([10.212.152.178]) by fmsmga006-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 08 Jul 2021 09:58:45 -0700 Subject: Re: [PATCH Part2 RFC v4 09/40] x86/fault: Add support to dump RMP entry on fault To: Brijesh Singh , x86@kernel.org, linux-kernel@vger.kernel.org, kvm@vger.kernel.org, linux-efi@vger.kernel.org, platform-driver-x86@vger.kernel.org, linux-coco@lists.linux.dev, linux-mm@kvack.org, linux-crypto@vger.kernel.org Cc: Thomas Gleixner , Ingo Molnar , Joerg Roedel , Tom Lendacky , "H. Peter Anvin" , Ard Biesheuvel , Paolo Bonzini , Sean Christopherson , Vitaly Kuznetsov , Wanpeng Li , Jim Mattson , Andy Lutomirski , Dave Hansen , Sergio Lopez , Peter Gonda , Peter Zijlstra , Srinivas Pandruvada , David Rientjes , Dov Murik , Tobin Feldman-Fitzthum , Borislav Petkov , Michael Roth , Vlastimil Babka , tony.luck@intel.com, npmccallum@redhat.com, brijesh.ksingh@gmail.com References: <20210707183616.5620-1-brijesh.singh@amd.com> <20210707183616.5620-10-brijesh.singh@amd.com> <0d19eb84-f2b7-aa24-2fe9-19035b49fbd6@amd.com> <15d5e954-0383-fe0e-e8c1-3e9f8b0ef8ff@intel.com> <23dbe0da-581e-2444-7126-428e79514614@amd.com> From: Dave Hansen Autocrypt: addr=dave.hansen@intel.com; keydata= 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 z5cecg== Message-ID: <8c4852e4-8f57-354b-630d-cea8176fc026@intel.com> Date: Thu, 8 Jul 2021 09:58:43 -0700 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.10.0 MIME-Version: 1.0 In-Reply-To: <23dbe0da-581e-2444-7126-428e79514614@amd.com> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-crypto@vger.kernel.org On 7/8/21 9:48 AM, Brijesh Singh wrote: > On 7/8/21 10:30 AM, Dave Hansen wrote: >>> The reason for iterating through 2MB region is; if the faulting address >>> is not assigned in the RMP table, and page table walk level is 2MB then >>> one of entry within the large page is the root cause of the fault. Since >>> we don't know which entry hence I dump all the non-zero entries. >> >> Logically you can figure this out though, right?  Why throw 511 entries >> at the console when we *know* they're useless? > > Logically its going to be tricky to figure out which exact entry caused > the fault, hence I dump any non-zero entry. I understand it may dump > some useless. What's tricky about it? Sure, there's a possibility that more than one entry could contribute to a fault. But, you always know *IF* an entry could contribute to a fault. I'm fine if you run through the logic, don't find a known reason (specific RMP entry) for the fault, and dump the whole table in that case. But, unconditionally polluting the kernel log with noise isn't very nice for debugging. >>> There are two cases which we need to consider: >>> >>> 1) the faulting page is a guest private (aka assigned) >>> 2) the faulting page is a hypervisor (aka shared) >>> >>> We will be primarily seeing #1. In this case, we know its a assigned >>> page, and we can decode the fields. >>> >>> The #2 will happen in rare conditions, >> >> What rare conditions? > > One such condition is RMP "in-use" bit is set; see the patch 20/40. > After applying the patch we should not see "in-use" bit set. If we run > into similar issues, a full RMP dump will greatly help debug. OK... so dump the "in-use" bit here if you see it. >>> if it happens, one of the undocumented bit in the RMP entry can >>> provide us some useful information hence we dump the raw values. >> You're saying that there are things that can cause RMP faults that >> aren't documented?  That's rather nasty for your users, don't you think? > > The "in-use" bit in the RMP entry caught me off guard. The AMD APM does > says that hardware sets in-use bit but it *never* explained in the > detail on how to check if the fault was due to in-use bit in the RMP > table. As I said, the documentation folks will be updating the RMP entry > to document the in-use bit. I hope we will not see any other > undocumented surprises, I am keeping my finger cross :) Oh, ok. That sounds fine. Documentation is out of date all the time.