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 lists.ozlabs.org (lists.ozlabs.org [112.213.38.117]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id CEC04C54E58 for ; Mon, 18 Mar 2024 20:07:47 +0000 (UTC) Authentication-Results: lists.ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256 header.s=mimecast20190719 header.b=RghpMXmc; dkim=fail reason="signature verification failed" (1024-bit key) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256 header.s=mimecast20190719 header.b=RghpMXmc; dkim-atps=neutral Received: from boromir.ozlabs.org (localhost [IPv6:::1]) by lists.ozlabs.org (Postfix) with ESMTP id 4Tz5W63T1Dz3vkS for ; Tue, 19 Mar 2024 07:07:46 +1100 (AEDT) Authentication-Results: lists.ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256 header.s=mimecast20190719 header.b=RghpMXmc; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256 header.s=mimecast20190719 header.b=RghpMXmc; dkim-atps=neutral Authentication-Results: lists.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=redhat.com (client-ip=170.10.133.124; helo=us-smtp-delivery-124.mimecast.com; envelope-from=peterx@redhat.com; receiver=lists.ozlabs.org) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by lists.ozlabs.org (Postfix) with ESMTPS id 4Tz5R54Vlcz3cxn for ; Tue, 19 Mar 2024 07:04:16 +1100 (AEDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1710792254; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=vtZJyICZEGrBJHpYWSu5beimQ7UmPGzVa4S5UCB/Dcs=; b=RghpMXmcmYmGS250nfwprZ5nJJJW+A0lma9Zlm8Wkgxz67MnsHnDEQA5DCMVZAJOSn/5ru 2RWU/aoearGtLy1uLhnWHbO1FOgdYkAsU0ke1dTbn1a2Efh2uHpKd7BNiInMq7HVYaLRwp jzcZz1e0Db7llGdZGFFMxEI5T0x2sdk= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1710792254; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=vtZJyICZEGrBJHpYWSu5beimQ7UmPGzVa4S5UCB/Dcs=; b=RghpMXmcmYmGS250nfwprZ5nJJJW+A0lma9Zlm8Wkgxz67MnsHnDEQA5DCMVZAJOSn/5ru 2RWU/aoearGtLy1uLhnWHbO1FOgdYkAsU0ke1dTbn1a2Efh2uHpKd7BNiInMq7HVYaLRwp jzcZz1e0Db7llGdZGFFMxEI5T0x2sdk= Received: from mail-qt1-f198.google.com (mail-qt1-f198.google.com [209.85.160.198]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-512-EFk6ywdLOWidwzB41YyOnQ-1; Mon, 18 Mar 2024 16:04:13 -0400 X-MC-Unique: EFk6ywdLOWidwzB41YyOnQ-1 Received: by mail-qt1-f198.google.com with SMTP id d75a77b69052e-430c76df729so6672561cf.0 for ; Mon, 18 Mar 2024 13:04:13 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1710792252; x=1711397052; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=vtZJyICZEGrBJHpYWSu5beimQ7UmPGzVa4S5UCB/Dcs=; b=IOi0jm5jP4lvDw7KcFYbi+wZNiLEVXsxxQYpkB6W8OuAQu/H8TcdlG2NZAlzUllhFF G3+FKRe8td6NHl+FjyWJKeQzdfNakv54+YE7InZ1m19PCmuYxYdmOfna6ibWxXepnYmF rLG+OVkj47ajAbvs7iGkGFh6dXLAPLX5jTJx056Iq8v8Tjrw/hE0PjyMfYEkza9Mt8fr vTCoh6JgnqBdnB4mVFaZzjrIvg9/J2giEGYbS4PRF0CZljHTMqdedcx2BNyR4OwlC3Fk 4jraFpmNdH/+TEr0GI8EphRhfxuVBnp+UH9gy72roy+2u1CF/qxjLin88JicqocsnW5K MYig== X-Forwarded-Encrypted: i=1; AJvYcCUO8ZblfmBrSVAF2qbaWQ3AuKaxSsU7FRuEl+J37HQoguLhLI5/vTngmiDwWbfxq2lCYdQureQbEEV6QcLEkSuZUBPjunievL1Rkjs3SA== X-Gm-Message-State: AOJu0YzJTZkxJIwkOSurHE949lmbyEDC/8UmjDDDHDBeijD5lUsF/trt euGQ5JtJEZMpZZgPpyC1FTYOR7/EXipDOQan1bQ40/De3M81mmdpi8jYc8e9XVokkl2gP4qZc03 fORm7Jkq57EdjIRBflq0XI5z13p53by7QN3ymshLvExFqBpiHq8phlnh8GSeoR6g= X-Received: by 2002:a05:622a:134e:b0:430:c82f:b9ab with SMTP id w14-20020a05622a134e00b00430c82fb9abmr6625401qtk.0.1710792252304; Mon, 18 Mar 2024 13:04:12 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFopBSFWwBK3v15ombZ7ZQDo2UFCgzW4nradhEvm8gSdWhrm9dq3oWG6x2VBEnxvd6M1ShIXA== X-Received: by 2002:a05:622a:134e:b0:430:c82f:b9ab with SMTP id w14-20020a05622a134e00b00430c82fb9abmr6625362qtk.0.1710792251793; Mon, 18 Mar 2024 13:04:11 -0700 (PDT) Received: from x1n.. ([99.254.121.117]) by smtp.gmail.com with ESMTPSA id hj10-20020a05622a620a00b0042ebbc1196fsm3484491qtb.87.2024.03.18.13.04.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 18 Mar 2024 13:04:11 -0700 (PDT) From: peterx@redhat.com To: linux-kernel@vger.kernel.org, linux-mm@kvack.org Subject: [PATCH v2 04/14] mm/x86: Change pXd_huge() behavior to exclude swap entries Date: Mon, 18 Mar 2024 16:03:54 -0400 Message-ID: <20240318200404.448346-5-peterx@redhat.com> X-Mailer: git-send-email 2.44.0 In-Reply-To: <20240318200404.448346-1-peterx@redhat.com> References: <20240318200404.448346-1-peterx@redhat.com> MIME-Version: 1.0 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: linuxppc-dev@lists.ozlabs.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Linux on PowerPC Developers Mail List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: linux-arm-kernel@lists.infradead.org, Muchun Song , x86@kernel.org, Naoya Horiguchi , Matthew Wilcox , Dave Hansen , peterx@redhat.com, Ingo Molnar , Borislav Petkov , Jason Gunthorpe , sparclinux@vger.kernel.org, Andrew Morton , linuxppc-dev@lists.ozlabs.org, Thomas Gleixner , Mike Rapoport Errors-To: linuxppc-dev-bounces+linuxppc-dev=archiver.kernel.org@lists.ozlabs.org Sender: "Linuxppc-dev" From: Peter Xu This patch partly reverts below commits: 3a194f3f8ad0 ("mm/hugetlb: make pud_huge() and follow_huge_pud() aware of non-present pud entry") cbef8478bee5 ("mm/hugetlb: pmd_huge() returns true for non-present hugepage") Right now, pXd_huge() definition across kernel is unclear. We have two groups that think differently on swap entries: - x86/sparc: Allow pXd_huge() to accept swap entries - all the rest: Doesn't allow pXd_huge() to accept swap entries This is so confusing. Since the sparc helpers seem to be added in 2016, which is after x86's (2015), so sparc could have followed a trend. x86 proposed such swap handling in 2015 to resolve hugetlb swap entries hit in GUP, but now GUP guards swap entries with !pXd_present() in all layers so we should be safe. We should define this API properly, one way or another, rather than keep them defined differently across archs. Gut feeling tells me that pXd_huge() shouldn't include swap entries, and it turns out that I am not the only one thinking so, the question was raised when the current pmd_huge() for x86 was proposed by Ville Syrjälä: https://lore.kernel.org/all/Y2WQ7I4LXh8iUIRd@intel.com/ I might also be missing something obvious, but why is it even necessary to treat PRESENT==0+PSE==0 as a huge entry? It is also questioned when Jason Gunthorpe reviewed the other patchset on swap entry handlings: https://lore.kernel.org/all/20240221125753.GQ13330@nvidia.com/ Revert its meaning back to original. It shouldn't have any functional change as we should be ready with guards on !pXd_present() explicitly everywhere. Note that I also dropped the "#if CONFIG_PGTABLE_LEVELS > 2", it was there probably because it was breaking things when 3a194f3f8ad0 was proposed, according to the report here: https://lore.kernel.org/all/Y2LYXItKQyaJTv8j@intel.com/ Now we shouldn't need that. Instead of reverting to _PAGE_PSE raw check, leverage pXd_leaf(). Cc: Naoya Horiguchi Cc: Thomas Gleixner Cc: Ingo Molnar Cc: Borislav Petkov Cc: Dave Hansen Cc: x86@kernel.org Signed-off-by: Peter Xu --- arch/x86/mm/hugetlbpage.c | 18 ++++-------------- 1 file changed, 4 insertions(+), 14 deletions(-) diff --git a/arch/x86/mm/hugetlbpage.c b/arch/x86/mm/hugetlbpage.c index 5804bbae4f01..8362953a24ce 100644 --- a/arch/x86/mm/hugetlbpage.c +++ b/arch/x86/mm/hugetlbpage.c @@ -20,29 +20,19 @@ #include /* - * pmd_huge() returns 1 if @pmd is hugetlb related entry, that is normal - * hugetlb entry or non-present (migration or hwpoisoned) hugetlb entry. - * Otherwise, returns 0. + * pmd_huge() returns 1 if @pmd is hugetlb related entry. */ int pmd_huge(pmd_t pmd) { - return !pmd_none(pmd) && - (pmd_val(pmd) & (_PAGE_PRESENT|_PAGE_PSE)) != _PAGE_PRESENT; + return pmd_leaf(pmd); } /* - * pud_huge() returns 1 if @pud is hugetlb related entry, that is normal - * hugetlb entry or non-present (migration or hwpoisoned) hugetlb entry. - * Otherwise, returns 0. + * pud_huge() returns 1 if @pud is hugetlb related entry. */ int pud_huge(pud_t pud) { -#if CONFIG_PGTABLE_LEVELS > 2 - return !pud_none(pud) && - (pud_val(pud) & (_PAGE_PRESENT|_PAGE_PSE)) != _PAGE_PRESENT; -#else - return 0; -#endif + return pud_leaf(pud); } #ifdef CONFIG_HUGETLB_PAGE -- 2.44.0 From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 4966559B45 for ; Mon, 18 Mar 2024 20:04:17 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=170.10.133.124 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1710792259; cv=none; b=iKMManAnQMnAdyPUGuFqWnH6jAB2nyJ+UjR/mYrgM5cEM0A4mSH3L7uFgz7u2orxkw0EFuSIB2t2+x5l8iqedpp4ijWrDN7PfkBYfvK9QQAkLFH3pFESyqXOWueBQo0CuQoi4UMpzQNP5T+qLX4Ljs6KIhme49aKIhbl6B0w52c= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1710792259; c=relaxed/simple; bh=xsXv+igcIa2LD7vY6Lm1s+FcdmOPBabwjo2Ma8p3Wuc=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=aswT2bTNJ+w4H11xCOekzGvKu2wcV+IF6Gr1g+FsijB08coKTxI1LADLWx6cbmZ8tKJN8WCFsJI201/+2ompB1iMw5RRKa5odfF0tR3Akf/3/jHemVI+t28scGy5zB1LUrBYV0ROh+u4XkQ7c1N1pDOcam5qsfnCAIpRYbPSpJQ= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=redhat.com; spf=pass smtp.mailfrom=redhat.com; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b=W0mfFgrA; arc=none smtp.client-ip=170.10.133.124 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=redhat.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=redhat.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="W0mfFgrA" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1710792256; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=vtZJyICZEGrBJHpYWSu5beimQ7UmPGzVa4S5UCB/Dcs=; b=W0mfFgrAAF0QEJSOfcIdppmnlAqK4FRZymZyXAsNTET52OE0pLJiKs1I209fUq0NFGxzaA aGO1/XENKw0MK6Isp1yvRyUfJSq70rAEejAvVtdAuKUue/xi9vK9LGEdNj0432Nw7sguVS OaM/SKdCMV9JL0QZuWcbLHupBaeM8Nw= Received: from mail-qt1-f200.google.com (mail-qt1-f200.google.com [209.85.160.200]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-246-RSElcEDjO_OWdLmANG6yQA-1; Mon, 18 Mar 2024 16:04:12 -0400 X-MC-Unique: RSElcEDjO_OWdLmANG6yQA-1 Received: by mail-qt1-f200.google.com with SMTP id d75a77b69052e-430b4572a97so17522921cf.1 for ; Mon, 18 Mar 2024 13:04:12 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1710792252; x=1711397052; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=vtZJyICZEGrBJHpYWSu5beimQ7UmPGzVa4S5UCB/Dcs=; b=IVzpSbvwOcHeFlg8J5tpENT8DJ0VJQ4nJlVFY/MlWdAASxLwIh+ssh2AREF809O3gB jYTDghO6aFdUffaRCp1GRb9g60Tgt6c7AKKYe3erbpWmW2aVoh/vIw1PN9M1KgJu1RuV me/HAcQ8b0890hd8G+49Dy8p4MfR9XXh+Yg7UpbXT16B/1Kzl7j5A3dBqKFI6U7okWIy ICYOH0IK8Bc+lqTT0BX9y/rr6LrYqoe67ca7qZYTOWchpeL12tlJD0xyrfuP6zeKPTIz +2hJp80CuP07v+BIsZXkkFt5TuRETl2796vHxZ7yj0lguMKi0yBAQZxmnWWz0u1v+Em2 vtxQ== X-Forwarded-Encrypted: i=1; AJvYcCXqYr+pqeqlKeXUBHKhw2rouYAxwVUM5PkvL+SsKODv7/msUCkeH3S1E10eiTlY4cWP9Xncu7s6Eh9n7zu6Rf5xdmzne+yl3u/hRw== X-Gm-Message-State: AOJu0YzpB+U2BrxwQ8niQp/AdocNWin3uSoHvfj3gwCiFUlkh50DTMOq qRIFdDW1aqELI8jvxd7L24Y+G4Xt9x2uUcYAfmXfWGKLafoGO5V4kz83Axt+f4zQInpwAwEp80c bfQ1eIInWsiq0GKJsW7MBH7lcTnHE4dT6Pmuun58RtJPdnJq3Kl2hiaskwT8= X-Received: by 2002:a05:622a:134e:b0:430:c82f:b9ab with SMTP id w14-20020a05622a134e00b00430c82fb9abmr6625397qtk.0.1710792252297; Mon, 18 Mar 2024 13:04:12 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFopBSFWwBK3v15ombZ7ZQDo2UFCgzW4nradhEvm8gSdWhrm9dq3oWG6x2VBEnxvd6M1ShIXA== X-Received: by 2002:a05:622a:134e:b0:430:c82f:b9ab with SMTP id w14-20020a05622a134e00b00430c82fb9abmr6625362qtk.0.1710792251793; Mon, 18 Mar 2024 13:04:11 -0700 (PDT) Received: from x1n.. ([99.254.121.117]) by smtp.gmail.com with ESMTPSA id hj10-20020a05622a620a00b0042ebbc1196fsm3484491qtb.87.2024.03.18.13.04.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 18 Mar 2024 13:04:11 -0700 (PDT) From: peterx@redhat.com To: linux-kernel@vger.kernel.org, linux-mm@kvack.org Cc: Andrew Morton , x86@kernel.org, Muchun Song , Mike Rapoport , Matthew Wilcox , sparclinux@vger.kernel.org, Jason Gunthorpe , linuxppc-dev@lists.ozlabs.org, Christophe Leroy , linux-arm-kernel@lists.infradead.org, peterx@redhat.com, Naoya Horiguchi , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Dave Hansen Subject: [PATCH v2 04/14] mm/x86: Change pXd_huge() behavior to exclude swap entries Date: Mon, 18 Mar 2024 16:03:54 -0400 Message-ID: <20240318200404.448346-5-peterx@redhat.com> X-Mailer: git-send-email 2.44.0 In-Reply-To: <20240318200404.448346-1-peterx@redhat.com> References: <20240318200404.448346-1-peterx@redhat.com> Precedence: bulk X-Mailing-List: sparclinux@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit From: Peter Xu This patch partly reverts below commits: 3a194f3f8ad0 ("mm/hugetlb: make pud_huge() and follow_huge_pud() aware of non-present pud entry") cbef8478bee5 ("mm/hugetlb: pmd_huge() returns true for non-present hugepage") Right now, pXd_huge() definition across kernel is unclear. We have two groups that think differently on swap entries: - x86/sparc: Allow pXd_huge() to accept swap entries - all the rest: Doesn't allow pXd_huge() to accept swap entries This is so confusing. Since the sparc helpers seem to be added in 2016, which is after x86's (2015), so sparc could have followed a trend. x86 proposed such swap handling in 2015 to resolve hugetlb swap entries hit in GUP, but now GUP guards swap entries with !pXd_present() in all layers so we should be safe. We should define this API properly, one way or another, rather than keep them defined differently across archs. Gut feeling tells me that pXd_huge() shouldn't include swap entries, and it turns out that I am not the only one thinking so, the question was raised when the current pmd_huge() for x86 was proposed by Ville Syrjälä: https://lore.kernel.org/all/Y2WQ7I4LXh8iUIRd@intel.com/ I might also be missing something obvious, but why is it even necessary to treat PRESENT==0+PSE==0 as a huge entry? It is also questioned when Jason Gunthorpe reviewed the other patchset on swap entry handlings: https://lore.kernel.org/all/20240221125753.GQ13330@nvidia.com/ Revert its meaning back to original. It shouldn't have any functional change as we should be ready with guards on !pXd_present() explicitly everywhere. Note that I also dropped the "#if CONFIG_PGTABLE_LEVELS > 2", it was there probably because it was breaking things when 3a194f3f8ad0 was proposed, according to the report here: https://lore.kernel.org/all/Y2LYXItKQyaJTv8j@intel.com/ Now we shouldn't need that. Instead of reverting to _PAGE_PSE raw check, leverage pXd_leaf(). Cc: Naoya Horiguchi Cc: Thomas Gleixner Cc: Ingo Molnar Cc: Borislav Petkov Cc: Dave Hansen Cc: x86@kernel.org Signed-off-by: Peter Xu --- arch/x86/mm/hugetlbpage.c | 18 ++++-------------- 1 file changed, 4 insertions(+), 14 deletions(-) diff --git a/arch/x86/mm/hugetlbpage.c b/arch/x86/mm/hugetlbpage.c index 5804bbae4f01..8362953a24ce 100644 --- a/arch/x86/mm/hugetlbpage.c +++ b/arch/x86/mm/hugetlbpage.c @@ -20,29 +20,19 @@ #include /* - * pmd_huge() returns 1 if @pmd is hugetlb related entry, that is normal - * hugetlb entry or non-present (migration or hwpoisoned) hugetlb entry. - * Otherwise, returns 0. + * pmd_huge() returns 1 if @pmd is hugetlb related entry. */ int pmd_huge(pmd_t pmd) { - return !pmd_none(pmd) && - (pmd_val(pmd) & (_PAGE_PRESENT|_PAGE_PSE)) != _PAGE_PRESENT; + return pmd_leaf(pmd); } /* - * pud_huge() returns 1 if @pud is hugetlb related entry, that is normal - * hugetlb entry or non-present (migration or hwpoisoned) hugetlb entry. - * Otherwise, returns 0. + * pud_huge() returns 1 if @pud is hugetlb related entry. */ int pud_huge(pud_t pud) { -#if CONFIG_PGTABLE_LEVELS > 2 - return !pud_none(pud) && - (pud_val(pud) & (_PAGE_PRESENT|_PAGE_PSE)) != _PAGE_PRESENT; -#else - return 0; -#endif + return pud_leaf(pud); } #ifdef CONFIG_HUGETLB_PAGE -- 2.44.0 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 bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 9F18DC54E69 for ; Mon, 18 Mar 2024 20:04:54 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-ID:Date:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=aynXyY1yjiWgigAcZfUJjD6IjSsGTl5MPdxZk4MQq7Q=; b=JKclD66XgFw3zH EINcVxBt+zzzCptwOj2nin/KVZyBFxuya28XDsWlEKSWdNDTfdjW7LFChOsY5CZ3SzeYTpNJLRvKW dBN4hhGVINwBnkdQqy8ScR5B27DdW2aZfYuh8lOkZVEy3tkyPc3yFp6RsS4ckvsZ8aUhiHAgnvCI8 mDULs0j4joJyQ7xOsNozCSo2G+Csm942CBH3LT68KJraxlalkJMJWlILtfXoOejiJ/SIojY1qkvEM nLkr5pFA9L649J51bK7900kyurCqEn+javMR32M9Icgj2McUkx5Czjsn2ikGAchAVLwlLCaPeSkcR ezQMQUtxKtBsl74Hm3LA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1rmJDs-00000009xMc-3j5j; Mon, 18 Mar 2024 20:04:40 +0000 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1rmJDT-00000009wyd-0hln for linux-arm-kernel@lists.infradead.org; Mon, 18 Mar 2024 20:04:17 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1710792254; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=vtZJyICZEGrBJHpYWSu5beimQ7UmPGzVa4S5UCB/Dcs=; b=RghpMXmcmYmGS250nfwprZ5nJJJW+A0lma9Zlm8Wkgxz67MnsHnDEQA5DCMVZAJOSn/5ru 2RWU/aoearGtLy1uLhnWHbO1FOgdYkAsU0ke1dTbn1a2Efh2uHpKd7BNiInMq7HVYaLRwp jzcZz1e0Db7llGdZGFFMxEI5T0x2sdk= Received: from mail-qt1-f200.google.com (mail-qt1-f200.google.com [209.85.160.200]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-138-VWAvhicHMt2aKJsslkrGqA-1; Mon, 18 Mar 2024 16:04:13 -0400 X-MC-Unique: VWAvhicHMt2aKJsslkrGqA-1 Received: by mail-qt1-f200.google.com with SMTP id d75a77b69052e-430b4572a97so17523011cf.1 for ; Mon, 18 Mar 2024 13:04:13 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1710792252; x=1711397052; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=vtZJyICZEGrBJHpYWSu5beimQ7UmPGzVa4S5UCB/Dcs=; b=NleBqg/lIdrUs/2Ey02FNbejPKqedaitKzxFkIuPCNJvdFZefLE85n8h/j2LEmzFTk si3AZc1Ey2cFR4OQW8Iiluq2a78c/BbVjiAgtddGcGFLsNbp/CJizsYEPqJ5bP/fEXZc MzjEbQQsk+PlZ5On0S28yGHdDf0Pw6kWxH0XsRY1D5GTBOCp5PoiV8G76lfclvcK1b9Q gk9GtZgK+qT9OWgtjFtfpNqZcu5LFAAQhX5owC78yEa0djTzgSb6h8Ez6U5W9p0VZVJr /SbySYNaCbrFJ6pDfr6wOuoqp3FPOhn9o6dUwJjn1shLm76vST0YAE6piJ6RWrFp8ZXX T2Vw== X-Forwarded-Encrypted: i=1; AJvYcCUwTAs3027fQgtbO2EJ0gPS51KXG+4JDjOzgpTt+QTgcSw7Kdp3Id8BRU38jZCyk/nFc9OhwKgg75Sxn56N2l6j3yL+j6VwDLBQETNUWRoELwNUzR4= X-Gm-Message-State: AOJu0YyhzynTKbD4bg/5Zob6ZoTjF6uzynlJ0ycTpruk2UfP5yhz9Gtl adhFFblXSc2NwX3M4GQ4lgqWVj8pkE0bZ/YHCvC4xJFYcOXPi5Qf/0NTqD/WKNK1JscHTZHQd8V gCI1RWmO13uIji7qR8hONRUn7ANG2LR3yib2L1BZr4IVNZUCl2BWfjXtfcyyQCGkivN2mR1gS X-Received: by 2002:a05:622a:134e:b0:430:c82f:b9ab with SMTP id w14-20020a05622a134e00b00430c82fb9abmr6625412qtk.0.1710792252327; Mon, 18 Mar 2024 13:04:12 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFopBSFWwBK3v15ombZ7ZQDo2UFCgzW4nradhEvm8gSdWhrm9dq3oWG6x2VBEnxvd6M1ShIXA== X-Received: by 2002:a05:622a:134e:b0:430:c82f:b9ab with SMTP id w14-20020a05622a134e00b00430c82fb9abmr6625362qtk.0.1710792251793; Mon, 18 Mar 2024 13:04:11 -0700 (PDT) Received: from x1n.. ([99.254.121.117]) by smtp.gmail.com with ESMTPSA id hj10-20020a05622a620a00b0042ebbc1196fsm3484491qtb.87.2024.03.18.13.04.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 18 Mar 2024 13:04:11 -0700 (PDT) From: peterx@redhat.com To: linux-kernel@vger.kernel.org, linux-mm@kvack.org Cc: Andrew Morton , x86@kernel.org, Muchun Song , Mike Rapoport , Matthew Wilcox , sparclinux@vger.kernel.org, Jason Gunthorpe , linuxppc-dev@lists.ozlabs.org, Christophe Leroy , linux-arm-kernel@lists.infradead.org, peterx@redhat.com, Naoya Horiguchi , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Dave Hansen Subject: [PATCH v2 04/14] mm/x86: Change pXd_huge() behavior to exclude swap entries Date: Mon, 18 Mar 2024 16:03:54 -0400 Message-ID: <20240318200404.448346-5-peterx@redhat.com> X-Mailer: git-send-email 2.44.0 In-Reply-To: <20240318200404.448346-1-peterx@redhat.com> References: <20240318200404.448346-1-peterx@redhat.com> MIME-Version: 1.0 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240318_130415_294506_D3A3791D X-CRM114-Status: GOOD ( 19.33 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org RnJvbTogUGV0ZXIgWHUgPHBldGVyeEByZWRoYXQuY29tPgoKVGhpcyBwYXRjaCBwYXJ0bHkgcmV2 ZXJ0cyBiZWxvdyBjb21taXRzOgoKM2ExOTRmM2Y4YWQwICgibW0vaHVnZXRsYjogbWFrZSBwdWRf aHVnZSgpIGFuZCBmb2xsb3dfaHVnZV9wdWQoKSBhd2FyZSBvZiBub24tcHJlc2VudCBwdWQgZW50 cnkiKQpjYmVmODQ3OGJlZTUgKCJtbS9odWdldGxiOiBwbWRfaHVnZSgpIHJldHVybnMgdHJ1ZSBm b3Igbm9uLXByZXNlbnQgaHVnZXBhZ2UiKQoKUmlnaHQgbm93LCBwWGRfaHVnZSgpIGRlZmluaXRp b24gYWNyb3NzIGtlcm5lbCBpcyB1bmNsZWFyLiBXZSBoYXZlIHR3bwpncm91cHMgdGhhdCB0aGlu ayBkaWZmZXJlbnRseSBvbiBzd2FwIGVudHJpZXM6CgogIC0geDg2L3NwYXJjOiAgICAgQWxsb3cg cFhkX2h1Z2UoKSB0byBhY2NlcHQgc3dhcCBlbnRyaWVzCiAgLSBhbGwgdGhlIHJlc3Q6ICBEb2Vz bid0IGFsbG93IHBYZF9odWdlKCkgdG8gYWNjZXB0IHN3YXAgZW50cmllcwoKVGhpcyBpcyBzbyBj b25mdXNpbmcuICBTaW5jZSB0aGUgc3BhcmMgaGVscGVycyBzZWVtIHRvIGJlIGFkZGVkIGluIDIw MTYsCndoaWNoIGlzIGFmdGVyIHg4NidzICgyMDE1KSwgc28gc3BhcmMgY291bGQgaGF2ZSBmb2xs b3dlZCBhIHRyZW5kLiAgeDg2CnByb3Bvc2VkIHN1Y2ggc3dhcCBoYW5kbGluZyBpbiAyMDE1IHRv IHJlc29sdmUgaHVnZXRsYiBzd2FwIGVudHJpZXMgaGl0IGluCkdVUCwgYnV0IG5vdyBHVVAgZ3Vh cmRzIHN3YXAgZW50cmllcyB3aXRoICFwWGRfcHJlc2VudCgpIGluIGFsbCBsYXllcnMgc28Kd2Ug c2hvdWxkIGJlIHNhZmUuCgpXZSBzaG91bGQgZGVmaW5lIHRoaXMgQVBJIHByb3Blcmx5LCBvbmUg d2F5IG9yIGFub3RoZXIsIHJhdGhlciB0aGFuIGtlZXAKdGhlbSBkZWZpbmVkIGRpZmZlcmVudGx5 IGFjcm9zcyBhcmNocy4KCkd1dCBmZWVsaW5nIHRlbGxzIG1lIHRoYXQgcFhkX2h1Z2UoKSBzaG91 bGRuJ3QgaW5jbHVkZSBzd2FwIGVudHJpZXMsIGFuZCBpdAp0dXJucyBvdXQgdGhhdCBJIGFtIG5v dCB0aGUgb25seSBvbmUgdGhpbmtpbmcgc28sIHRoZSBxdWVzdGlvbiB3YXMgcmFpc2VkCndoZW4g dGhlIGN1cnJlbnQgcG1kX2h1Z2UoKSBmb3IgeDg2IHdhcyBwcm9wb3NlZCBieSBWaWxsZSBTeXJq w6Rsw6Q6CgpodHRwczovL2xvcmUua2VybmVsLm9yZy9hbGwvWTJXUTdJNExYaDhpVUlSZEBpbnRl bC5jb20vCgogIEkgbWlnaHQgYWxzbyBiZSBtaXNzaW5nIHNvbWV0aGluZyBvYnZpb3VzLCBidXQg d2h5IGlzIGl0IGV2ZW4gbmVjZXNzYXJ5CiAgdG8gdHJlYXQgUFJFU0VOVD09MCtQU0U9PTAgYXMg YSBodWdlIGVudHJ5PwoKSXQgaXMgYWxzbyBxdWVzdGlvbmVkIHdoZW4gSmFzb24gR3VudGhvcnBl IHJldmlld2VkIHRoZSBvdGhlciBwYXRjaHNldCBvbgpzd2FwIGVudHJ5IGhhbmRsaW5nczoKCmh0 dHBzOi8vbG9yZS5rZXJuZWwub3JnL2FsbC8yMDI0MDIyMTEyNTc1My5HUTEzMzMwQG52aWRpYS5j b20vCgpSZXZlcnQgaXRzIG1lYW5pbmcgYmFjayB0byBvcmlnaW5hbC4gIEl0IHNob3VsZG4ndCBo YXZlIGFueSBmdW5jdGlvbmFsCmNoYW5nZSBhcyB3ZSBzaG91bGQgYmUgcmVhZHkgd2l0aCBndWFy ZHMgb24gIXBYZF9wcmVzZW50KCkgZXhwbGljaXRseQpldmVyeXdoZXJlLgoKTm90ZSB0aGF0IEkg YWxzbyBkcm9wcGVkIHRoZSAiI2lmIENPTkZJR19QR1RBQkxFX0xFVkVMUyA+IDIiLCBpdCB3YXMg dGhlcmUKcHJvYmFibHkgYmVjYXVzZSBpdCB3YXMgYnJlYWtpbmcgdGhpbmdzIHdoZW4gM2ExOTRm M2Y4YWQwIHdhcyBwcm9wb3NlZCwKYWNjb3JkaW5nIHRvIHRoZSByZXBvcnQgaGVyZToKCmh0dHBz Oi8vbG9yZS5rZXJuZWwub3JnL2FsbC9ZMkxZWEl0S1F5YUpUdjhqQGludGVsLmNvbS8KCk5vdyB3 ZSBzaG91bGRuJ3QgbmVlZCB0aGF0LgoKSW5zdGVhZCBvZiByZXZlcnRpbmcgdG8gX1BBR0VfUFNF IHJhdyBjaGVjaywgbGV2ZXJhZ2UgcFhkX2xlYWYoKS4KCkNjOiBOYW95YSBIb3JpZ3VjaGkgPG5h b3lhLmhvcmlndWNoaUBuZWMuY29tPgpDYzogVGhvbWFzIEdsZWl4bmVyIDx0Z2x4QGxpbnV0cm9u aXguZGU+CkNjOiBJbmdvIE1vbG5hciA8bWluZ29AcmVkaGF0LmNvbT4KQ2M6IEJvcmlzbGF2IFBl dGtvdiA8YnBAYWxpZW44LmRlPgpDYzogRGF2ZSBIYW5zZW4gPGRhdmUuaGFuc2VuQGxpbnV4Lmlu dGVsLmNvbT4KQ2M6IHg4NkBrZXJuZWwub3JnClNpZ25lZC1vZmYtYnk6IFBldGVyIFh1IDxwZXRl cnhAcmVkaGF0LmNvbT4KLS0tCiBhcmNoL3g4Ni9tbS9odWdldGxicGFnZS5jIHwgMTggKysrKy0t LS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgNCBpbnNlcnRpb25zKCspLCAxNCBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9tbS9odWdldGxicGFnZS5jIGIvYXJjaC94ODYv bW0vaHVnZXRsYnBhZ2UuYwppbmRleCA1ODA0YmJhZTRmMDEuLjgzNjI5NTNhMjRjZSAxMDA2NDQK LS0tIGEvYXJjaC94ODYvbW0vaHVnZXRsYnBhZ2UuYworKysgYi9hcmNoL3g4Ni9tbS9odWdldGxi cGFnZS5jCkBAIC0yMCwyOSArMjAsMTkgQEAKICNpbmNsdWRlIDxhc20vZWxmLmg+CiAKIC8qCi0g KiBwbWRfaHVnZSgpIHJldHVybnMgMSBpZiBAcG1kIGlzIGh1Z2V0bGIgcmVsYXRlZCBlbnRyeSwg dGhhdCBpcyBub3JtYWwKLSAqIGh1Z2V0bGIgZW50cnkgb3Igbm9uLXByZXNlbnQgKG1pZ3JhdGlv biBvciBod3BvaXNvbmVkKSBodWdldGxiIGVudHJ5LgotICogT3RoZXJ3aXNlLCByZXR1cm5zIDAu CisgKiBwbWRfaHVnZSgpIHJldHVybnMgMSBpZiBAcG1kIGlzIGh1Z2V0bGIgcmVsYXRlZCBlbnRy eS4KICAqLwogaW50IHBtZF9odWdlKHBtZF90IHBtZCkKIHsKLQlyZXR1cm4gIXBtZF9ub25lKHBt ZCkgJiYKLQkJKHBtZF92YWwocG1kKSAmIChfUEFHRV9QUkVTRU5UfF9QQUdFX1BTRSkpICE9IF9Q QUdFX1BSRVNFTlQ7CisJcmV0dXJuIHBtZF9sZWFmKHBtZCk7CiB9CiAKIC8qCi0gKiBwdWRfaHVn ZSgpIHJldHVybnMgMSBpZiBAcHVkIGlzIGh1Z2V0bGIgcmVsYXRlZCBlbnRyeSwgdGhhdCBpcyBu b3JtYWwKLSAqIGh1Z2V0bGIgZW50cnkgb3Igbm9uLXByZXNlbnQgKG1pZ3JhdGlvbiBvciBod3Bv aXNvbmVkKSBodWdldGxiIGVudHJ5LgotICogT3RoZXJ3aXNlLCByZXR1cm5zIDAuCisgKiBwdWRf aHVnZSgpIHJldHVybnMgMSBpZiBAcHVkIGlzIGh1Z2V0bGIgcmVsYXRlZCBlbnRyeS4KICAqLwog aW50IHB1ZF9odWdlKHB1ZF90IHB1ZCkKIHsKLSNpZiBDT05GSUdfUEdUQUJMRV9MRVZFTFMgPiAy Ci0JcmV0dXJuICFwdWRfbm9uZShwdWQpICYmCi0JCShwdWRfdmFsKHB1ZCkgJiAoX1BBR0VfUFJF U0VOVHxfUEFHRV9QU0UpKSAhPSBfUEFHRV9QUkVTRU5UOwotI2Vsc2UKLQlyZXR1cm4gMDsKLSNl bmRpZgorCXJldHVybiBwdWRfbGVhZihwdWQpOwogfQogCiAjaWZkZWYgQ09ORklHX0hVR0VUTEJf UEFHRQotLSAKMi40NC4wCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KbGludXgtYXJtLWtlcm5lbCBtYWlsaW5nIGxpc3QKbGludXgtYXJtLWtlcm5lbEBs aXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlz dGluZm8vbGludXgtYXJtLWtlcm5lbAo=