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 3A2FCC8302D for ; Mon, 30 Jun 2025 09:32:52 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id BD6FD6B007B; Mon, 30 Jun 2025 05:32:51 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id B87956B00A1; Mon, 30 Jun 2025 05:32:51 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id A4F276B00A3; Mon, 30 Jun 2025 05:32:51 -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 8BE376B007B for ; Mon, 30 Jun 2025 05:32:51 -0400 (EDT) Received: from smtpin13.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id 0123A16043E for ; Mon, 30 Jun 2025 09:32:50 +0000 (UTC) X-FDA: 83611552542.13.A31D8CB Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by imf03.hostedemail.com (Postfix) with ESMTP id 941EE2000B for ; Mon, 30 Jun 2025 09:32:48 +0000 (UTC) Authentication-Results: imf03.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=Ocb6Wcbk; spf=pass (imf03.hostedemail.com: domain of david@redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=david@redhat.com; dmarc=pass (policy=quarantine) header.from=redhat.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1751275968; 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:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=yeq7h6rzcYIeNa1V1io9unzazS87D3gz4zthrzuogQ8=; b=3OZ+/nXswM1uCQaZ1wD8Jt0UUJLzb+VNumWM9Tg5IQr/KeRRg0lsTGjsUQJxrHrr4XCQvm fP1qT/aOrAakKCw5whc71HoskeOnrNtyb6g25c/dDSsSUiVj5G9NLknk2WqLjLJ+RHZPjv EwZNz9FVo6b5CGfEe3UBINESM/IvNP8= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1751275968; a=rsa-sha256; cv=none; b=O59RQ9itagTB2h7+BSeEzdnavdW0VpsnEn4Mi/jG198AAVugnthzHeUTsh/3tAW68Dre07 a1ReZ8HJHXb/SdtmpPH4x3utSgkNpJfux7dpNXlZvAqfDRCFeeSsEcN2ozkiyghZRhw7eQ B02+j7IS/v6FjZarE0e5aBD3NAIBjA8= ARC-Authentication-Results: i=1; imf03.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=Ocb6Wcbk; spf=pass (imf03.hostedemail.com: domain of david@redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=david@redhat.com; dmarc=pass (policy=quarantine) header.from=redhat.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1751275967; 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:autocrypt:autocrypt; bh=yeq7h6rzcYIeNa1V1io9unzazS87D3gz4zthrzuogQ8=; b=Ocb6WcbkzEB3C/1+6QK7+tjDmNOBhtQN0PK5u2BAmEZttiAfgYrPzs+XcweDRlMEMaUITT 3Nm22jegwkppn4McPg7RvKh+vlSoivk9EXr4KdGOT4FrzJQQLdIhhbwRucifdA7yyMiGXT tyrJUoGuW/YJ5CWP+SuPNOdrR0zWbx0= Received: from mail-qv1-f69.google.com (mail-qv1-f69.google.com [209.85.219.69]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-27-Na43R38WN5izbqxp1-oXCw-1; Mon, 30 Jun 2025 05:32:46 -0400 X-MC-Unique: Na43R38WN5izbqxp1-oXCw-1 X-Mimecast-MFC-AGG-ID: Na43R38WN5izbqxp1-oXCw_1751275966 Received: by mail-qv1-f69.google.com with SMTP id 6a1803df08f44-6fb4eed1914so51863846d6.0 for ; Mon, 30 Jun 2025 02:32:46 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751275966; x=1751880766; h=content-transfer-encoding:in-reply-to:organization:autocrypt :content-language:from:references:cc:to:subject:user-agent :mime-version:date:message-id:x-gm-message-state:from:to:cc:subject :date:message-id:reply-to; bh=yeq7h6rzcYIeNa1V1io9unzazS87D3gz4zthrzuogQ8=; b=tXkGdjZTAPW6lKgTNrQzK6hcUYdv7+G87xbGpN/io/skndMyXKdS+LqceS0TVEHMtv 1VvlfTDMQouX658szznRdMdC2BlYVyegCPYe6Fu4w0C9oCI1pNxwG09wq4MnOH5G0HAV vkCbxuR1WyCKPRIwcT/Z6o1R0RPCLYxHT8FKBmdRKp/7mem7p4QUCVosIQdhSzgnloOQ wJgimgqis9xLFTii1kdxc5QIW4LsNNbLZdWeHCDUShtCSb+VFKfbcCSQrUEeGjaa+3cy J+odwBKohNNwn17t8SB562jqASBpYELzCqi4zUkf/feh1eL2KqDbLiEZh2pXF+V2J1zn 37WQ== X-Forwarded-Encrypted: i=1; AJvYcCW5uwF7ujbF7x+Ytr8eSq7JINIeXloPjePitNnkecBhc8wHQklm90sbAi0bg3md5QR9QXM5mTno2Q==@kvack.org X-Gm-Message-State: AOJu0Yzt3Km4qszx/Kia/CxVIlzUgGVi6o2MX2aa9QdB4zCti5N0hpJf Gnm/N9akWXie8HL8iL0w3tpWvi1oOu63YZRQk30Imm8c5YxxxUhLJl+CASzYkIaqx9qQzqe9c6T DqVynEeQSlELX2vlZCXbCsz9ZgWOwm94wox9wVwVPxGBf6nfRQ02+ X-Gm-Gg: ASbGncviQKeGjC+eigF5nbPgsnjFHeNYiHNqjhDXmfQ5JFfWfarBfO+3cL69mjchoHg wmfWUBiwKQhilvgA7J88uq8FKZw0Vv+r9pPckufsfbLHGFuKbyYj8nzua4BfnYD5rtWMiUx5t5F 1rXWi3GQvIJoc9bACg9bbmjzBNzH3r9vzLkv1fIP4icvV1ehJhbEIaS9dz6ivfbRgnQVGwUvaUz +/VaLLMbtfV/JCLNPWssPNhuvflK5hGyjfv/Yo8Bm5SoAVTPuWFTikg1OORe080mOCSlLN68JWP 7VD/nAzY0/3aaQR1qJDfuG54THVcX4pitV38VNrJQ6cVy6DfeUI7DOZjrouCOEJ7wavIDYKA+62 ZKpqb2rmuWGbERCMIbtywqKhtheeDlKlWnCEsMPBAV9Op1huQ4Q== X-Received: by 2002:a05:6214:5193:b0:6fb:14:5e89 with SMTP id 6a1803df08f44-700033c56f4mr272953406d6.19.1751275965746; Mon, 30 Jun 2025 02:32:45 -0700 (PDT) X-Google-Smtp-Source: AGHT+IE7U0L0AlrzaL/k2g1J5YS9LiArGn8OodlFTi0Cox1AiWhMBmm516CG8BMU0dxxRhXq1iKv+g== X-Received: by 2002:a05:6214:5193:b0:6fb:14:5e89 with SMTP id 6a1803df08f44-700033c56f4mr272953076d6.19.1751275965347; Mon, 30 Jun 2025 02:32:45 -0700 (PDT) Received: from ?IPV6:2003:d8:2f40:b300:53f7:d260:aff4:7256? (p200300d82f40b30053f7d260aff47256.dip0.t-ipconnect.de. [2003:d8:2f40:b300:53f7:d260:aff4:7256]) by smtp.gmail.com with ESMTPSA id 6a1803df08f44-6fd771acfe6sm64232136d6.31.2025.06.30.02.32.41 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 30 Jun 2025 02:32:44 -0700 (PDT) Message-ID: <997a3af4-0c8f-4f8d-8230-08b43d0761b6@redhat.com> Date: Mon, 30 Jun 2025 11:32:40 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v1 4/4] mm: remove boolean output parameters from folio_pte_batch_ext() To: Lorenzo Stoakes Cc: linux-kernel@vger.kernel.org, linux-mm@kvack.org, Andrew Morton , "Liam R. Howlett" , Vlastimil Babka , Jann Horn , Mike Rapoport , Suren Baghdasaryan , Michal Hocko , Zi Yan , Matthew Brost , Joshua Hahn , Rakie Kim , Byungchul Park , Gregory Price , Ying Huang , Alistair Popple , Pedro Falcato , Rik van Riel , Harry Yoo References: <20250627115510.3273675-1-david@redhat.com> <20250627115510.3273675-5-david@redhat.com> From: David Hildenbrand Autocrypt: addr=david@redhat.com; keydata= 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 WNyWQQ== Organization: Red Hat In-Reply-To: X-Mimecast-Spam-Score: 0 X-Mimecast-MFC-PROC-ID: -WqPP2RaO6q2DmEPLlkpGgxo49hYj9Ugm1S8m4D3eaY_1751275966 X-Mimecast-Originator: redhat.com Content-Language: en-US Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Rspam-User: X-Rspamd-Server: rspam12 X-Rspamd-Queue-Id: 941EE2000B X-Stat-Signature: y3xu5575cxx9ksx5nnrg438myht1weza X-HE-Tag: 1751275968-685112 X-HE-Meta: U2FsdGVkX1/sMvIvJEA11Z+P2s7gxljLK01Tt2J6PwWgiIlzwT0/5UNKHDfRM3ViRGYyZ3QB580CTQnjmfVUoUoNauKKwYgsn9/trz7VaNQlgsxO1ZB4vf+Ww9Fz/WcZcmduyRQv/CmMdtDXIphedOgEWZOjS9ix7OYv8Xb5fI+asDK65GRJuXK83aiPAjqcr3p1kYRSqmESO0HgiDArOqoCRIKDeyMiWGy8utvreiYBsvdxIYb33bj73C484L08D7Uulsk2gqU0wCD2UyUMblB2GpLKkqjtWN93fhz7NXhtdM8ky+Kplhz9Lr/BVKvVom/0URB7xEzYjXGAbgPaofYZ5frDCnhKfAxMiz/j/zJCoOlwRuBEkhXHF2as6qXYHjLrhVj1FKFL/IcOPw7bH6Pb28kezfDGT3KfUmui/3mk6ZZarES5ODlDV/n0pRLozIXjntAPdWgW5UekThdPbBcTDm3yEkJ5qZssLEIhp981AymqHTdG2M+yepZCmkkmm+MNiyrFfYjzwpyU3QxnpV/K4xbF2taaDPbo9VguUY5rySjlmFrVIt6m7CPtlYGnKYN+V9VZDJv2Jz5e0bW+0Wmdml5+cgh77pYVYRCnTHC554o66Sml8SLcFJlFd2PmThEVwAirbt67RWiJn3HU+XAMZtwq+S3hPzS539rILen9xNF1Eqec+jFbcbEKABL3nTTmZI/6GwYrrZ67ieTtdD+QJNia5hXAuH3iz7sF+8j0X+PyrF156wSfzZdkgRoTYic/SxALUwcRtpTw4bBu6BFOJDhaRVvFuu4ez05O5cIf4tL46Svp6tZN92k4JV7B6SwKHohO5CEpPuEC1lUPIamnQ5QlJ03QPENMjzjSkIQgi6eqIXBTLSNmxPHuwM98JEFU3afFG3AwnWPecHW7JzBhFSP1uFO2KmpsQ/O8cl7Kvv8kSo6WuYQLz54LWhd7C4M6A4cn2Ku3nmulfao Z8V3Aix/ 39r/T7/GKYhSHSjNyjPgk0Px/m7z5uovYpOcyRt4NJbWw2ezJTQes1ZGGg32rOCRk3Ah8b7of+WOBs9idhNwRT22cLV87pofSr5hTlh6NGGcotftq1mdjY+7kL3zJAswVF2wiMVGfwvZv5FQBddKuurMWUdklhskPo6ipcjaTcep1WhhOzdg5hjxv9wt0AjJ+n94K9c4AE7KxtE5+F2uNLptRQkFy1aKm0KdA1EJVC5aGLw7nY46rYKhALcJFT60Qe4JcZrYOLjarJrldCM4Pks+NVRC5KGrwiVUkgeGlN1dXj7OcD5k98YzPdfT+AfyfdBIFXLunC46LhP++lzvUv0FRHm4NFBq99PpvmnQFej6OYQx4s/89cBuggEng8H3Pj4ArxvigVf855WPGYI1tUhymhImjgdWQrdDFIkVGrXwCiig498+yTw6Ah0aLXVqGHLGW1CVkOk/vRvsqMVe3ta1rosJZ48UHXGVTYipd/a30lLeFz/ubhSooEJDBCW/VVgZSjXZT9dn/GV7gn5Li1I8TVcjqvdDy903VjBmxrUmdTn3V9oiiAXlT3WGZNqrOIs0H 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 27.06.25 21:04, Lorenzo Stoakes wrote: > On Fri, Jun 27, 2025 at 01:55:10PM +0200, David Hildenbrand wrote: >> Instead, let's just allow for specifying through flags whether we want >> to have bits merged into the original PTE. >> >> For the madvise() case, simplify by having only a single parameter for >> merging young+dirty. For madvise_cold_or_pageout_pte_range() merging the >> dirty bit is not required, but also not harmful. This code is not that >> performance critical after all to really force all micro-optimizations. >> >> As we now have two pte_t * parameters, use PageTable() to make sure we >> are actually given a pointer at a copy of the PTE, not a pointer into >> an actual page table. >> >> Signed-off-by: David Hildenbrand > > Overall a really nice cleanup! Just some comments below. > >> --- >> mm/internal.h | 58 +++++++++++++++++++++++++++++++-------------------- >> mm/madvise.c | 26 +++++------------------ >> mm/memory.c | 8 ++----- >> mm/util.c | 2 +- >> 4 files changed, 43 insertions(+), 51 deletions(-) >> >> diff --git a/mm/internal.h b/mm/internal.h >> index 6000b683f68ee..fe69e21b34a24 100644 >> --- a/mm/internal.h >> +++ b/mm/internal.h >> @@ -208,6 +208,18 @@ typedef int __bitwise fpb_t; >> /* Compare PTEs honoring the soft-dirty bit. */ >> #define FPB_HONOR_SOFT_DIRTY ((__force fpb_t)BIT(1)) >> >> +/* >> + * Merge PTE write bits: if any PTE in the batch is writable, modify the >> + * PTE at @ptentp to be writable. >> + */ >> +#define FPB_MERGE_WRITE ((__force fpb_t)BIT(2)) >> + >> +/* >> + * Merge PTE young and dirty bits: if any PTE in the batch is young or dirty, >> + * modify the PTE at @ptentp to be young or dirty, respectively. >> + */ >> +#define FPB_MERGE_YOUNG_DIRTY ((__force fpb_t)BIT(3)) >> + >> static inline pte_t __pte_batch_clear_ignored(pte_t pte, fpb_t flags) >> { >> if (!(flags & FPB_HONOR_DIRTY)) >> @@ -220,16 +232,11 @@ static inline pte_t __pte_batch_clear_ignored(pte_t pte, fpb_t flags) >> /** >> * folio_pte_batch_ext - detect a PTE batch for a large folio >> * @folio: The large folio to detect a PTE batch for. >> + * @vma: The VMA. Only relevant with FPB_MERGE_WRITE, otherwise can be NULL. >> * @ptep: Page table pointer for the first entry. >> - * @pte: Page table entry for the first page. >> + * @ptentp: Pointer at a copy of the first page table entry. > > This seems weird to me, I know it's a pointer to a copy of the PTE, essentially > replacing the pte param from before, but now it's also an output value? > Shouldn't this be made clear? As you spotted, I make that clear below and for each and every flag that someone would set that would affect it. > > I know it's a pain and churn but if this is now meant to be an output var we > should probably make it the last param too. > > At least needs an (output) or something here. Well, it's an input+output parameter. "Pointer at a copy of the first page table entry that might be modified depending on @flags." is a bit mouthful, but maybe clearer than just "output". [...] >> VM_WARN_ON_FOLIO(!pte_present(pte), folio); >> VM_WARN_ON_FOLIO(!folio_test_large(folio) || max_nr < 1, folio); >> VM_WARN_ON_FOLIO(page_folio(pfn_to_page(pte_pfn(pte))) != folio, folio); >> + VM_WARN_ON(virt_addr_valid(ptentp) && PageTable(virt_to_page(ptentp))); > > Hm so if !virt_addr_valid(ptentp) we're ok? :P I had the same question when writing that. Obviously, PageTable(virt_to_page(ptentp)) faulted when called on something on the stack. (ran into that ... :) ) Maybe "VM_WARN_ON(virt_addr_valid(ptentp));" would work as well, but I am not sure how that function behaves on all architectures ... > I also think a quick comment here > would help, the commit message explains it but glancing at this I'd be confused. > > Something like: > > /* Ensure this is a pointer to a copy not a pointer into a page table. */ Yes, makes sense. -- Cheers, David / dhildenb