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 424C4E77188 for ; Mon, 6 Jan 2025 14:40:15 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id B25FD6B0089; Mon, 6 Jan 2025 09:40:14 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id AD6306B0093; Mon, 6 Jan 2025 09:40:14 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 99EFD6B0095; Mon, 6 Jan 2025 09:40:14 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id 794536B0089 for ; Mon, 6 Jan 2025 09:40:14 -0500 (EST) Received: from smtpin22.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id 1EBBE16027E for ; Mon, 6 Jan 2025 14:40:14 +0000 (UTC) X-FDA: 82977287148.22.E953D4D Received: from mail-ed1-f54.google.com (mail-ed1-f54.google.com [209.85.208.54]) by imf15.hostedemail.com (Postfix) with ESMTP id 3FDC8A000E for ; Mon, 6 Jan 2025 14:40:12 +0000 (UTC) Authentication-Results: imf15.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=TCXxRi8i; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf15.hostedemail.com: domain of ioworker0@gmail.com designates 209.85.208.54 as permitted sender) smtp.mailfrom=ioworker0@gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1736174412; a=rsa-sha256; cv=none; b=bnaItY5qdvbjFbUsCm8Y94SIvdVzmbwlwhNl6Y/zRxzSGt7qawGjhzlgpd0B8rQ0iXtg/o zbjLyF3EJwNQStaeXmKefAxLVgxKZ2n8+hn/vP8YAPcRZ4qXGD5tzvksj3st6t2IABn8Fu 684XAGjCkEGeHjJThwHfigMlM8Evhog= ARC-Authentication-Results: i=1; imf15.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=TCXxRi8i; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf15.hostedemail.com: domain of ioworker0@gmail.com designates 209.85.208.54 as permitted sender) smtp.mailfrom=ioworker0@gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1736174412; 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=DtcAMCs7sAFcLIuNLNjqYqwZL1uSmgaWcft4AxdeRMI=; b=UgyexENSKjOUJ/SDX3N+jTx99PKbtXWBaw7UqloGyg8t1KgZO3fOvEiCYZes6hwpMxTISv SYhVxNSerF+cSASwig9a4ByDW+PWqm/xOGo/RYmQkJok6V3bAVbPvRCFHiqY9/JnX0Ot68 t2eYwbevbBavXviw/LWDCBmhH1MK67M= Received: by mail-ed1-f54.google.com with SMTP id 4fb4d7f45d1cf-5d3d479b1e6so20727246a12.2 for ; Mon, 06 Jan 2025 06:40:11 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1736174411; x=1736779211; 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=DtcAMCs7sAFcLIuNLNjqYqwZL1uSmgaWcft4AxdeRMI=; b=TCXxRi8i+74LH6XsdrW/k5Bmm/wS2laHPxbBl1PZgOvUsbvaGEXnBSQiuwwbNkvFe9 JIwPP7DzEMtallYpeARpkTr/G5lkh8S6/Q3DZ59JwKjfekhJylJ+p6/VPgOGqjDeBolw lPrgzsZIYyrUgJM6y5e3XdKvX2O5W7Lq5OHf71PVtchzc+PRl65IOcsDhGUHWz7c/rPd m7IRL2R3mhZpyx88Ayix9e/3g4Do1gloxguL4ATzZDSjJGlPpc+VO1md2lbh2DwO7mc8 uzMrOFpVL1D1R1gcr2IzKQ5Fvb3Kad05HliHNb51UkYqG2njfEGnVhm8D5KWzyb87lyW 7oYw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1736174411; x=1736779211; 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=DtcAMCs7sAFcLIuNLNjqYqwZL1uSmgaWcft4AxdeRMI=; b=V5tEYbZk8Q0jXjCs2lwKOcZlfDaQdiJAHOcDJh3CC7odhcYHGubyVwL4uW3MfpoSqP OyXbjIy/ncx9QIi4ioP/D2JMxW5l2JsMiBmU71t6FdyCmyav0EVxU9pcjqu2tY9DgMon m36EFJ3K+kOEQWIrwmyhLD8QdVAuN8VR293tWU6frsNtQCnH2iI49IS4JgBj0MS/q8NW HJ2AJV+8iq0xPlNA070zOFjzY0Kg9g9GuAufknb6ixwpCC6SSHxMOmGdDr/IUx/pA/A4 BzB7FG+Lqt9eI7FBkq3lz7Gi59xGwzcRm8g4cwsYIRRa+fAJLHtUkKlJPnWqHm0J6nHd RuSQ== X-Forwarded-Encrypted: i=1; AJvYcCWMrO6nWyKKNL+wIUEKilneamccuKQfJF3aZVgKG+e2Eff0XjcBGgIdt4Eg5nqHRPgNOhY6/kEPfg==@kvack.org X-Gm-Message-State: AOJu0Yy62jb8bks+H+87+xgJKpunAgsoL/clROoQzEZBaTx/HhF1V0y6 HsiTN/BNMPd0wVgcsBXgKBTAM5Jap781/2ROV+IOQpnxBISFTVkInss1EJp7YNifOBeNpoirYUv 94yP4LkjuU1lYmlkT3/IuryziqCM= X-Gm-Gg: ASbGncsr6CGL07VVwX7n7ktV8CGjBuvKYZu0tGDvNX/mUFyleJBK8N0yP7tCrydH7nV lu2dvo+eRmFGRzWuNYsSCsvXn1oI8CMTJS8CUQ14Y X-Google-Smtp-Source: AGHT+IG2uwA3rD9Qlfb5V7qy1YNjmed4HGhC51YNzv3jhsmOiAEItDVYPORCoU1aPeG7pl3uTfQcUk8JRyq0A6YgBeo= X-Received: by 2002:a05:6402:350b:b0:5d0:c7a7:ac13 with SMTP id 4fb4d7f45d1cf-5d81de33ee2mr125498165a12.34.1736174410443; Mon, 06 Jan 2025 06:40:10 -0800 (PST) MIME-Version: 1.0 References: <20250106031711.82855-1-21cnbao@gmail.com> <20250106031711.82855-2-21cnbao@gmail.com> In-Reply-To: From: Lance Yang Date: Mon, 6 Jan 2025 22:39:34 +0800 Message-ID: Subject: Re: [PATCH 1/3] mm: set folio swapbacked iff folios are dirty in try_to_unmap_one To: Baolin Wang Cc: Barry Song <21cnbao@gmail.com>, akpm@linux-foundation.org, linux-mm@kvack.org, linux-arm-kernel@lists.infradead.org, x86@kernel.org, linux-kernel@vger.kernel.org, david@redhat.com, ryan.roberts@arm.com, zhengtangquan@oppo.com, ying.huang@intel.com, kasong@tencent.com, chrisl@kernel.org, Barry Song Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Stat-Signature: nsfyfoigpebdjdisya4p5ddr7ej5eyf4 X-Rspam-User: X-Rspamd-Queue-Id: 3FDC8A000E X-Rspamd-Server: rspam08 X-HE-Tag: 1736174412-447608 X-HE-Meta: U2FsdGVkX18+sRmxsIGg9wd6cSpxSmUiwtSjuFVCdx8/BheDJGcI/c48LlCXI6RA7DFQMdBCBJHaacpzpokWdESIHoZKAtoYBopagbvg8YcQiMeKJG6Ywl2vlLBdx/78xeiguXsuhrYZtwXV9Gb78+M53cU6X/fAuIEAHBA9ZrQ43gAYWC0/18GEWNpDQwXZ8eP3cCBnqmU1+8KkAbsVeaERCvZpFZhiItFCg/36mgwwfUQ6vlHIJaZQ7j+pK3X0zJSrQvfS8DSmlKb0AkgE1x8XVB4wO+X97sGyxNyaa9uXnCdbXAVVLBbhdmD/nQreBUN8UAnPZvwmlObET9xKS1FtCyVnX4fWzmgwgrPGZkLk3ukD/iDvIFH/3mvyooR1kUcIG43QfbQPn6ybZDZd+619H6IsnTJ7ehMqSXN7Axq2iXie+rwgEmQZ9VI0nlV4RjpmMPoqV6v9Z9eWp2fejZPe6nl8PYRrbCCH4plCs36OvtqRG7FUoqsACezdAg8mxPGBp5sVeR7fhf1yRA7bCHmUXl6olZrw1QQ9TqpvZoDJdG1jTxzliBMU9OSPj6z2VbhHG6epGlOWGCUNG7KkAlqmIwewzLrfEgPQvo+GWO4F5EQEXHFeUzANxk5LpOeRhZKJxYrC7bKDt6uQtoSwZ9yKhNLxgZ6mujKhIAuCYi00TJ2aYBpIpV5t1uhAHRWhwFAEEbY8RQ4tjTRPu7OFcLsmkjpgWlbXFGFTXkzhUsvZHqs4WzQyKr1ooF4oZ3BnPvfjPj41GcQln88j4ii96cjuwDZh4QXQCXxxW3GLOdYLIZl5F/Gv5LkIKjQ8lnOibswU0dYLhG9U/oFNK6NIKPeNcFpDiT68YuiFARg9CQsT+kZQ3g3bkrJJRhQrKIg7BNOvJ8E8LB0S4omBCnO8g3/uqnbjB1a1d3Kz5aW3MWNuoRK8SV1wCbAsZ7Nl3GJcNBCOmOtssrlttmfMvgU DPekomPp dBtWmVYyhLVNETu0lAaqGowrSKD/BtwKZJqObp6BbuPSW1yjNzVkyWTvuU2Mzji0Jfgnua1XRF4MeMCER1aKex0yU/U6KkV7/5U3N4/ri2fu3LmUOoHKNbE2SljrVUMiZuQb+JjqsLQqIPuUU74zShWf7uzmvTK30DExivQtYfuU/NrxuQbtVMZ3N/qgskxSj/+M8V1eoorF852k8qZ/2rPc9BLqBnUyvzattoQZJ/He0nOcqZ5wgJ7xVWCzqO32BRJO3SxzpGr9hkGt6FA1WGQWZxARW4cOFRpVx47PDJOERSN25LEPWWGIvbABMF179b3hC3wSYk/VH84urWpu+WwWp7uty+94ubePedTR7jMhIhFN52hRGPB6KtfipAIP01WT0gJC1200JZ0duOkn9Sb7zO+tQzaJReII7f/NC/+J9ITVo7J4/VSif0w== X-Bogosity: Ham, tests=bogofilter, spamicity=0.217812, 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 Mon, Jan 6, 2025 at 5:34=E2=80=AFPM Baolin Wang wrote: > > > > On 2025/1/6 17:03, Barry Song wrote: > > On Mon, Jan 6, 2025 at 7:40=E2=80=AFPM Baolin Wang > > wrote: > >> > >> > >> > >> On 2025/1/6 11:17, Barry Song wrote: > >>> From: Barry Song > >>> > >>> The refcount may be temporarily or long-term increased, but this does > >>> not change the fundamental nature of the folio already being lazy- > >>> freed. Therefore, we only reset 'swapbacked' when we are certain the > >>> folio is dirty and not droppable. > >>> > >>> Suggested-by: David Hildenbrand > >>> Signed-off-by: Barry Song > >> > >> The changes look good to me. While we are at it, could you also change > >> the __discard_anon_folio_pmd_locked() to follow the same strategy for > >> lazy-freed PMD-sized folio? > > > > it seems you mean __discard_anon_folio_pmd_locked() is lacking > > folio_set_swapbacked(folio) for dirty pmd-mapped folios? Good catch! Hmm... I don't recall why we don't call folio_set_swapbacked for dirty THPs in __discard_anon_folio_pmd_locked() - possibly to align with previous behavior ;) If a dirty PMD-mapped THP cannot be discarded, we just split it and restart the page walk to process the PTE-mapped THP. After that, we will only mark each folio within the THP as swap-backed individually. It seems like we could cut the work by calling folio_set_swapbacked() for dirty THPs directly in __discard_anon_folio_pmd_locked(), skipping the restart of the page walk after splitting the THP, IMHO ;) Thanks, Lance > > and it seems !(vma->vm_flags & VM_DROPPABLE) is also not > > handled properly? > > Right.