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 E7FF9C3065C for ; Thu, 4 Jul 2024 04:31:57 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id ACB816B008A; Thu, 4 Jul 2024 00:31:55 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id A2A946B008C; Thu, 4 Jul 2024 00:31:55 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 8A3A26B0093; Thu, 4 Jul 2024 00:31:55 -0400 (EDT) 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 6A1B96B008A for ; Thu, 4 Jul 2024 00:31:55 -0400 (EDT) Received: from smtpin13.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id 1B5851C26DA for ; Thu, 4 Jul 2024 04:31:55 +0000 (UTC) X-FDA: 82300797390.13.98B42B5 Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.223.130]) by imf16.hostedemail.com (Postfix) with ESMTP id 2CD5518000F for ; Thu, 4 Jul 2024 04:31:52 +0000 (UTC) Authentication-Results: imf16.hostedemail.com; dkim=none; dmarc=pass (policy=none) header.from=suse.de; spf=pass (imf16.hostedemail.com: domain of osalvador@suse.de designates 195.135.223.130 as permitted sender) smtp.mailfrom=osalvador@suse.de ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1720067485; 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=nyBJF39GEbKS17ntB3QbFSYVgzYMJUJU6NaPzZoN+pI=; b=7VgxWpTsm9yATIwBdQeqU3+jTdWUa00IelptqQJ5kaav2bjwZy9OuRpnKEkdQKAQLyrCgv aZN+cUBDbn1CgtU7zAM3JBVzUv6tZn/m4TXSLC6m2hA7n0SCBVzCRIlNfDyAe/ypypmXmk qJUdnRZbifKFh9lWStdt91cg4lpSMog= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1720067485; a=rsa-sha256; cv=none; b=GSl5EeMtGEPPIAQGjSubMjXaHhMrncIYFDEJ9tb5JqPU8bm/uV2u5bGlg3/PAchVL7X2pd aGRxoPylknBlzS4PwxBBAKXQvi1CbQ6Qwah5kKuwdk0hOhItgDcSU1aDIw6mytNnJweNh3 7V2KfFGucpqi0+AIjt2HxJD8ZcRirn0= ARC-Authentication-Results: i=1; imf16.hostedemail.com; dkim=none; dmarc=pass (policy=none) header.from=suse.de; spf=pass (imf16.hostedemail.com: domain of osalvador@suse.de designates 195.135.223.130 as permitted sender) smtp.mailfrom=osalvador@suse.de Received: from imap1.dmz-prg2.suse.org (imap1.dmz-prg2.suse.org [IPv6:2a07:de40:b281:104:10:150:64:97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by smtp-out1.suse.de (Postfix) with ESMTPS id D75C521C0D; Thu, 4 Jul 2024 04:31:51 +0000 (UTC) Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id B7C9513889; Thu, 4 Jul 2024 04:31:50 +0000 (UTC) Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167]) by imap1.dmz-prg2.suse.org with ESMTPSA id MGmJKLYlhmbnDAAAD6G6ig (envelope-from ); Thu, 04 Jul 2024 04:31:50 +0000 From: Oscar Salvador To: Andrew Morton Cc: linux-kernel@vger.kernel.org, linux-mm@kvack.org, Peter Xu , Muchun Song , David Hildenbrand , SeongJae Park , Miaohe Lin , Michal Hocko , Matthew Wilcox , Christophe Leroy , Oscar Salvador Subject: [PATCH 02/45] mm: Add {pmd,pud}_huge_lock helper Date: Thu, 4 Jul 2024 06:30:49 +0200 Message-ID: <20240704043132.28501-3-osalvador@suse.de> X-Mailer: git-send-email 2.44.0 In-Reply-To: <20240704043132.28501-1-osalvador@suse.de> References: <20240704043132.28501-1-osalvador@suse.de> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Rspamd-Pre-Result: action=no action; module=replies; Message is reply to one we originated X-Rspamd-Pre-Result: action=no action; module=replies; Message is reply to one we originated X-Rspamd-Action: no action X-Rspamd-Server: rspam07 X-Rspamd-Queue-Id: 2CD5518000F X-Stat-Signature: fsacsuyfqiz19wx9z58a4bicimrsbxer X-Rspam-User: X-HE-Tag: 1720067512-164932 X-HE-Meta: U2FsdGVkX19lfpg+ECVF+kP4FN9Nw7K6fR9mfaL2dyx2TXB7nzm6lfiw9ncuMwIP88Mhn5HPtz1XOJ9NlhNGjiGAdQnDwrp9ulcdRcu4tCJmDLt+l5gmahxQYhplUI6HkdOYnTYijpGSi0cAkvi9epP64GM89TBdrcw/i5L/jCe2ScyfWsG//2YgGUfZfu8Tcdsp9Oox2S7Z4BfnSo3elpA36PBLlUeYTK3C+1ROX9aO/ZiyELAccAvE+Hm5rVpiwVMw/JOXCDKzP0Pe/Wv35Y/GJesix6bx1MWcIZEqvPeVghgf1fAjGflzAoM0DGT5lwGW8q1Vc0v28QBmWkQP9b/3BF6fIICCiNURdT/Ng3UnrQZ40onQv9HobitGRtRaHF+jcVUXkQuKbNfzGB+cZg20bN9gVbKDxnVOxcRy0x9IV3fF1uYAn2T/gYzXO3cgIW4tfNCyKdPeA+xYwKRQLDv54ksXrjGPG+rYSPxH2vHxFJSI4DdCKqQ98lm44H9wd4O5F2yzQw0R6zmRHLA6W9ErZkLDVt+6d0ipf6IK6oLCdsghpV5ClXB8Xj3OQjUVku0O4tQgln+ABBtbXTnx3uZctbskSfW1VSByjot6YD2uLqsPseOgnBGhrYyGddoHblPg93lyXvQgCyvKhHq7EnBBboB2XWj9KjUuf8WrSn50PjdPnKqygYqlh/8a6n5hDNVNPuiTIVqS5InK0vVsDDN7RPLOgFvaWLDvrmmVDFOpT0GLlzIMyETeOEYq5vBG5ZdPGEDbKRnpXbbvm20UyFh4QPJr/MZxYgshRRtjpPYNB3jyG1pQnRBFKKmnmBauwcYtQi7eRjja046/wp87uUPsmRSv/sUKBEZJQh8E0SyaZJAhgGWK40zAZFq2CyWwAbh4Spg8iRnX0X7NDUyFuwceDuCnzROC9Ql8Fxyr2e8SSRuwbLZRh8dvNukEgoCNwiV0C0kmAzWlrOd6MWr rnwvWQA3 NvWQrRGJ/8DPAOxt++9De+yZnKitj3TujEC/k+CGgo001rfAELB+MJh2MTiTzHcrvUepQH7YTlRdGZXZh/Fs209FBV8A0Wl/NhcLWLvo48XDCames0zV9GkshIaSi2QBqAqlXey3ZVWCB8B2NjNOnv+PxH9J2sbmdC2m9iJoEVZTpB+k= 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: Deep down hugetlb and thp use the same lock for pud and pmd. Create two helpers that can be directly used by both of them, as they will be used in the generic pagewalkers. Signed-off-by: Oscar Salvador --- include/linux/mm_inline.h | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/include/linux/mm_inline.h b/include/linux/mm_inline.h index f4fe593c1400..93e3eb86ef4e 100644 --- a/include/linux/mm_inline.h +++ b/include/linux/mm_inline.h @@ -9,6 +9,7 @@ #include #include #include +#include /** * folio_is_file_lru - Should the folio be on a file LRU or anon LRU? @@ -590,4 +591,30 @@ static inline bool vma_has_recency(struct vm_area_struct *vma) return true; } +static inline spinlock_t *pmd_huge_lock(pmd_t *pmd, struct vm_area_struct *vma) +{ + spinlock_t *ptl; + + if (pmd_leaf(*pmd)) { + ptl = pmd_lock(vma->vm_mm, pmd); + if (pmd_leaf(*pmd)) + return ptl; + spin_unlock(ptl); + } + return NULL; +} + +static inline spinlock_t *pud_huge_lock(pud_t *pud, struct vm_area_struct *vma) +{ + spinlock_t *ptl = pud_lock(vma->vm_mm, pud); + + if (pud_leaf(*pud)) { + ptl = pud_lock(vma->vm_mm, pud); + if (pud_leaf(*pud)) + return ptl; + spin_unlock(ptl); + } + return NULL; +} + #endif -- 2.26.2