From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mx0b-00364e01.pphosted.com (mx0b-00364e01.pphosted.com [148.163.139.74]) (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 8B6053BBA0A for ; Mon, 10 Aug 2026 13:14:51 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=148.163.139.74 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786367693; cv=none; b=fgC81gHIg0Uchch3gBcWTAnAd0fGlUX7ZtH+HZGz/YQz+qW1YkFKb6o0v4mHRvaWKLk2YhZW04NVn2O8FehYO9h4N6hIRGIOuknbK20K3uoW5QpqgTMfTbKhPpSqgp6kXH+L7GgKRU0Hnc7Ht7YHWUM3qTPVowrs8Ys3kZzRU98= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786367693; c=relaxed/simple; bh=hn8WEr7HTxihEVJu4SQ2dmAJmtPjDjicv3D02ZA+4kc=; h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From: In-Reply-To:Content-Type; b=MKQqfZmkGJMUuTItDiqmTv7FtICeYNzq/2mAnF1RZX757AAATgDXYEpZEbTt62wufiN6mcmWXNozSvrzFaE0EvY+bBWzdR84UMArsPIS5EEnPmMCdaDfsLVpAyLzzLVXRFT3WJJfKHJDRyumVp9GbjOaRlqQFmnq3tMZCPQD9fo= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=columbia.edu; spf=pass smtp.mailfrom=columbia.edu; dkim=pass (2048-bit key) header.d=columbia.edu header.i=@columbia.edu header.b=DLE+tXq5; arc=none smtp.client-ip=148.163.139.74 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=columbia.edu Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=columbia.edu Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=columbia.edu header.i=@columbia.edu header.b="DLE+tXq5" Received: from pps.filterd (m0167077.ppops.net [127.0.0.1]) by mx0b-00364e01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 67ACaH7t2933308 for ; Mon, 10 Aug 2026 09:14:50 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=columbia.edu; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=pps01; bh=ew4q mYHZIycQ1b32QhL8Lfq6hZJ47KLiqRijOxOPC0M=; b=DLE+tXq5s3oT8uze4iVZ LP7RJiSjXhEbg+EzPEFzbdzGldoC9Ja805fXHrpIJl/rpIR67b+XBHG0vXd0nDA1 VHziaesYA9cz/yhb/sMAFHb9nDX/jH6+GNu5JnrotUyJz6g+Y8WGxEldaDGjJxzV HpEovKuWB/Zy2bxhtOMfH4LypWjXWrKSKf4YqjFJUhGdtprUAk5LdqsAwvHszgio sEnpAe4/sdiRetg/F8Pw54HU8XPZqVhDi6Na2yZCuIUfB2cbGzr7pyj80dWzQ3Sk nIfrJP+mBUASt6ogWoC/3UzhN2sd7gl5T7ZnD4SfWGFO0RluC7U5VK7j9Q8oDoYX aw== Received: from mail-qt1-f198.google.com (mail-qt1-f198.google.com [209.85.160.198]) by mx0b-00364e01.pphosted.com (PPS) with ESMTPS id 4fy0rmjs8h-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 10 Aug 2026 09:14:49 -0400 (EDT) Received: by mail-qt1-f198.google.com with SMTP id d75a77b69052e-52ce64c41efso35376891cf.3 for ; Mon, 10 Aug 2026 06:14:49 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1786367689; x=1786972489; h=content-transfer-encoding:content-type:in-reply-to:from :content-language:references:cc:to:subject:user-agent:mime-version :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to:content-type; bh=ew4qmYHZIycQ1b32QhL8Lfq6hZJ47KLiqRijOxOPC0M=; b=kp3MpyEWVHvInBJzZi5AXkwPoTEJDiQFUKYEqQo80j4hMF/EXdm3nh31YMS0sEubJ7 vWtelW5MXHwptZzFfmV+XoUwoemCALhFsvqygSFAvRlVDj5H98+NEEOBuE87Byaoukxh KJpu36+VCYyBuvVnVI1yMOw/KW6GB67pTdp6yLCH4gn3YqGuJimMBWxRsxDC8DtkDgC7 fH/BxVxFQJJ1MlnfjUqvimSwM2bW3+uE6zhbVnL0/MNFct5J2SlgrykWFiwhCdepsUBo ho+kHvscWaH9HCzAKLfotJ4He1z2I4YUMM0X0RRCAoOy2pTMWljbNZ4e4HFVEfJaSu88 76EA== X-Forwarded-Encrypted: i=1; AHgh+Rr5BJjBvNocTx3vZwKK8MEEf0U9s/83+v35gKC5FXaGmndnF4Q7Pi5WgTvROvIeYXSiD/oj6QQIyO4fHWM=@vger.kernel.org X-Gm-Message-State: AOJu0Yz8O/LcPZ7Z63ME8J9KHBmn1Uh6+p66El0ZgsvatLse0LKky7V/ Pu5yXZkzaJT3oZZu1OoWCJKQj4Xp1bZ1L4Mhjb2PNTP+J/vocBYEUUNyHSHOZc6e3i3xU3cJGzX fQx7jzyf3N2LNBD4eTQK82d8Vpl16RW7+3+hMPJg18htH+0c+YrIER5jrHVqKdQ== X-Gm-Gg: AR+sD10TB3VeIopEb5/CUHA7pnK1d6KlXDb4UEcUBamqRliELhN1oqh8TU5Ghw0YSWw esJHcl3m9KuHd6Mg0mFzVce1rCbUQrQTf3IX5HVzkB83+n9w76I2eiIzKm6UHxFxOYzn7gD9RzP cj7TWdZVDAvt3oAry97KVhCqVe/cTH/hJestvGl/eY0chYnfXcgWjC9Ef2wtMxE70hHtZB/rZFH 26DywGsln/QOfmbzIFTC1++NYLZTuquasXzsuO+CFG7poSL6M0PWoAOVIIJ5az3D51xF2kRrn8v Qhg7dsirRqiGRp1vAmfosv3HDfTkUSzPNFmQbif5Kb+CqnKdXLYf82GoSySktHKEjt7E3X97CKp T1yRGg6bCr3fNRi5zWv3FTFclG/dS4SrmBV7Z2a2ioMpBOc8O/CwuuAEG1B2UQ5SO X-Received: by 2002:ac8:6f08:0:b0:52b:4f1a:5fde with SMTP id d75a77b69052e-52d4bbae79bmr19560681cf.19.1786367689408; Mon, 10 Aug 2026 06:14:49 -0700 (PDT) X-Received: by 2002:ac8:6f08:0:b0:52b:4f1a:5fde with SMTP id d75a77b69052e-52d4bbae79bmr19559721cf.19.1786367688959; Mon, 10 Aug 2026 06:14:48 -0700 (PDT) Received: from ?IPV6:2a00:a040:199:782e:7d00:b463:d29c:a508? ([2a00:a040:199:782e:7d00:b463:d29c:a508]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4995ea27ec7sm309907065e9.10.2026.08.10.06.14.45 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 10 Aug 2026 06:14:47 -0700 (PDT) Message-ID: Date: Mon, 10 Aug 2026 16:14:45 +0300 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH 3/6] mm/page_io: use swap entries directly in zeromap helpers To: "Lorenzo Stoakes (ARM)" Cc: Andrew Morton , Chris Li , Kairui Song , Kemeng Shi , Nhat Pham , Baoquan He , Barry Song , Youngjun Park , David Hildenbrand , "Liam R. Howlett" , Vlastimil Babka , Mike Rapoport , Suren Baghdasaryan , Michal Hocko , Matthew Wilcox , Christoph Hellwig , Johannes Weiner , Yosry Ahmed , Chengming Zhou , linux-mm@kvack.org, linux-kernel@vger.kernel.org References: <20260806-b4-page_io-folios-v1-0-0899bac3b826@columbia.edu> <20260806-b4-page_io-folios-v1-3-0899bac3b826@columbia.edu> Content-Language: en-US From: Tal Zussman In-Reply-To: Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Authority-Analysis: v=2.4 cv=P9gKQCAu c=1 sm=1 tr=0 ts=6a79cec9 cx=c_pps a=mPf7EqFMSY9/WdsSgAYMbA==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=Sv0fKeRqtYgA:10 a=x7bEGLp0ZPQA:10 a=VkNPw1HP01LnGYTKEx00:22 a=Da8U98TiO7q1upZEImrf:22 a=QOCMdifcju39GKoXhKua:22 a=VwQbUJbxAAAA:8 a=VjhqdUCHYpRGtv9QOVwA:9 a=QEXdDO2ut3YA:10 a=dawVfQjAaf238kedN5IG:22 X-Proofpoint-Spam-Info: AW1haW4tMjYwODEwMDExMyBTYWx0ZWRfX+YfcTBLjdvip vBJrEbq/56OpqncmZiJFOhJN6GXXqQFVzW2q1t1+ek71MupV7xiGER4PSXOWEt4p9Xn1Gf/xrzb oYvFTdAPqE3y7emlp/O37aMOgwFJqHhoNB3lXrz07uKT1gN07ijC X-Proofpoint-ORIG-GUID: yBw2YTjBwISAwvuIjwyKRWcnus-Ypod3 X-Proofpoint-GUID: yBw2YTjBwISAwvuIjwyKRWcnus-Ypod3 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwODEwMDExMyBTYWx0ZWRfX0pRBFJXvWzph 12g9ZMsl+toxm0K+quNZrAq4/+DT/1dleregmoWRU6X7okaIx5AxUTmh9bfEiiOsa1kQlnS1lyS xw9Y33HAIHdcUPRLAscIeZAbKNjMmGqWV0pTTJxX5vdBB5JDqsak5KcIdFY8aDT3sWWbv0NY68M UvYXgvvWLALk7ei1awATe7+F7eoUw1U1w385/8YR2xDoWyqLLM+A/Mcm6gB12oYzNi/46RUeHXy aUz4kmJ0O+OPJtuFEobSEaGuUXxL1T4KG9CSIjQVyqWMnSWaBimceEKbkHSloz1pOuTzm2t7bbu od5i2SysP8nPKWbQDJFqRnlB3mAAFTuKFjo/Rc19hCB6kGpRKz5pswndLySwYm98F+97hR60ypa YS0/GIsoxhD0xwt6iOg3QpU297Ux41f3VANsK3WVaioWw7fnDOkc/j27vdgADhGEVMhoOBGscYK OuLaZHGaKrPzOqWUIQw== X-Proofpoint-Virus-Version: vendor=nai engine=6900 definitions=11870 signatures=596817 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 priorityscore=1501 phishscore=0 adultscore=0 clxscore=1015 suspectscore=0 impostorscore=10 bulkscore=10 lowpriorityscore=10 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2608100113 On 8/10/26 8:55 AM, Lorenzo Stoakes (ARM) wrote: > On Thu, Aug 06, 2026 at 06:55:35PM -0400, Tal Zussman wrote: >> Increment swp_entry_t::val directly instead of recomputing each entry >> with page_swap_entry(). This removes the last struct page usage in >> page_io.c and saves one call to compound_head() per page. >> >> Signed-off-by: Tal Zussman > > Lord I just looked at page_swap_entry() and... yeah. This is an improvement > thanks :) > > I haven't looked at the rest of the series so maybe you already did it but I > wonder if we could remove it altogether? > Indeed we can - I have ~7 more patches which do exactly that, but they're more wide-ranging (rmap, zswap, huge_memory, swapfile, arm64 MTE), so I kept them separate from this. I believe Andrew is planning to pick this up post-rc1, so I'll probably send them out then since they rely on some of these changes. > Should we rename page_io.c to folio_io.c now? :P > > Anyway LGTM so: > > Reviewed-by: Lorenzo Stoakes (ARM) > Thanks! >> --- >> mm/page_io.c | 8 ++++---- >> 1 file changed, 4 insertions(+), 4 deletions(-) >> >> diff --git a/mm/page_io.c b/mm/page_io.c >> index 43b4383a4729..c6d0949b3f1e 100644 >> --- a/mm/page_io.c >> +++ b/mm/page_io.c >> @@ -159,7 +159,7 @@ static void swap_zeromap_folio_set(struct folio *folio) >> struct obj_cgroup *objcg = get_obj_cgroup_from_folio(folio); >> int nr_pages = folio_nr_pages(folio); >> struct swap_cluster_info *ci; >> - swp_entry_t entry; >> + swp_entry_t entry = folio->swap; >> unsigned int i; >> >> VM_WARN_ON_ONCE_FOLIO(!folio_test_swapcache(folio), folio); >> @@ -167,8 +167,8 @@ static void swap_zeromap_folio_set(struct folio *folio) >> >> ci = swap_cluster_get_and_lock(folio); >> for (i = 0; i < folio_nr_pages(folio); i++) { >> - entry = page_swap_entry(folio_page(folio, i)); >> __swap_table_set_zero(ci, swp_cluster_offset(entry)); >> + entry.val++; >> } >> swap_cluster_unlock(ci); >> >> @@ -182,7 +182,7 @@ static void swap_zeromap_folio_set(struct folio *folio) >> static void swap_zeromap_folio_clear(struct folio *folio) >> { >> struct swap_cluster_info *ci; >> - swp_entry_t entry; >> + swp_entry_t entry = folio->swap; >> unsigned int i; >> >> VM_WARN_ON_ONCE_FOLIO(!folio_test_swapcache(folio), folio); >> @@ -190,8 +190,8 @@ static void swap_zeromap_folio_clear(struct folio *folio) >> >> ci = swap_cluster_get_and_lock(folio); >> for (i = 0; i < folio_nr_pages(folio); i++) { >> - entry = page_swap_entry(folio_page(folio, i)); >> __swap_table_clear_zero(ci, swp_cluster_offset(entry)); >> + entry.val++; >> } >> swap_cluster_unlock(ci); >> } >> >> -- >> 2.39.5 >> > > -- > Cheers, Lorenzo >