From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (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 8BBB638F649 for ; Thu, 26 Mar 2026 11:10:36 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774523436; cv=none; b=WPcowzKHxZH6hVEslC6RPB+vAyJG3Ik4P9I9+QVUWHQoLbYdr+9VENKBTZwq1zP692qGJNWBNYAyhAtlZw/N/3Kg7cmHuiwyQJVsfqTV+2hYRx9U4VcUDpcsa3lt278zBL1MLsNeGPbrfEQB4WVQ3Z+OJfsNLUt+ol0haFBhzB4= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774523436; c=relaxed/simple; bh=qfdbXfpkXTWqgQ8FqX+0E2eSdl6peEciH9K0TiM3LiY=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=lZ77kG+vuhAxKw3gwp8PDWKyxDXp739klG2NB9jkwUf7ksQvx5Vo3GCliLjo0ZuH9b/Fo5hTLvbSapZuc3H+2NoaLKO6NGsNSt82QjFArnrhA7hdV0Dkl8TKj6jGgHiyvslsR92t9z5AQrVeQY7LPxB1zR2ijqcfEFj3LQZpLdo= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=px3KYKv3; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="px3KYKv3" Received: by smtp.kernel.org (Postfix) with ESMTPSA id B3A83C116C6; Thu, 26 Mar 2026 11:10:30 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1774523436; bh=qfdbXfpkXTWqgQ8FqX+0E2eSdl6peEciH9K0TiM3LiY=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=px3KYKv3RJT+LOvqiFgExnVdmCKebe4xPFh1tDNkC+R3Lpug2ZFS0Md2SRJjUw+HC qNP1OTJa4/QIsQOC2S0GrzOPY1kJ4T/ph5XcTDVj2gE1pRBC7RkzAxHSTPU3wwJ7vp O6q9k07csP33m4w24TbMuDMae0NbtEzmesgh802DrGOG3vPp7xhhkOcaw4kK6EQGkC WFzUifCaoE8MK7JAhAUHHepnDddbI/ceFm8dX5dd+jDdIUrLkohrHyqqDI6j5OsGWJ O6ltPecqlyOPBS5ybdDnjB8wGOn5G0/JVBHTyqO1rGK7SGg0sD8NaLtbBScnzaEZV3 EtH4pyMXOI3Yw== Date: Thu, 26 Mar 2026 11:10:28 +0000 From: "Lorenzo Stoakes (Oracle)" To: Baolin Wang Cc: "David Hildenbrand (Arm)" , Barry Song <21cnbao@gmail.com>, akpm@linux-foundation.org, catalin.marinas@arm.com, will@kernel.org, lorenzo.stoakes@oracle.com, ryan.roberts@arm.com, Liam.Howlett@oracle.com, vbabka@suse.cz, rppt@kernel.org, surenb@google.com, mhocko@suse.com, riel@surriel.com, harry.yoo@oracle.com, jannh@google.com, willy@infradead.org, dev.jain@arm.com, linux-mm@kvack.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH v6 1/5] mm: rmap: support batched checks of the references for large folios Message-ID: References: <43831628-a00f-4292-9797-cb96a029bb00@kernel.org> <86f611cb-1292-44e4-b629-6503135d33ca@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: On Thu, Mar 26, 2026 at 09:47:51AM +0800, Baolin Wang wrote: > > > On 3/25/26 11:06 PM, Lorenzo Stoakes (Oracle) wrote: > > On Wed, Mar 25, 2026 at 03:58:36PM +0100, David Hildenbrand (Arm) wrote: > > > On 3/25/26 15:36, Lorenzo Stoakes (Oracle) wrote: > > > > On Mon, Mar 16, 2026 at 03:15:18PM +0100, David Hildenbrand (Arm) wrote: > > > > > On 3/16/26 07:25, Baolin Wang wrote: > > > > > > > > > > > > > > > > > > > > > > > > Sure. However, after investigating RISC‑V and x86, I found that > > > > > > ptep_clear_flush_young() does not flush the TLB on these architectures: > > > > > > > > > > > > int ptep_clear_flush_young(struct vm_area_struct *vma, > > > > > >                unsigned long address, pte_t *ptep) > > > > > > { > > > > > >     /* > > > > > >      * On x86 CPUs, clearing the accessed bit without a TLB flush > > > > > >      * doesn't cause data corruption. [ It could cause incorrect > > > > > >      * page aging and the (mistaken) reclaim of hot pages, but the > > > > > >      * chance of that should be relatively low. ] > > > > > >      * > > > > > >      * So as a performance optimization don't flush the TLB when > > > > > >      * clearing the accessed bit, it will eventually be flushed by > > > > > >      * a context switch or a VM operation anyway. [ In the rare > > > > > >      * event of it not getting flushed for a long time the delay > > > > > >      * shouldn't really matter because there's no real memory > > > > > >      * pressure for swapout to react to. ] > > > > > >      */ > > > > > >     return ptep_test_and_clear_young(vma, address, ptep); > > > > > > } > > > > > > > > > > You'd probably want an arch helper then, that tells you whether > > > > > a flush_tlb_range() after ptep_test_and_clear_young() is required. > > > > > > > > > > Or some special flush_tlb_range() helper. > > > > > > > > > > I agree that it requires more work. > > (Sorry, David. I forgot to reply to your email because I've had a lot to > sort out recently.) > > Rather than adding more arch helpers (we already have plenty for the young > flag check), I think we should try removing the TLB flush, as I mentioned to > Barry[1]. MGLRU reclaim already skips the TLB flush, and it seems to work > fine. What do you think? > > Here are our previous attempts to remove the TLB flush: > > My patch: https://lkml.org/lkml/2023/10/24/533 > Barry's patch: > https://lore.kernel.org/lkml/20220617070555.344368-1-21cnbao@gmail.com/ > > [1] https://lore.kernel.org/all/6bdc4b03-9631-4717-a3fa-2785a7930aba@linux.alibaba.com/ > > > > > Sorry unclear here - does the series need more work or does a follow up patch > > > > need more work? > > > > > > Follow up! > > > > Ok good as in mm-stable now. Sadly means I don't get to review it but there we > > go. > > Actually this patchset has already been merged upstream:) Err but this revision was sent _during_ the merge window...? Was sent on 9th Feb on Monday in merge window week 1, with a functional change listed: - Skip batched unmapping for uffd case, reported by Dev. Thanks. And then sent in 2nd batch on 18th Feb (see [0]). So we were ok with 1 week of 'testing' (does anybody actually test -next during the merge window? Was it even sent to -next?) for what appears to be a functional change? And there was ongoing feedback on this and the v5 series (at [1])? This doesn't really feel sane? And now I'm confused as to whether mm-stable patches can collect tags, since presumably this was in mm-stable at the point this respin was done? Maybe I'm missing something here but this doesn't feel like a sane process? Thanks, Lorenzo [0]:https://lore.kernel.org/all/20260218200016.8906fb904af9439e7b496327@linux-foundation.org/ [1]:https://lore.kernel.org/linux-mm/cover.1766631066.git.baolin.wang@linux.alibaba.com/