From patchwork Thu Oct 5 13:13:56 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Kirill A. Shutemov" X-Patchwork-Id: 148785 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:612c:2016:b0:403:3b70:6f57 with SMTP id fe22csp354549vqb; Thu, 5 Oct 2023 07:57:33 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFV9H0tMiSBseZH8CqfR9aGD/UhMt7/acZYBprHGgnaTR5Y7yDqB0ZMKDTkjgVQmRbieVD8 X-Received: by 2002:a05:6a20:938b:b0:156:851e:b167 with SMTP id x11-20020a056a20938b00b00156851eb167mr5781984pzh.44.1696517853404; Thu, 05 Oct 2023 07:57:33 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1696517853; cv=none; d=google.com; s=arc-20160816; b=ZHIsMdfIdRe930S89QtLpsReYiZiHGhUMoIbdjNR+Ru+EsgVkTT9P4eQGwBuloEGMl isW8zPN7upw/5phIbNIm0YebIK1yR4Z+VYdY/9hwhmEEEOhxevJYReYRJaPUT8Sot5vS K2ar+MFwEKS1wPDwLxCbp+gnpbeqjoWb9EyfCzmiw8aVMQOjtkEqEmGOVN/C8uKkhZkh ywrjT6/e+1dSMWRo1LtDygIfyZtgXmaAF2jzABEY/mtODzK2cloRoyEW6llyGkucj62k lfj2TdBPWwsw2ZYiY+MOAVmq4YQooWAY4t3OHk7qHEcgnIqPeMxkw6DUbGslPEjxUlBv frcQ== 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=nRb9odYj0zuUgjn5mN2pRzKe6eite6Cnh5+z/pgqCLI=; fh=F1gpqSS/HYttK+doOKuW4yrAifo5qykyq1MCI9SIQmQ=; b=juAdyjApQfLNc4Ux6oSKDq7q9/B2SNyoG7YFkpcYIbarIYQAaTZOI561rqi72qaL2N g1V9gVLSXykw2sp2LfV37LqNG82fOs6KR6S0wRUemuA50M92RKYiBiKH5XbiZ1uLeH4w 8XYx3+ql7CBNyc9R3c3zaGAsNwkg+2kOmkbHekE1gIirrZ5V/sY5JmZ4M18yYQ78ggeg u3EPrylZ6Dg2F48olMFkrx1WXcDYNfwLoA+fnXXPxT7vMcZEsTxpGfD4/ur9DdUT0oYa /jsxUhpVyH2mFn4YLo1M2PKLkAetkMlDavwupPinsIL7pB3TVAmLTzFIOB6KUIz1b6QK GX4A== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=KBQQ6DFC; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.37 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 snail.vger.email (snail.vger.email. [23.128.96.37]) by mx.google.com with ESMTPS id u62-20020a638541000000b0058934e72163si1613193pgd.746.2023.10.05.07.57.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 05 Oct 2023 07:57:33 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.37 as permitted sender) client-ip=23.128.96.37; Authentication-Results: mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=KBQQ6DFC; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.37 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 snail.vger.email (Postfix) with ESMTP id BD8E582F08DD; Thu, 5 Oct 2023 07:57:31 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at snail.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S238865AbjJEOnx (ORCPT + 19 others); Thu, 5 Oct 2023 10:43:53 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36770 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S237218AbjJEOiu (ORCPT ); Thu, 5 Oct 2023 10:38:50 -0400 Received: from mgamail.intel.com (mgamail.intel.com [192.55.52.120]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 0308C93C1 for ; Thu, 5 Oct 2023 07:04:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1696514671; x=1728050671; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=7MgS2tz+eXb3t+LyzYLE/xkq/zAhJTq68EvRtEFLASY=; b=KBQQ6DFCrx4+ZQd8zRMdkWnWGf4rhDeCaLqhsT/rjjgN7BJWMQek5rA9 f7MjB+0hO+QyYNGdlr54WWenJHJCslo/3dZNlX4vZ4zIaF0MNBiFqXDGJ OBuMJ9Wk3nlaZ7wkDFJcCSOcmc66P2S3ei7hdsMwRaSRvXt2dtFxO/EnB C3/hMQjpaCT+tdx/MAFtzCYelG/5qDgKmj9ES02QmRJq3xZoUQtP9kpCi Vptp0jQ/96SfnKSDRhnLXllcT4WukoyXd77AgITqnSX2aVi45Hyqlz2cf hqspXW9mvrp9TLXwRmrNdN1X+lyykRhHXJwN3AKJoiBMqHoD2DSmlaEof g==; X-IronPort-AV: E=McAfee;i="6600,9927,10854"; a="382357561" X-IronPort-AV: E=Sophos;i="6.03,203,1694761200"; d="scan'208";a="382357561" Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by fmsmga104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 05 Oct 2023 06:14:27 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10854"; a="817564320" X-IronPort-AV: E=Sophos;i="6.03,203,1694761200"; d="scan'208";a="817564320" Received: from skwasnia-mobl.ger.corp.intel.com (HELO box.shutemov.name) ([10.251.222.71]) by fmsmga008-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 05 Oct 2023 06:14:23 -0700 Received: by box.shutemov.name (Postfix, from userid 1000) id 52B2510A150; Thu, 5 Oct 2023 16:14:14 +0300 (+03) From: "Kirill A. Shutemov" To: Thomas Gleixner , Ingo Molnar , Borislav Petkov , Dave Hansen , x86@kernel.org Cc: "Rafael J. Wysocki" , Peter Zijlstra , Adrian Hunter , Kuppuswamy Sathyanarayanan , Elena Reshetova , Jun Nakajima , Rick Edgecombe , Tom Lendacky , kexec@lists.infradead.org, linux-coco@lists.linux.dev, linux-kernel@vger.kernel.org, "Kirill A. Shutemov" Subject: [PATCH 07/13] x86/mm: Return correct level from lookup_address() if pte is none Date: Thu, 5 Oct 2023 16:13:56 +0300 Message-ID: <20231005131402.14611-8-kirill.shutemov@linux.intel.com> X-Mailer: git-send-email 2.41.0 In-Reply-To: <20231005131402.14611-1-kirill.shutemov@linux.intel.com> References: <20231005131402.14611-1-kirill.shutemov@linux.intel.com> MIME-Version: 1.0 X-Spam-Status: No, score=-2.0 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_EF,RCVD_IN_DNSWL_BLOCKED, SPF_HELO_NONE,SPF_NONE,URIBL_BLOCKED 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 (snail.vger.email [0.0.0.0]); Thu, 05 Oct 2023 07:57:31 -0700 (PDT) X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1778927904907301621 X-GMAIL-MSGID: 1778927904907301621 lookup_address() only returns correct page table level for the entry if the entry is not none. Make the helper to always return correct 'level'. It allows to implement iterator over kernel page tables using lookup_address(). Add one more entry into enum pg_level to indicate size of VA covered by one PGD entry in 5-level paging mode. Signed-off-by: Kirill A. Shutemov Reviewed-by: Rick Edgecombe --- arch/x86/include/asm/pgtable_types.h | 1 + arch/x86/mm/pat/set_memory.c | 8 ++++---- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/arch/x86/include/asm/pgtable_types.h b/arch/x86/include/asm/pgtable_types.h index 0b748ee16b3d..3f648ffdfbe5 100644 --- a/arch/x86/include/asm/pgtable_types.h +++ b/arch/x86/include/asm/pgtable_types.h @@ -548,6 +548,7 @@ enum pg_level { PG_LEVEL_2M, PG_LEVEL_1G, PG_LEVEL_512G, + PG_LEVEL_256T, PG_LEVEL_NUM }; diff --git a/arch/x86/mm/pat/set_memory.c b/arch/x86/mm/pat/set_memory.c index 6fbf22d5fa56..01f827eb8e80 100644 --- a/arch/x86/mm/pat/set_memory.c +++ b/arch/x86/mm/pat/set_memory.c @@ -666,32 +666,32 @@ pte_t *lookup_address_in_pgd(pgd_t *pgd, unsigned long address, pud_t *pud; pmd_t *pmd; - *level = PG_LEVEL_NONE; + *level = PG_LEVEL_256T; if (pgd_none(*pgd)) return NULL; + *level = PG_LEVEL_512G; p4d = p4d_offset(pgd, address); if (p4d_none(*p4d)) return NULL; - *level = PG_LEVEL_512G; if (p4d_large(*p4d) || !p4d_present(*p4d)) return (pte_t *)p4d; + *level = PG_LEVEL_1G; pud = pud_offset(p4d, address); if (pud_none(*pud)) return NULL; - *level = PG_LEVEL_1G; if (pud_large(*pud) || !pud_present(*pud)) return (pte_t *)pud; + *level = PG_LEVEL_2M; pmd = pmd_offset(pud, address); if (pmd_none(*pmd)) return NULL; - *level = PG_LEVEL_2M; if (pmd_large(*pmd) || !pmd_present(*pmd)) return (pte_t *)pmd;