Received: by 2002:a05:6a10:1a4d:0:0:0:0 with SMTP id nk13csp1590341pxb; Tue, 8 Feb 2022 23:20:52 -0800 (PST) X-Google-Smtp-Source: ABdhPJzyH649KfNq/rXIIxGf9HfoNJ50X14jmeXVYT9fNBAtwaxyAG0nKWLH2VmmX/pbrjzdvndE X-Received: by 2002:a63:91c2:: with SMTP id l185mr865212pge.317.1644391252672; Tue, 08 Feb 2022 23:20:52 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1644391252; cv=none; d=google.com; s=arc-20160816; b=MiTpx6Pqxw9uiSdXPyB2X/bTSaRcNWyVgOkGE3A+fcJJz/NmsLZhlRvRYnYxvpa0uM 4G8kBwGoF9WBrUzTnq3QcgBclcd71JD5pD0STXE/WhG39qTZ2wt/iATIv1YKEH/NxnBs r8hDVoXXwOyrYd+T6Hpf25WfRB69gaYoCYCwUMOthO+3iQCYABQUURtI4C4R5JXtaMDB aV60Y0/JKPNMKc4bkr1VdP6NGjkudOxeCCctBm6QpBjmahVgvLgdvucWnVnqLKDTdGEz PPPZ8pgoHL6/nMb9wJeQOMd6eact8A96YfsvSG68MJjlCLYY1m/4WGtnBtqcEb9S8io3 Z56Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:user-agent:in-reply-to:content-disposition :mime-version:references:message-id:subject:cc:to:from:date :dkim-signature; bh=0W9UryNAjaTLa5+6TrS8rElSTGz8t+hg2qqmU07EHN0=; b=c3oaahXYTmyYtcxZcCl5oCYNlRpySQKf53VEkCj8Ibzlky4PC1er47K34Rd+ZEnJLD Ypu1F+lQoQjnsN2e81YYOHGk/O9FhxddCyN2+TLlYZ12wYpzkZqbUjBleOWzljBQrrge 0p2RXQefpHmHxIcFbrYMSi6Wk930/aG/aObhlc87ABOLXAZ5QB/1NJrjmajCa0jWB5PT tBSz9sLmf2ZrXBeIRJJDpMKcpJDZz7J+Qu4hdZ+sVp7x8VWd/AgFc0e7MMT5SZg4pysm kuBQLa7T6SIwbK3r9upRJcrM7B37Xpw68Zsamf3Li6xK7nLO/wgIda5lha7faJWJHCU7 0Tqg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=brqBU75s; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from lindbergh.monkeyblade.net (lindbergh.monkeyblade.net. [2620:137:e000::1:18]) by mx.google.com with ESMTPS id o13si1089279pji.156.2022.02.08.23.20.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 08 Feb 2022 23:20:52 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:18 as permitted sender) client-ip=2620:137:e000::1:18; Authentication-Results: mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=brqBU75s; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:18 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 2D187E030BD2; Tue, 8 Feb 2022 22:34:48 -0800 (PST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235703AbiBDUH4 (ORCPT + 99 others); Fri, 4 Feb 2022 15:07:56 -0500 Received: from mga18.intel.com ([134.134.136.126]:34078 "EHLO mga18.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S237276AbiBDUHt (ORCPT ); Fri, 4 Feb 2022 15:07:49 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1644005269; x=1675541269; h=date:from:to:cc:subject:message-id:references: mime-version:in-reply-to; bh=Z4NbfNsU6IVb/TMXUrAVWfrz3XFmez1DBnLaxBVI4Os=; b=brqBU75snJbxm0l83AeyX8Bl7SOBnm8flPRVJ2aRq6aRGBQpuNZNU3Yk BQ9WzrJGZvpV+R8Sa1TRaF54bMGsUVHn5NbxgVGZTKcYrauhwCHAnLS3d yUsy+YG42HejcXaxnwBKTCS88zSeRBjDKzS7wrZNv/TQyqeq6xonPRW5U ifWbGBlkISTZjGXNRvPg/EvuWrncgIGypHXPYElZO0oYeruzBU0E4+fn3 Kf1Xae8JVHDZkkejHveUioL2OGhWEYWf09i0HE8y0RHiyrzpygxZK9lGq ZUkx4vFcSVbh7ZSqzOp/9kGXTj6Y2rtNUVjA9yNdcyJIfp+abS/qTUiS8 g==; X-IronPort-AV: E=McAfee;i="6200,9189,10248"; a="232001514" X-IronPort-AV: E=Sophos;i="5.88,343,1635231600"; d="scan'208";a="232001514" Received: from orsmga004.jf.intel.com ([10.7.209.38]) by orsmga106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 04 Feb 2022 12:06:31 -0800 X-IronPort-AV: E=Sophos;i="5.88,343,1635231600"; d="scan'208";a="631805598" Received: from iweiny-desk2.sc.intel.com (HELO localhost) ([10.3.52.147]) by orsmga004-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 04 Feb 2022 12:06:31 -0800 Date: Fri, 4 Feb 2022 12:06:31 -0800 From: Ira Weiny To: Dave Hansen Cc: Dave Hansen , "H. Peter Anvin" , Dan Williams , Fenghua Yu , Rick Edgecombe , linux-kernel@vger.kernel.org Subject: Re: [PATCH V8 08/44] x86/fault: Adjust WARN_ON for PKey fault Message-ID: <20220204200631.GB785175@iweiny-DESK2.sc.intel.com> References: <20220127175505.851391-1-ira.weiny@intel.com> <20220127175505.851391-9-ira.weiny@intel.com> <01a47dd8-4717-7b07-39ad-45fee1f78311@intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <01a47dd8-4717-7b07-39ad-45fee1f78311@intel.com> User-Agent: Mutt/1.11.1 (2018-12-01) Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Spam-Status: No, score=-7.8 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI,SPF_HELO_PASS,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net On Fri, Jan 28, 2022 at 03:10:24PM -0800, Dave Hansen wrote: > On 1/27/22 09:54, ira.weiny@intel.com wrote: > > From: Ira Weiny > > > > Previously if a Protection key fault occurred it indicated something > > very wrong because user page mappings are not supposed to be in the > > kernel address space. > > This is missing a key point. The problem is PK faults on "*kernel* > addresses. Ok, I'll try and clarify. > > > Now PKey faults may happen on kernel mappings if the feature is enabled. > > One nit: I've been using "pkeys" and "pkey" as the terms. I usually > don't capitalize them except at the beginning of a sentence. I'll audit the series to use lower case for consistency. > > > If PKS is enabled, avoid the warning in the fault path. > > > > Cc: Sean Christopherson > > Cc: Dan Williams > > Signed-off-by: Ira Weiny > > --- > > arch/x86/mm/fault.c | 12 ++++++++---- > > 1 file changed, 8 insertions(+), 4 deletions(-) > > > > diff --git a/arch/x86/mm/fault.c b/arch/x86/mm/fault.c > > index d0074c6ed31a..6ed91b632eac 100644 > > --- a/arch/x86/mm/fault.c > > +++ b/arch/x86/mm/fault.c > > @@ -1148,11 +1148,15 @@ do_kern_addr_fault(struct pt_regs *regs, unsigned long hw_error_code, > > unsigned long address) > > { > > /* > > - * Protection keys exceptions only happen on user pages. We > > - * have no user pages in the kernel portion of the address > > - * space, so do not expect them here. > > + * X86_PF_PK (Protection key exceptions) may occur on kernel addresses > > + * when PKS (PKeys Supervisor) is enabled. > > + * > > + * However, if PKS is not enabled WARN if this exception is seen > > + * because there are no user pages in the kernel portion of the address > > + * space. > > */ > > - WARN_ON_ONCE(hw_error_code & X86_PF_PK); > > + WARN_ON_ONCE(!cpu_feature_enabled(X86_FEATURE_PKS) && > > + (hw_error_code & X86_PF_PK)); > > > > #ifdef CONFIG_X86_32 > > /* > > I'm wondering if this warning is even doing us any good. I'm pretty > sure it's never triggered on me at least. Either way, let's not get too > carried away with the comment. I think this should do: > > /* > * PF_PF faults should only occur on kernel > * addresses when supervisor pkeys are enabled. > */ Sounds better, Ira