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 2C02AC5AE59 for ; Tue, 3 Jun 2025 08:47:19 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 5F0216B03DD; Tue, 3 Jun 2025 04:47:19 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 5C7C66B03DE; Tue, 3 Jun 2025 04:47:19 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 4DDDB6B03DF; Tue, 3 Jun 2025 04:47:19 -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 31B776B03DD for ; Tue, 3 Jun 2025 04:47:19 -0400 (EDT) Received: from smtpin08.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id 82CE380A3F for ; Tue, 3 Jun 2025 08:47:18 +0000 (UTC) X-FDA: 83513460156.08.8CDCFB4 Received: from mail-ua1-f54.google.com (mail-ua1-f54.google.com [209.85.222.54]) by imf30.hostedemail.com (Postfix) with ESMTP id A461780007 for ; Tue, 3 Jun 2025 08:47:16 +0000 (UTC) Authentication-Results: imf30.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=LUDvwZEw; spf=pass (imf30.hostedemail.com: domain of 21cnbao@gmail.com designates 209.85.222.54 as permitted sender) smtp.mailfrom=21cnbao@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1748940436; 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=reK2EDrij9u9D1X1eWD4tVD+OLpKJcK0SjBwwERO1fk=; b=8kuL9rWhHiERwS8FB2+xvDMlSW9WC4Fj1oVecC0B4nf94ilTZNdczEsctljkYdZm34sP86 ISlMkNLDfjv1Mx5kjx9MIQbIBCMEF2EluVsD9gli7YnM1884aqgahKkMc7Py1fCPyLzAIT U1zjdxGNsxU6j19OrmhMGxkRRzJFLJ0= ARC-Authentication-Results: i=1; imf30.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=LUDvwZEw; spf=pass (imf30.hostedemail.com: domain of 21cnbao@gmail.com designates 209.85.222.54 as permitted sender) smtp.mailfrom=21cnbao@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1748940436; a=rsa-sha256; cv=none; b=lCDljx4JO5qAWHeE5vulOnsvKjZ8SJComM+E/vQEQx8DhOydjOZgllU486ycpgrHtfdDpl 5C6rVDQEE51FCeqoT2XRLrlhCyBDCV9bXqxXr3iQuACm5G/5TamI44heApu9ksRv36GIti o1Mb/v7nXOwpOWBZZxZ0bz9gzKre1R8= Received: by mail-ua1-f54.google.com with SMTP id a1e0cc1a2514c-87dfe906a87so1391659241.0 for ; Tue, 03 Jun 2025 01:47:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1748940435; x=1749545235; darn=kvack.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=reK2EDrij9u9D1X1eWD4tVD+OLpKJcK0SjBwwERO1fk=; b=LUDvwZEw2cecD0073ELUBYbSQTvzii3KCEJP91HGo2IkWV2GY0lMXHgiGRzh3d7EsM voN/jCpJ55s5ZodlUTes7uYD0luPPqKc4sEUNCJDRojpSobLNElK0ofYD/3pqvaCmfbn uy6D63YWkhenC4k57lsGW+/I1hTi3nODl7r40GKdNk0AE6HX3vcu4+8pL+DtYJKjLn40 Eipx2fRc0UGm6ihGsWFgw7mF/fJKIJARJAAQ6i6LwhYIVRM2lSPGQmqMbflUjKx1oZ9B m3u7e3PwQau4ewBrH84ctk/ErM2lQP6YlFXs6zq5Yw2P+Kd59gt6oLtid+ZpDT/UTatu Rlxg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1748940436; x=1749545236; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=reK2EDrij9u9D1X1eWD4tVD+OLpKJcK0SjBwwERO1fk=; b=ITcfbu/6kHKWHNS5XejjWRwwVREHtvqPJp/J7uW35dTfiGrFCo0stOXPnuScV1Ub6F 8Ph0bUyH6Y3Iqk7G8szwmXGwaxDaXLJBZHo7xM+/RpiAzXX9NfR3j548JrRWw1yIWBSM FRCvl2qaPMuxqM7VZ6kzgImboGFG44wCpZ2Xlw9iCFML3lDH9L1NAJ0/Yv0jWubd4RsY uhYkj7bXG2M+8mq1bbp7LIBn4hUQ2+IOvjKwZn47ky0gZssrrEP1uI0xKRDl4ePKliht wIag+9Ga5eNTl/m33sgg3lHU0f53rwmiBl9dzTS5dYEEYoLiYqdVLhINVnf0CV6DSsnh 8uFQ== X-Forwarded-Encrypted: i=1; AJvYcCXp7tKwluS5laR9F0det8RiwsXurnJiMy0Ic9toQgb9BT+n4wSXOTMK+ksf6lB62D23ZS3xQf67/g==@kvack.org X-Gm-Message-State: AOJu0YwczrzP80O8mISfVDYg2YN2Mppu8pvi0KehovnnXssIsvEPoGQJ 3NA8nLkQNFUzHvFQs/ln1vpPhTEL9blU/CNul860ovhyw2F/c32qZO4GkuvGE8sd34mk2hMb5ls 872QPK+Zqr3lGRKY2werSkgQzBQs/JKk= X-Gm-Gg: ASbGncuI6yoQ5iMAqS6wzUiV42p1CUhr0XdhXQmSpPr+o8GS0lUzCPQGfa31R8js1i+ sqCaYk+5XcC4bY/NucKGDa+38imh/fSRNAILaOAD8xtlI6npxAar462o12nXkhnkGI9VYFuC0jh 4jnXhaqHwLvLzFTIqGlZ6ycp5v5z6d7QogcWXozYbsUWPl X-Google-Smtp-Source: AGHT+IEZ31ddxS8xv3IgGacP1h0TAoQtOr1yeIacfQiXFf12XbWrRK8adpEoJaO3KRN4lrgTzrS9ZXmjDh9O0Ang1ow= X-Received: by 2002:a05:6102:50a6:b0:4e5:9227:eb2e with SMTP id ada2fe7eead31-4e6ecd69631mr11249497137.10.1748940435631; Tue, 03 Jun 2025 01:47:15 -0700 (PDT) MIME-Version: 1.0 References: <20250603013154.5905-1-21cnbao@gmail.com> <7bd57eba-42a0-4bf3-8632-b91c401b7316@arm.com> In-Reply-To: <7bd57eba-42a0-4bf3-8632-b91c401b7316@arm.com> From: Barry Song <21cnbao@gmail.com> Date: Tue, 3 Jun 2025 20:47:04 +1200 X-Gm-Features: AX0GCFvsybCckVS8gqFdpycHWOKap9SG3IdwnVPISeQCp-mWGOkRBSx-LYNt5ko Message-ID: Subject: Re: [PATCH RFC] mm: madvise: use walk_page_range_vma() for madvise_free_single_vma() To: Dev Jain Cc: akpm@linux-foundation.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Barry Song , "Liam R. Howlett" , Lorenzo Stoakes , David Hildenbrand , Vlastimil Babka , Jann Horn , Suren Baghdasaryan , Lokesh Gidra , Tangquan Zheng Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Queue-Id: A461780007 X-Stat-Signature: rhgqon4khtrdxet4rccgi7xjkzkbyrxs X-Rspam-User: X-Rspamd-Server: rspam04 X-HE-Tag: 1748940436-292347 X-HE-Meta: U2FsdGVkX1/1PpVn4wlLS2BDWyZPCzso7QRAjFfDyAboEKD/xkxbp4Mw3I4yF3trQ8ulBJ7DG2x2rA1+RJq2CJO+eWbf3LlZygFDPA50wG/o8nuhyymsb8FvvTpV827MAGSO1A0L03s5Je+73nXRELulm4JwZNO/2gt86ZmmC6I5ikd4JnIvCnfHIepdpwScvm2Jhpyej4ix6yb1DQNngtWw/jOTb0zvgeWQ3QGkt8iUBY2oiNEhtPeO5zdfLfX5iXvTwnvOKYPDr68gjna4YyzSbINunHGKL2bdqjqtBEPFZ1uW+Gu+HGaOUp5Y6QXVPV93KJ7T6fH/d6z14Ovahez66EoG/cYnQg2BqccwAg7tYbVLOmo3fq3qCrwY1AfS4Yts/tFvkeEhoTRHoEx0EM2CVpR+hFJvu2cPKz10W+TCIvoGNMEqT8pSfYzN+QypxZ1s6AydgRRA/AeR5koijIQA8myJbP/bHOQGu4mFvQFZkjf9JfPq4jIM9kZ6cY3ceudbkSBFUkPWAGMRwHdP2jNrUpfDzlfT5M/1/ziGTR+fSDlRhsSiEID0Je+aYyYneFgk1q8qccwhfujxLJuQuorXi9bEpJPv4lcsCeJF2l0VcmmRkyG4zOA+Nza7Cv9Dbi1FLxA3IlSmEHty+diSfpguZGo4T18SwR0BsLLV//ZeV/jQwW5vIon2UzuEYaxyvn3UL4hR3JXITX3P7oLX+BjB0uHUB50Ws9XT8HnJIh2coY4NxwsP4syyV8IvuBkatheCJ57wbh3zKcaIzNUBKnf/lZk2P/ZeJsWSHiFuSqwB5qXoVdsZ8pf0kmWf/lEhHG3JBVC41Sm0YGUFcDH9qjF6JKhxP8MwmtWT6K1qj4Wy3DQQ0yoF8h3s7remX6DRPVqA0eFW4V+M3bAjItyFxQT2ukoIu4JCzDTNVZa5PVsTfmg02cBt2r+TamK+8pkeBuGHyWdmXq7wu8LWmDa N0fpjwGS USZkjV8o8e69BwR0EUFiB6Nw52YibmBAOA566TY+joFFSaBgYdMrEv430fva1pC53fIz6J3GZwsYr/oNQAnuU6G2StEZ2ms99HJWktjK6UhXQcco/ET60m9TZR3pL+GxM5wNXKIPT9j7RIIzLwCVh6eSghpzTWvKy0YRWUnWmpJONaemiqX0I+GgTNerk8rLi78CNN6bE9cbV/12RzOwTpRVcg9TBOkvTRA+S6j/FwkUkE0gAYjfJE3dGZXhUwVAf5a83JW1Edq8F4VUX1VHaiSk4DzkK2RqYSRULng2Vz9ckatwzDlvY5RiZHbN1SR6tDsFkHflJA68pyqG4u8YsfAhEwU9DbGHnArieYxjNAAcU+er3jHYydnijTp6DsUlz1fsVjxtW2DLMoF/iBi0Pn0uQ4Fs3GEhyDHl7cOs+lI/ntfkxG8sEtOz8bQ4qw5SYbB5i0r89Q16mVHdHYDy4ijLJsaFbTNcwvsQXzM++PU3Xnd/Htnw/L9cvP++gWXc5Ppsak5kTXncskDA= 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 Tue, Jun 3, 2025 at 6:11=E2=80=AFPM Dev Jain wrote: > > > On 03/06/25 7:01 am, Barry Song wrote: > > From: Barry Song > > > > We've already found the VMA before calling madvise_free_single_vma(), > > so calling walk_page_range() and doing find_vma() again seems > > unnecessary. It also prevents potential optimizations for MADV_FREE > > to use a per-VMA lock. > > > > Cc: "Liam R. Howlett" > > Cc: Lorenzo Stoakes > > Cc: David Hildenbrand > > Cc: Vlastimil Babka > > Cc: Jann Horn > > Cc: Suren Baghdasaryan > > Cc: Lokesh Gidra > > Cc: Tangquan Zheng > > Signed-off-by: Barry Song > > --- > > mm/madvise.c | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > diff --git a/mm/madvise.c b/mm/madvise.c > > index d408ffa404b3..c6a28a2d3ff8 100644 > > --- a/mm/madvise.c > > +++ b/mm/madvise.c > > @@ -826,7 +826,7 @@ static int madvise_free_single_vma(struct madvise_b= ehavior *madv_behavior, > > > > mmu_notifier_invalidate_range_start(&range); > > tlb_start_vma(tlb, vma); > > - walk_page_range(vma->vm_mm, range.start, range.end, > > + walk_page_range_vma(vma, range.start, range.end, > > &madvise_free_walk_ops, tlb); > > tlb_end_vma(tlb, vma); > > mmu_notifier_invalidate_range_end(&range); > > Can similar optimizations be made in madvise_willneed(), madvise_cold_pag= e_range(), etc? Yes, I think the same code flow applies to madvise_willneed, madvise_cold_page_range, and similar functions, though my current interest is more on madvise_free. Let me prepare a v2 that includes those as well. > Thanks Barry