From patchwork Mon Jun 10 05:54:47 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Christophe Leroy X-Patchwork-Id: 13691503 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 BD680C27C5E for ; Mon, 10 Jun 2024 05:55:08 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 510726B0096; Mon, 10 Jun 2024 01:55:08 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 499406B009A; Mon, 10 Jun 2024 01:55:08 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 2EC086B009D; Mon, 10 Jun 2024 01:55:08 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id 0C7C36B0096 for ; Mon, 10 Jun 2024 01:55:08 -0400 (EDT) Received: from smtpin09.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id A306AC0D4A for ; Mon, 10 Jun 2024 05:55:07 +0000 (UTC) X-FDA: 82213915854.09.E493385 Received: from pegase1.c-s.fr (pegase1.c-s.fr [93.17.236.30]) by imf10.hostedemail.com (Postfix) with ESMTP id 7D08AC0002 for ; Mon, 10 Jun 2024 05:55:04 +0000 (UTC) Authentication-Results: imf10.hostedemail.com; dkim=none; dmarc=pass (policy=quarantine) header.from=csgroup.eu; spf=pass (imf10.hostedemail.com: domain of christophe.leroy@csgroup.eu designates 93.17.236.30 as permitted sender) smtp.mailfrom=christophe.leroy@csgroup.eu ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1717998904; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=EvYMtuouinBr8WHe20VZQSOrHDgdpezRWdfbShqnTac=; b=h83qpp/6r8idjO+NPY1vv3uE8LBqQqBchYcB8BY2fQbiP2j3YXn4nKvE9CHdPOTeQGgGyf Ef9Ji0XC2GxYjSUQ6V2Mp37tGwp7EJo9ZQGpMkMh8Oki90pQwVuklL4IhKxSqdumEiPOUh jVJYHkmJuPXXx4zDolINtiqw5nnjFxI= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1717998904; a=rsa-sha256; cv=none; b=PHPOgHLdrpvJTG3/uCA0PaVckDHjpv/qoNXzcKEEPOsKQTaT5DkDO1ypgEXDOcsMPCqEng q6HTGgY8nKh+PhleCb2eacqr6wu4Z7EnXAwBZoau+ka0z7+PtomKBs+c4f5n27R+kBpcwM U37cbQ/fydhBxypM76owvNPs+5rkCuo= ARC-Authentication-Results: i=1; imf10.hostedemail.com; dkim=none; dmarc=pass (policy=quarantine) header.from=csgroup.eu; spf=pass (imf10.hostedemail.com: domain of christophe.leroy@csgroup.eu designates 93.17.236.30 as permitted sender) smtp.mailfrom=christophe.leroy@csgroup.eu Received: from localhost (mailhub3.si.c-s.fr [192.168.12.233]) by localhost (Postfix) with ESMTP id 4VyLcL1MBCz9v4p; Mon, 10 Jun 2024 07:54:58 +0200 (CEST) X-Virus-Scanned: amavisd-new at c-s.fr Received: from pegase1.c-s.fr ([192.168.12.234]) by localhost (pegase1.c-s.fr [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 8TjT39EACqsz; Mon, 10 Jun 2024 07:54:58 +0200 (CEST) Received: from messagerie.si.c-s.fr (messagerie.si.c-s.fr [192.168.25.192]) by pegase1.c-s.fr (Postfix) with ESMTP id 4VyLcK4xtCz9tpr; Mon, 10 Jun 2024 07:54:57 +0200 (CEST) Received: from localhost (localhost [127.0.0.1]) by messagerie.si.c-s.fr (Postfix) with ESMTP id A46378B76E; Mon, 10 Jun 2024 07:54:57 +0200 (CEST) X-Virus-Scanned: amavisd-new at c-s.fr Received: from messagerie.si.c-s.fr ([127.0.0.1]) by localhost (messagerie.si.c-s.fr [127.0.0.1]) (amavisd-new, port 10023) with ESMTP id d_O_4G1I-ScO; Mon, 10 Jun 2024 07:54:57 +0200 (CEST) Received: from PO20335.idsi0.si.c-s.fr (unknown [172.25.230.108]) by messagerie.si.c-s.fr (Postfix) with ESMTP id 87E048B770; Mon, 10 Jun 2024 07:54:57 +0200 (CEST) From: Christophe Leroy To: Andrew Morton , Jason Gunthorpe , Peter Xu , Oscar Salvador , Michael Ellerman , Nicholas Piggin Cc: Christophe Leroy , linux-kernel@vger.kernel.org, linux-mm@kvack.org, linuxppc-dev@lists.ozlabs.org Subject: [PATCH v5 02/18] mm: Define __pte_leaf_size() to also take a PMD entry Date: Mon, 10 Jun 2024 07:54:47 +0200 Message-ID: <172b11c93e0de7a84937af2da9f80bd17c56b8c9.1717955558.git.christophe.leroy@csgroup.eu> X-Mailer: git-send-email 2.44.0 In-Reply-To: References: MIME-Version: 1.0 X-Developer-Signature: v=1; a=ed25519-sha256; t=1717998886; l=1803; i=christophe.leroy@csgroup.eu; s=20211009; h=from:subject:message-id; bh=UzfhNq5PmSTEAt037maHDDYdpiu9u0KQG11+Ji9a3Ko=; b=96ymNrt3YIhW9SQVdwASzXUhEcLM0bzQDX6CAN9Tl6YdWZGgCl0DUsfah9BvKKLYrbAQjyOy8 Vf4+iZFMF4mAxFG9QQwQYvCQEURqQUd7IKMfV0+/BrxIG0HuPTSM1a5 X-Developer-Key: i=christophe.leroy@csgroup.eu; a=ed25519; pk=HIzTzUj91asvincQGOFx6+ZF5AoUuP9GdOtQChs7Mm0= X-Stat-Signature: o1qeotu6gk8wa4ojerfrn7yk8jgacdo7 X-Rspamd-Queue-Id: 7D08AC0002 X-Rspam-User: X-Rspamd-Server: rspam01 X-HE-Tag: 1717998904-190184 X-HE-Meta: U2FsdGVkX18AQKasNXh7ydACl/LtnifUUB8sTZ/LkP20Nkpw07dKBAxdnkrpW7Go5A7GL5HZTOnW7y5XkyAO6WFkkoDwowsGnn8gnlrKJjtKJb5i8wewVUg9tDbPTheXpimf38yMNCZ7oOO44IjZzilmce7SeeJm707s1pj8RinsWAvAWtY9RV2D+haaBTKAcwN30rWMoyq8eOt/jNe4tRr9UOWBoc0pzaBcQ0R+QfqKV5q/oHz0pHMa0cgvamaAtQHZBlQimlWFYbU0U2U2MBGzF1d6mToU2BsYLOmmD13FZXabN3KAZ46duztnzKRUjgdYojwC35UKJaiaTUJBmw8IfR9FF98KdX4/GZrpocKyKopTNXjCwTsqpzMuAX7XTi9cdJPyNV3QexWqEsFBJ/cLaMqChj7unavJNhB6k8rN2SFgROUg/ioHqRYElwxuwKAIlUZHDmIfm2Er0E5MAaSNk+wj7XPEkUjX0qOzgTN8Y1F9Gz81eQXcMRE32MU32fo594RFTLYFBgKlk3JQ6kW6jDAOPo2Qk0DFoEzPqZULs5h29BXQOFfiYnkHSzhdsyQMfR7D0b5sg8uDJTE0ceoPTDBcATUY+H1HIDibkjRuwuy88Fr6AbM6DQWwONK04UWqOtPIGNyGsqS+7KtwZA15iN43CR59qYcPFykuwK0btkx6i25s9vGpED5Ls8wTynEjA+3Zel+w4QV1UIA/ms8a/KHuqys0S/OATYI7ZPAxwgNm5SWd5wSsVO5nKSKOZ5fiSfp8doRrkoZA96+N/2vhtjAoETgPJSUOpCq2w08B1JWH+sxMDHyBDtzZKquhHw9I+sNzIMpwf01zonAfA8Gk35BVlV82h8Ht6ezzQtNCUTD4U10VBQR3+niyeo+Jcghe6ZJxQit5ztWSWPjaxOEmXN8CbCb9uaKLWaNz2VigBDLpPDUd2oFi1s1rrWUc//6o3a7P9BhBfoihCvD XKL8ksgI kkYa6LgUeQWQWnorBdPLE8BotmKttRk8eC1EUFDeY7EsYpasTx/iV0FlVOgdqV6fA0+agdfpzd1w9lZTyfN0LwJGVgYMDlizbZXpuOr7hJEXaiJUNuV5mQ7ii4koBMLw1VNP57SK1tQfrhHJkALKId+SiGk+x2+6+lZbVUWewLPxU8mE= 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: List-Subscribe: List-Unsubscribe: On powerpc 8xx, when a page is 8M size, the information is in the PMD entry. So allow architectures to provide __pte_leaf_size() instead of pte_leaf_size() and provide the PMD entry to that function. When __pte_leaf_size() is not defined, define it as a pte_leaf_size() so that architectures not interested in the PMD arguments are not impacted. Only define a default pte_leaf_size() when __pte_leaf_size() is not defined to make sure nobody adds new calls to pte_leaf_size() in the core. Signed-off-by: Christophe Leroy Reviewed-by: Oscar Salvador --- v3: Don't change pte_leaf_size() to not impact other architectures --- include/linux/pgtable.h | 3 +++ kernel/events/core.c | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/include/linux/pgtable.h b/include/linux/pgtable.h index 18019f037bae..3080e7cde3de 100644 --- a/include/linux/pgtable.h +++ b/include/linux/pgtable.h @@ -1888,9 +1888,12 @@ typedef unsigned int pgtbl_mod_mask; #ifndef pmd_leaf_size #define pmd_leaf_size(x) PMD_SIZE #endif +#ifndef __pte_leaf_size #ifndef pte_leaf_size #define pte_leaf_size(x) PAGE_SIZE #endif +#define __pte_leaf_size(x,y) pte_leaf_size(y) +#endif /* * We always define pmd_pfn for all archs as it's used in lots of generic diff --git a/kernel/events/core.c b/kernel/events/core.c index f0128c5ff278..880df84ce07c 100644 --- a/kernel/events/core.c +++ b/kernel/events/core.c @@ -7596,7 +7596,7 @@ static u64 perf_get_pgtable_size(struct mm_struct *mm, unsigned long addr) pte = ptep_get_lockless(ptep); if (pte_present(pte)) - size = pte_leaf_size(pte); + size = __pte_leaf_size(pmd, pte); pte_unmap(ptep); #endif /* CONFIG_HAVE_GUP_FAST */