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 A4943C48297 for ; Fri, 9 Feb 2024 20:30:15 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id E1C4C6B0074; Fri, 9 Feb 2024 15:30:14 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id DA5DB6B0075; Fri, 9 Feb 2024 15:30:14 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id C45DB6B0078; Fri, 9 Feb 2024 15:30:14 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id B12F16B0074 for ; Fri, 9 Feb 2024 15:30:14 -0500 (EST) Received: from smtpin13.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id 76F79C1091 for ; Fri, 9 Feb 2024 20:30:14 +0000 (UTC) X-FDA: 81773407548.13.533F33B Received: from mail-lf1-f52.google.com (mail-lf1-f52.google.com [209.85.167.52]) by imf04.hostedemail.com (Postfix) with ESMTP id 9C1C440014 for ; Fri, 9 Feb 2024 20:30:12 +0000 (UTC) Authentication-Results: imf04.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=f2m5LsYN; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf04.hostedemail.com: domain of avagin@gmail.com designates 209.85.167.52 as permitted sender) smtp.mailfrom=avagin@gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1707510612; 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=dMjKIw54kDOKhRSgoZvijwtD0+nr1hVe+puyGI6149U=; b=zeseMpQnYuHEr2Ze+EKcXYldSVNJ7Q+o1qfo9B7+QYaXfyTBHfolUqghpse+amXQckh1cV DeL1P51dS/iDEz8nfz91Cs2XehcMq083UY31IV1jf4USO30RC3l1Hbr+MIP4s5/aUrrxeF P2/Sw92BffIC7SPOdkFVT5NAA44/CGw= ARC-Authentication-Results: i=1; imf04.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=f2m5LsYN; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf04.hostedemail.com: domain of avagin@gmail.com designates 209.85.167.52 as permitted sender) smtp.mailfrom=avagin@gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1707510612; a=rsa-sha256; cv=none; b=ymk7fWHqLvPiF5nUJK7Dm0Vr3FRo5XHFMeDzFXbWsvryxWuaPu/ObCzX1kqib87qzID7F4 SU9O0WHJWaNGYdn8XXxY1jphhF1M3Oo1JbGxCOFRnIgUl2lLNBl8Xyr0vlay5+nzNwTVjn CUU+JGe/fRfcocLwtsoDDtNiuxn9nNA= Received: by mail-lf1-f52.google.com with SMTP id 2adb3069b0e04-5114fa38434so1536545e87.0 for ; Fri, 09 Feb 2024 12:30:12 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1707510611; x=1708115411; 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=dMjKIw54kDOKhRSgoZvijwtD0+nr1hVe+puyGI6149U=; b=f2m5LsYNCCVK9mxenH2qf02f96uWqwg/h0b8SWsb47zp+GXjxk0NzLWN0d4UHKlsWn kk+/q0boGZmdmgDBZ6qQ+uHsUYdLeTbRpOLJvaBFpJNS4CoyoVxioT3XLQKh6TPHRC04 ScZ8LbxxGtgwRIsOS/OipfXi/kW9MJhsHk/CdAatUetrbctEvZhS2UtbwGkTmcgthwOl OKwuJKa4edhnNSaqCnt0apQYaKA8WTg7xlKbPZuAS7nMRY8FhJYmvdkVNV8ZHXo6MeZY Ou2IyXr6A1HVefRrbWEWvdhnze+Ux4PEJ9Sc7b8tjsUcv5HM5+Pw3s3XiZuZa08vlqeH T6hA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1707510611; x=1708115411; 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=dMjKIw54kDOKhRSgoZvijwtD0+nr1hVe+puyGI6149U=; b=Shqzzdl0y2sI9PVZEsFiDmYoTl8pcUDfLW+qwic8dfBQe+ZjSD2FRjA3j1PFiXOE+d TcHoAQwXVoF/a2phxfzCSBmPbK3HKgUJkbGuHp9aTXmtUGhUqzR4hTCmRvgDq/pehbaA xPqcKiRMKmktlyh87x39gIlOhV5zfr9JFFut4TutQubv6SzJmweCQ7r/FYzyff3KTF/G 2PuHRVOScmrRbn6869HRjQvOvjHHBGJb6Oi2lVdTOXIwXDi2eZRHpFfSzpthJu76Fykl s2YLF9lDNh530SMHGjey8p4XHbVK95t1ykrdKUYglBJX8pXK3Dj6m+cOpweSSSK6TmHx Z57A== X-Gm-Message-State: AOJu0YyUq05ipG2Hjf+B4QpdnXvjuk3uxFv0y/EY3Ddk6F3wwBu3A9kb om+1BAnAuADSvKq3PwdA2Bwk4gnc4g2sSpr/9PdjlxtWuePPBlCcYH3AH6IArBmbcbwKxqU+u+O 5TZv9bZtbr+VGCrA4QjWOAk3AK3mYmZBC X-Google-Smtp-Source: AGHT+IG4gptGGFiA3p/G+Fj+qG4bgNGBjD1NRZRpVscN+pmn/Ut6HqPv9jnp69HV+F28gohYiS0SQIooSbtlWerMKb8= X-Received: by 2002:a2e:8519:0:b0:2cd:5cfd:b19 with SMTP id j25-20020a2e8519000000b002cd5cfd0b19mr62539lji.19.1707510610570; Fri, 09 Feb 2024 12:30:10 -0800 (PST) MIME-Version: 1.0 References: <20240206084838.34560-1-usama.anjum@collabora.com> In-Reply-To: <20240206084838.34560-1-usama.anjum@collabora.com> From: Andrei Vagin Date: Fri, 9 Feb 2024 12:29:58 -0800 Message-ID: Subject: Re: [PATCH] mm/migrate: preserve exact soft-dirty state To: Muhammad Usama Anjum Cc: Andrew Morton , Paul Gofman , kernel@collabora.com, =?UTF-8?B?TWljaGHFgiBNaXJvc8WCYXc=?= , linux-mm@kvack.org, linux-kernel@vger.kernel.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Queue-Id: 9C1C440014 X-Rspam-User: X-Rspamd-Server: rspam05 X-Stat-Signature: 8jow5eqpemod53skhcin73oic9hbmyot X-HE-Tag: 1707510612-447880 X-HE-Meta: U2FsdGVkX19ggZ/dTHSXLBTSEfeogz/X89kLqSXZH6fNdluKxV4ibW7H6iP4mIriINwcZ2eaEAKqbXAVdW1woY1DDz1jIg/1gko8Vzc0GyVRtxyVdd3cLHnOJQftA1dTnupSZ0ZJroTmlMNzIg5HHxqNhnD1iqa3S/MJc/5WiFwwPn93RMdgDhQj5TmjRapss7YtdxAoPjm08nn1CSbcp9yVUBq+sue1QHPXanXfg3AyO8iOEqiGlTxNz+GwsFFqMxDcjwRL2Ie3EjQI97e8iMMjfS4mBnJecrHPQ4p3eq8VDVYtCRbNgTRS4poWYw/EyYqD5/dwjWpAiB8yEOTnIzuqOSTcQQ0BIR7YV1QIb8sbPm5eR7rEVna3SSTkHK8O0yFfxuk6akWCf1rwJhsTgxRH9K7VR7ILKJv71Z7yQ9RxiAJEFohPVJPw709w9TiBUXpcQkVf21Qn6GFb3lOLMFEPePie+L0Wx7gvUYYNyNvlXUgP6qLbvihFdLy976DVZOy7/ilmyDV0qAsURckKXGTIvOmIviZN8bq/ar/gHgHhO2g8f74dsjB8DH5ohmhvjxg9E7Nf+PBEXVCn8mJCazyIgKSc1NpOoa/VfRVMyfe0nLqWSlqLtIM8VA1z0PRyhh7augoWug4OJeEQ1mqsQ/yuzs9IpVcWxJ5/CHTyb2GjlSVGOIApOozwE9j3XSkFRPKifskrLylU1wIq6xAnpxL+zsNaq3ws2ShAS76KzQZvhagZX7COx3lB6KMOMmV0QUSMnxX3DPd5Ag52h5MeDNsTVpf++mX8RmYRCgwadomNztfe/eMhPqp6aVTtc17Y6Wl49HXzQXj7kMwyoayF+uTGfDgizcOtrljbd9mNBmV2SLqRypcv0EO24CxeW+HrCj75Tno1Lx44fcbsbdH7vyQt8JDgwlO6/aZh0TtTrvuclOYecXCs1cMZmTj1EyYISKan9PiRTqJURggA9Gb OQiVZGx2 klil+j/nQJNgmSUus3vL3+o3OBT5JBy2X345Cch/BJ4GYN42b3aWoAvHdPH5bb7X2jPDyefmBwhb7VL1bkN2KsghObsefehKXuoT3bgJql6NFvo3JRkINMiHbRHU24/cIX4OwuAfkKXuvWTocxO8Idp6VDExB6zpwS3O5poSMyGJ6fGj5DUB1GNG/NdLJGyXDaqTtUlolRsQ6AfX5R8fjvLLEm3mi+R+NdRD/fPHUw0GZXFZNPgcjmavdq27UH/JhHRYuqyJztKRfYXZdSRx89Qeb0GtWQdmK5hsj2dIC2HnkZnXXxiC40ofOChQuVwPImd/WO/IoEH8sIUXqGtc9FALQykeqdb66caHcABQoKKkHn3mhlf/86OUrWa45VUMSGl9yt/3RnnhqRYvMGkZ/oB6+UiTtX+cTnUXP0ZegcKfNl764uTl9lkx1g8dVjcZmP4CXQjEXhT8PH/2qipel5FxVaFsMfvqzqHGB2KKv5yCmCrkCEnDuXv6oGHx3evOgVrqFhPeYB+zSxxI= 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, Feb 6, 2024 at 12:48=E2=80=AFAM Muhammad Usama Anjum wrote: > > From: Paul Gofman > > pte_mkdirty() sets both _PAGE_DIRTY and _PAGE_SOFT_DIRTY bits. The > _PAGE_SOFT_DIRTY can get set even if it wasn't set on original page > before migration. This makes non-soft-dirty pages soft-dirty just > because of migration/compaction. Clear the _PAGE_SOFT_DIRTY flag if > it wasn't set on original page. > > By definition of soft-dirty feature, there can be spurious soft-dirty > pages because of kernel's internal activity such as VMA merging or > migration/compaction. This patch is eliminating the spurious soft-dirty > pages because of migration/compaction. > > Cc: Micha=C5=82 Miros=C5=82aw > Cc: Andrei Vagin Acked-by: Andrei Vagin > Signed-off-by: Paul Gofman > Signed-off-by: Muhammad Usama Anjum > --- > mm/migrate.c | 7 +++++-- > 1 file changed, 5 insertions(+), 2 deletions(-) > > diff --git a/mm/migrate.c b/mm/migrate.c > index cc9f2bcd73b4..05d6ca437321 100644 > --- a/mm/migrate.c > +++ b/mm/migrate.c > @@ -211,14 +211,17 @@ static bool remove_migration_pte(struct folio *foli= o, > folio_get(folio); > pte =3D mk_pte(new, READ_ONCE(vma->vm_page_prot)); > old_pte =3D ptep_get(pvmw.pte); > - if (pte_swp_soft_dirty(old_pte)) > - pte =3D pte_mksoft_dirty(pte); > > entry =3D pte_to_swp_entry(old_pte); > if (!is_migration_entry_young(entry)) > pte =3D pte_mkold(pte); > if (folio_test_dirty(folio) && is_migration_entry_dirty(e= ntry)) > pte =3D pte_mkdirty(pte); > + if (pte_swp_soft_dirty(old_pte)) > + pte =3D pte_mksoft_dirty(pte); > + else > + pte =3D pte_clear_soft_dirty(pte); > + > if (is_writable_migration_entry(entry)) > pte =3D pte_mkwrite(pte, vma); > else if (pte_swp_uffd_wp(old_pte)) > -- > 2.42.0 >