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 B0926E77188 for ; Mon, 6 Jan 2025 19:15:47 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 39B526B0082; Mon, 6 Jan 2025 14:15:47 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 34B376B0083; Mon, 6 Jan 2025 14:15:47 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 1EC046B0088; Mon, 6 Jan 2025 14:15:47 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id 00C256B0082 for ; Mon, 6 Jan 2025 14:15:46 -0500 (EST) Received: from smtpin30.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id 860A742AD6 for ; Mon, 6 Jan 2025 19:15:46 +0000 (UTC) X-FDA: 82977981492.30.EE26F2B Received: from mail-vk1-f173.google.com (mail-vk1-f173.google.com [209.85.221.173]) by imf26.hostedemail.com (Postfix) with ESMTP id A046414001C for ; Mon, 6 Jan 2025 19:15:44 +0000 (UTC) Authentication-Results: imf26.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=i1TwNdsq; spf=pass (imf26.hostedemail.com: domain of 21cnbao@gmail.com designates 209.85.221.173 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=1736190944; 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=AcqApmbWKT3sk0GInf43OOPg0TCNmwV698Dx8iiW9/8=; b=ApMO+MqFNWP2gzzqcYAVquvNFhatqsffgGcLjz4+psdOyPK88F30dcRKufPISkuvSDjCa7 XdcBaDI8W7n2UpnX6K9Zgu+Y+9UHe/27S1/bWDWcVz/z9HI3efsaigzyR4Udwjhr0i8sK8 wMf8A1KWL2CuK/wHT4xWdBJ69lfkJiE= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1736190944; a=rsa-sha256; cv=none; b=pxfSCK6xMeGjQP9KvrWO0NsU/2JDsTDF6/yiVwIHhCv9njP92vlKmY0SzL0IvzfcJBM9A7 Ve9KvkC/F4OK15IIwPOQMaggF1WartajHIEuaQc+lxVLyM72UxaHIWigEu8ESJuOKhG6zY QIG2LnUDbNzD1mAWfyGZ0JgbXmQ1ZqE= ARC-Authentication-Results: i=1; imf26.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=i1TwNdsq; spf=pass (imf26.hostedemail.com: domain of 21cnbao@gmail.com designates 209.85.221.173 as permitted sender) smtp.mailfrom=21cnbao@gmail.com; dmarc=pass (policy=none) header.from=gmail.com Received: by mail-vk1-f173.google.com with SMTP id 71dfb90a1353d-51bb029fdd1so5925543e0c.0 for ; Mon, 06 Jan 2025 11:15:44 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1736190943; x=1736795743; 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=AcqApmbWKT3sk0GInf43OOPg0TCNmwV698Dx8iiW9/8=; b=i1TwNdsqR9GUsNEonLgkb0ZE+X1V/hC4JQ5ZFOMN9wE/IirASq4Kuyl4G602xehbFv yOAwC/jmrF9E9mHneQqVuUeFm/jtu502hd4ognJfSRXn5Dv4pNmJLjJmzRd0cCUuFoeH 6fXoCIA9EC2fCpgKPIOwUXoz6IN6ca8YwhfEIlry0iPNaGhbM4UhfMm+CFyfOiRyI4aO +kmU+ZbeVkMgTDwpxjgg/u2Asx8M5LKKlkT/Yg776rxR/UQWe8caiEPsGghKbh+2eVrN KVj7Q+/1dXg1Ma2JoCoKWZWqAidGczrrUNV5+aSdMnDuu7NuwmI9ugdBmpbg/S9q1DUz Q7tw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1736190943; x=1736795743; 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=AcqApmbWKT3sk0GInf43OOPg0TCNmwV698Dx8iiW9/8=; b=lSs7atGUkaCedS9dLweRht9ksNo6hjjdikOHJna2Q5Rl7AtSaZsDhmm3rXMFilEKEu ZrouNHOpbd07QVS7M3wh4wBHueG8OdV03JGf5qce37O69DuZ0A65yRsFzfQq1Ck1bAg9 rvLj26evR6dQpMneooHwTrQJX4wV+vi+FjTxLZu4YCUYuLs26yqmX3+A4+BsgcqJhCfX CEwRAP+mTE2B+tqELhOOOMleDFfYmuPRnnl7jjNSMHs9US5oUS1T5kFOmPOxZEnQfqsf mDLRPZWjWfV7HXx2L30gnDtPpBxK7rAg3u/vQwaepNzIkbCaJlAm0Nks0vZMsh9gaOq6 Z/CQ== X-Forwarded-Encrypted: i=1; AJvYcCVkK9oV/jxxy4WHDhHrGhzN1ztI4tE0yTrY8Q5UFnjjt0t6zYgCNyJqMnO2HqnL8gLf/HB22ATAGw==@kvack.org X-Gm-Message-State: AOJu0Ywnq1S5UsOvNNgVsEi1aLQqQBWnTrE/EfTM00CeuJJW5BgYQafD 5xCOovIysb/arHIKkruhUeBeIvZ30pZEyxv0Wt1VChXJIw8D0ADPROiGGNbvhNdyW1BZO6VF8C0 /ANUThj3g0XxjgkN/OV5zBejAfw0= X-Gm-Gg: ASbGncsi9F/fPmY5xUnAYUBWHlgOvHXn4K4MiMxc2R1ioB19lZGq2JCDDW4++58oIy/ 1b7toamnGA3N6uRro0pKVjyyFceiUPQoMCc4mnWULMHt5nk/NU/82px7g1WPowix5vzSIuAQ1 X-Google-Smtp-Source: AGHT+IGI4L9aG9KQIYmcNGvadzGYb122Qid6REXJuL0qufX+aQeAZdnpQA5Rs3oza+4oIfLW73+wS3vWEJ8BQ270kb4= X-Received: by 2002:a05:6122:1992:b0:516:2d4e:448a with SMTP id 71dfb90a1353d-51b75c3a30cmr47151828e0c.3.1736190943561; Mon, 06 Jan 2025 11:15:43 -0800 (PST) MIME-Version: 1.0 References: <20250106031711.82855-1-21cnbao@gmail.com> <8dafd991-9d2a-48f2-b35d-5c2049992c84@lucifer.local> In-Reply-To: <8dafd991-9d2a-48f2-b35d-5c2049992c84@lucifer.local> From: Barry Song <21cnbao@gmail.com> Date: Tue, 7 Jan 2025 08:15:32 +1300 Message-ID: Subject: Re: [PATCH 0/3] mm: batched unmap lazyfree large folios during reclamation To: Lorenzo Stoakes Cc: akpm@linux-foundation.org, linux-mm@kvack.org, linux-arm-kernel@lists.infradead.org, x86@kernel.org, linux-kernel@vger.kernel.org, ioworker0@gmail.com, david@redhat.com, ryan.roberts@arm.com, zhengtangquan@oppo.com, ying.huang@intel.com, kasong@tencent.com, chrisl@kernel.org, baolin.wang@linux.alibaba.com, Barry Song Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Server: rspam02 X-Rspamd-Queue-Id: A046414001C X-Stat-Signature: szruo5tff3bifsjenawq5cw96kzj4khs X-Rspam-User: X-HE-Tag: 1736190944-240351 X-HE-Meta: U2FsdGVkX180dRuIxSd61QOlAFk6+3rJchIvAHr1XMMQrVKs2iGWv5/JU6+lYFq01woOaA/Lk4h6EnSWY1PE1cjiTThxV2rvD7dOoWDPJvwDiPdzHDRQO5O2iY3ds+FFcV4d8zSipNEH9LN+5x5WyFOAbQOWnwL/eiOhhY1fDIl53g1TY7bqsT/OyETjyr+ThTGpJYIEbY4bW7dzIEFyZsacYuPhz5PMHYZKnVXLtEChvdLg18JCuy9bgOPlNS5HbeSPn2xqBCfNI/Fg8YOlR6ZxVTjOXBejL7/vB20g4H4skCIrQdLF4KBnik2+7Cy3a3ZHIq+5FJjdGExJpfytDcYcNpvj8mCXFaGYiHvpusQ0DjUrUzDlJjTbSc3pbChmxcOrGU0Bvbfy+Lxdfwfakj8+rzXNVx6EG5anz8HPbHfhojKyrjF5q3Nc/89NX54IKzSpRfYp7Te65YsJ37JFD0pDKD1uGGaXyhSK5XGeXa6yly+977/mF8gGpCh+7z5eZ3+qMMM6Kuon6404UciQ553486OPQvbNDaeN0TWxlHdQjb58aGh5ifUJqOu7Fltcol2qZ4okhTWqMArt/619DWpcepaxUAa5m61IxLQvR0g6LUpkrR6J+Ai3cJHuI6WvV59YXHugLsby3qzc2WidA+YDsVJ3Ycqg9K929NIc5dWndIpqwHYv7Uk4aPOkP5laC1CGBOi3uvGx8yychAWXZG7v7Tb+jJFEkEXttb+5wX8C1JllZ8kgYs1BZSj/2sF535sUpdYO8f2JdjNwbezwWfUZ36uorTjenDc2dfqD87sbCUVKBdlI+KuRi7U8HY2waFGJYWigPGkGfjGI9crcpgDiYRQO6ZUCBN4IlXCozP2vDnDtmXiCCJIS0n4B77AnJ6GFZ9rBarpclKEixlQ2fFUkJgR6TuuC2SMUOCRMYEnuUdtCUsSKtyHqbl+Plj+BG65HaIwb8riCi9icJbn Rqng56C8 1y/IVJqelAL1pq5uZyrEErKCUrjiTGGa7l/mq2mEfnwqsSqakUPaifc7lgI1wFA8pw1z9BTzAYJwfLJdI72WkQFu6x24fpZsdRkXjClhlTA7CrbHiTmn0Gvg6H/duZm+A2GK4gygCGM8EnqG/9Ufp15K5t2qXdP8EvNjGoAiDQ9bJhA+zqomURHpqp3by1Yhb4c2HoumXci/gQ2mpf8ybuej19eyOkM0iHQcq72o9rL/GBZ4M8OHtx5UK4IOTjJDOzcPaTWCdkHMZ8Wfr31rRSe0yMyZRvwthho77w8TiX4Cajaul+ms1aTUyPYBP9TSEjDcJHZbi+Ka1oYADBc4p2t86AALt06Y1yPU5P/zGxekzrUsbotY5tsUdsGvFKSgPvf5F3Da+exj8NhQZrsyO/Sy9C0ell3CbguYH X-Bogosity: Ham, tests=bogofilter, spamicity=0.000341, 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, Jan 7, 2025 at 6:28=E2=80=AFAM Lorenzo Stoakes wrote: > > On Mon, Jan 06, 2025 at 04:17:08PM +1300, Barry Song wrote: > > From: Barry Song > > > > Commit 735ecdfaf4e80 ("mm/vmscan: avoid splitting lazyfree THP during > > shrink_folio_list()") prevents the splitting of MADV_FREE'd THP in madv= ise.c. > > However, those folios are still added to the deferred_split list in > > try_to_unmap_one() because we are unmapping PTEs and removing rmap entr= ies > > one by one. This approach is not only slow but also increases the risk = of a > > race condition where lazyfree folios are incorrectly set back to swapba= cked, > > as a speculative folio_get may occur in the shrinker's callback. > > > > This patchset addresses the issue by only marking truly dirty folios as > > swapbacked as suggested by David and shifting to batched unmapping of t= he > > entire folio in try_to_unmap_one(). As a result, we've observed > > deferred_split dropping to zero and significant performance improvemen= ts > > in memory reclamation. > > You've not provided any numbers? What performance improvements? Under wha= t > workloads? The number can be found in patch 3/3 at the following link: https://lore.kernel.org/linux-mm/20250106031711.82855-4-21cnbao@gmail.com/ Reclaiming lazyfree mTHP will now be significantly faster. Additionally, this patch addresses the issue with the misleading split_deferred counter. The split_deferred counter was intended to track operations like unaligned unmap/madvise, but = in practice, the majority of split_deferred cases result from memory reclamati= on of aligned lazyfree mTHP. This discrepancy rendered the split_deferred counter highly misleading. > > You're adding a bunch of complexity here, so I feel like we need to see > some numbers, background, etc.? I agree that I can provide more details in v2. In the meantime, you can find additional background information here: https://lore.kernel.org/linux-mm/CAGsJ_4wOL6TLa3FKQASdrGfuqqu=3D14EuxAtpKmn= ebiGLm0dnfA@mail.gmail.com/ > > Thanks! > > > > > Barry Song (3): > > mm: set folio swapbacked iff folios are dirty in try_to_unmap_one > > mm: Support tlbbatch flush for a range of PTEs > > mm: Support batched unmap for lazyfree large folios during reclamatio= n > > > > arch/arm64/include/asm/tlbflush.h | 26 ++++---- > > arch/arm64/mm/contpte.c | 2 +- > > arch/x86/include/asm/tlbflush.h | 3 +- > > mm/rmap.c | 103 ++++++++++++++++++++---------- > > 4 files changed, 85 insertions(+), 49 deletions(-) > > > > -- > > 2.39.3 (Apple Git-146) Thanks Barry