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 7FB8DC43334 for ; Tue, 28 Jun 2022 20:27:59 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id D0D468E0002; Tue, 28 Jun 2022 16:27:58 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id C963B8E0001; Tue, 28 Jun 2022 16:27:58 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id B36D78E0002; Tue, 28 Jun 2022 16:27:58 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id 9FFAE8E0001 for ; Tue, 28 Jun 2022 16:27:58 -0400 (EDT) Received: from smtpin13.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay12.hostedemail.com (Postfix) with ESMTP id 6C5A2122574 for ; Tue, 28 Jun 2022 20:27:58 +0000 (UTC) X-FDA: 79628781036.13.BE69506 Received: from mail-vs1-f42.google.com (mail-vs1-f42.google.com [209.85.217.42]) by imf12.hostedemail.com (Postfix) with ESMTP id 633ED40036 for ; Tue, 28 Jun 2022 20:27:57 +0000 (UTC) Received: by mail-vs1-f42.google.com with SMTP id j6so13190723vsi.0 for ; Tue, 28 Jun 2022 13:27:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=2jLxzzGBS8SBXC6kEJLju797m9m9QFRVwbOOwePPZP8=; b=FXKxKU9S+Ca0kD67fbB4DM3QhjswVAkP5EfG/bmwZd9+oS/viVeF0g3nMSgjbgBjQD BTm0nkhvSHeFop49uJLDPAH+QUnh6aSOMJA/pNg4SqNw0RnB/Pve0FNEiGCmoamXZ7qw CxodY02mcA0FwKCgEdmRhHse5+Oa/5nLGexobXlYHnZc+NDAbkWkwT05Cwd8JVb5kxRK h9htBiCNZp0kHS0yI7m32r4d9Wlsrv4v3yobGATxY9IKnHeZriW6HpjtIHCvDDj27Kjs Cm16lEcK50A6DI2PZRLp35l58GgOGYxYbqd2FoFliqSp2toRJeSPuLGP2Wt2LpJVXe11 0NXA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=2jLxzzGBS8SBXC6kEJLju797m9m9QFRVwbOOwePPZP8=; b=Fjs+LsHsuEROGlI4NhPGZmNDCNJJu561gwkLwjFQhd5Z/gv7+VE+H9YnQlE0sPTGnW Kb+iBeo+0QinkMMZqRv0+R5h93TYfykFBcdiDFNZCZTK21YqOtVH3IcTaCGhDyUNqa39 4axGRlsny6pSJjGeEcI4I3gv34PJ10ZW1Q68byUeSCkwzmfdSmOo4Jz9sB5kmoNIrSMF IoC2qyubRJS8OPFVY0gIHlOBssDWD4b0e79Wfd2FHM7/gAkB8hPUcfxhSDF6an4UEbHG 51UDm6kYW85DlyKo5sfqPrjEhikFGO2X9w3Ewqdz5iCZV1Sduwc6RZun1rZKQIDqRJ74 SZdg== X-Gm-Message-State: AJIora8FruHVr4VrACVjBppnMJ8sytFTYYj/nlDEPKPRDO4AAt/nmkiA urb7ZMermmbb2qKuM8HpdpaFLQNqAK+jNYOs7pXLIw== X-Google-Smtp-Source: AGRyM1uEm5rLU/ghy5u7cLmUbBpWxSZfpFCDhs61n6N0NJIXCa3r5y/zwUxUQOzoSpyd/kmgK7Wu2MgsrA2V7UQLYPE= X-Received: by 2002:a05:6102:101:b0:354:355b:711b with SMTP id z1-20020a056102010100b00354355b711bmr2710147vsq.61.1656448076572; Tue, 28 Jun 2022 13:27:56 -0700 (PDT) MIME-Version: 1.0 References: <20220624173656.2033256-1-jthoughton@google.com> <20220624173656.2033256-9-jthoughton@google.com> In-Reply-To: <20220624173656.2033256-9-jthoughton@google.com> From: Mina Almasry Date: Tue, 28 Jun 2022 13:27:44 -0700 Message-ID: Subject: Re: [RFC PATCH 08/26] hugetlb: add hugetlb_free_range to free PT structures To: James Houghton Cc: Mike Kravetz , Muchun Song , Peter Xu , David Hildenbrand , David Rientjes , Axel Rasmussen , Jue Wang , Manish Mishra , "Dr . David Alan Gilbert" , linux-mm@kvack.org, linux-kernel@vger.kernel.org Content-Type: text/plain; charset="UTF-8" ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1656448077; a=rsa-sha256; cv=none; b=WhQ1xqsQha0wmgqKxPhGkZ4T0UolHigNCUo6XSGbGH6Kdo/vgPDoPG+PTeEgam84SmMk2L N6hmd0bl9i2E8i29iNeGB56MEfb/i+ckgphaRXCzCHMTdmkFWJBVC7Z9Mmz34BLa02Re2V zj+6KUYCedjNpWo5G8b6fdI4iPF5M9A= ARC-Authentication-Results: i=1; imf12.hostedemail.com; dkim=pass header.d=google.com header.s=20210112 header.b=FXKxKU9S; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf12.hostedemail.com: domain of almasrymina@google.com designates 209.85.217.42 as permitted sender) smtp.mailfrom=almasrymina@google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1656448077; 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-type:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=2jLxzzGBS8SBXC6kEJLju797m9m9QFRVwbOOwePPZP8=; b=8p17fJF3J2ub1wYK/MJnloDSzfL1jMQF2rdJvMI3bH1JTykrQ9euPVtyVMuycgvz7l3rIq fC0HQYYKBZxAt4L3I2TXm/t71uu2Y1LHkzSHUD0tzuH+a/wJOYqdycSsMu4Bzr27nF2aYU BhWj8/91Uvv6k2IoZgJQMSKhNF8LEwI= X-Stat-Signature: zx59wun56mcogbexeets818fb1jjypay X-Rspam-User: X-Rspamd-Server: rspam07 X-Rspamd-Queue-Id: 633ED40036 Authentication-Results: imf12.hostedemail.com; dkim=pass header.d=google.com header.s=20210112 header.b=FXKxKU9S; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf12.hostedemail.com: domain of almasrymina@google.com designates 209.85.217.42 as permitted sender) smtp.mailfrom=almasrymina@google.com X-HE-Tag: 1656448077-458024 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: On Fri, Jun 24, 2022 at 10:37 AM James Houghton wrote: > > This is a helper function for freeing the bits of the page table that > map a particular HugeTLB PTE. > > Signed-off-by: James Houghton > --- > include/linux/hugetlb.h | 2 ++ > mm/hugetlb.c | 17 +++++++++++++++++ > 2 files changed, 19 insertions(+) > > diff --git a/include/linux/hugetlb.h b/include/linux/hugetlb.h > index 1d4ec9dfdebf..33ba48fac551 100644 > --- a/include/linux/hugetlb.h > +++ b/include/linux/hugetlb.h > @@ -107,6 +107,8 @@ bool hugetlb_pte_none_mostly(const struct hugetlb_pte *hpte); > pte_t hugetlb_ptep_get(const struct hugetlb_pte *hpte); > void hugetlb_pte_clear(struct mm_struct *mm, const struct hugetlb_pte *hpte, > unsigned long address); > +void hugetlb_free_range(struct mmu_gather *tlb, const struct hugetlb_pte *hpte, > + unsigned long start, unsigned long end); > > struct hugepage_subpool { > spinlock_t lock; > diff --git a/mm/hugetlb.c b/mm/hugetlb.c > index 1a1434e29740..a2d2ffa76173 100644 > --- a/mm/hugetlb.c > +++ b/mm/hugetlb.c > @@ -1120,6 +1120,23 @@ static bool vma_has_reserves(struct vm_area_struct *vma, long chg) > return false; > } > > +void hugetlb_free_range(struct mmu_gather *tlb, const struct hugetlb_pte *hpte, > + unsigned long start, unsigned long end) > +{ > + unsigned long floor = start & hugetlb_pte_mask(hpte); > + unsigned long ceiling = floor + hugetlb_pte_size(hpte); > + > + if (hugetlb_pte_size(hpte) >= PGDIR_SIZE) { > + free_p4d_range(tlb, (pgd_t *)hpte->ptep, start, end, floor, ceiling); > + } else if (hugetlb_pte_size(hpte) >= P4D_SIZE) { > + free_pud_range(tlb, (p4d_t *)hpte->ptep, start, end, floor, ceiling); > + } else if (hugetlb_pte_size(hpte) >= PUD_SIZE) { > + free_pmd_range(tlb, (pud_t *)hpte->ptep, start, end, floor, ceiling); > + } else if (hugetlb_pte_size(hpte) >= PMD_SIZE) { > + free_pte_range(tlb, (pmd_t *)hpte->ptep, start); > + } Same as the previous patch: I wonder about >=, and if possible calculate hugetlb_pte_size() once, or use *_SHIFT comparison. > +} > + > bool hugetlb_pte_present_leaf(const struct hugetlb_pte *hpte) > { > pgd_t pgd; > -- > 2.37.0.rc0.161.g10f37bed90-goog >