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 DDB27C48BF6 for ; Sat, 24 Feb 2024 21:54:40 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 448B36B00D3; Sat, 24 Feb 2024 16:54:40 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 3F8DD6B00D5; Sat, 24 Feb 2024 16:54:40 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 2BFFD6B00D7; Sat, 24 Feb 2024 16:54:40 -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 17FEB6B00D3 for ; Sat, 24 Feb 2024 16:54:40 -0500 (EST) Received: from smtpin24.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id DE53840288 for ; Sat, 24 Feb 2024 21:54:39 +0000 (UTC) X-FDA: 81828052278.24.D8B1350 Received: from mail-oi1-f171.google.com (mail-oi1-f171.google.com [209.85.167.171]) by imf20.hostedemail.com (Postfix) with ESMTP id 5502C1C0007 for ; Sat, 24 Feb 2024 21:54:38 +0000 (UTC) Authentication-Results: imf20.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=hUN6Qgr7; spf=pass (imf20.hostedemail.com: domain of 21cnbao@gmail.com designates 209.85.167.171 as permitted sender) smtp.mailfrom=21cnbao@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1708811678; a=rsa-sha256; cv=none; b=mp0pHTr3JxPsow1h8ZH6sgEP+PPSKIPVBmW4bYN/ieF9vLiyvWFJr92YbVZ+xt3BeLaddp wa7n2jayK9fSBwItHANvhTIDpTMFZihkoBQ0jbJUZuJvmpxcK5h8p4Qpir8fVy65kaAfwR B/JAO/hRML7Xo3Ke8AUOm/FqFwTBvTM= ARC-Authentication-Results: i=1; imf20.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=hUN6Qgr7; spf=pass (imf20.hostedemail.com: domain of 21cnbao@gmail.com designates 209.85.167.171 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=1708811678; 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=KNOM9oiyBitDobU/S8OlbO7Mx6TfDFV84HlF8D6VIPo=; b=RVH7OB1iggWUkzlYn8t4SkP4DFTVHHgzQwUXUhMu3CpMaogArvorx9QdiLG8WL0xGXx/kT e+lzUCVxWcuG+x+ss0VDRa/SOAJA+LQ3CMMdX4TcEbG73QF8UmNxQIBMwhLnqkMmW9J3iE tI6A7C+d/9tbl5ZGRSSIzL+p1RW99yY= Received: by mail-oi1-f171.google.com with SMTP id 5614622812f47-3bba50cd318so1289455b6e.0 for ; Sat, 24 Feb 2024 13:54:38 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1708811677; x=1709416477; 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=KNOM9oiyBitDobU/S8OlbO7Mx6TfDFV84HlF8D6VIPo=; b=hUN6Qgr7ZfD5e+ivVSQ2vBV102dJfKzKzS5xGRtap/urwGgJ53a7wqbzf8TP2HmiYz iH2WRwKq/knln9gJgQazyZOY1P13fRe30091s7xQu+JIl4VMotmq6LvPTqFfelC8evVd 11XUmobNMo/0oOXlgXUsFjUDidzSR2+9Ck8j6xIlI3r+CppHKeTwFGI2GQULKiZB+fDt 7qwd8/wI3e3FJ2ymD0hIaWdpOzMFQtCPm9EC9aRsjL7HjPPiheJfUROjWxWVsIO+ieT2 iV2/vhzq7AKhL4hXfJ6y+HLimqScgXBIj0wtkLcpJnGfbNsS0XmhgNCeGGggyjnBeX/a 9SVg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1708811677; x=1709416477; 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=KNOM9oiyBitDobU/S8OlbO7Mx6TfDFV84HlF8D6VIPo=; b=jsqdwdgximmDN5Rccs6sB1tB9z1L4rZttt6GeEdiCRKMbHkxC/BYrtm2zjC5xro/MN 0FJPoZ5foITKLytjsODeDx1SBDmbA5L9pi84sR2dDfguQFdQyTbNpgDCcJJxq1jcvbgt S2UmeJO0QrY5tdBJBkW7loP2YNNRqGGrcrluCOINBUJqbfRNi1A/r3k9P0s7LyNYZ6Oj fJ1b4R1tivdjEWlsxuqYonpadzi7haH4Vkuf8uEhJTTk7h5Mm4otuZ5pWMKzpu5a9LGd dpH3OEuY/5p0wpSQbOs1qBzSLMomwa06q8dtNFnohfk9OpA1WRUH3dbiLOZZs9tOM2rQ HSKQ== X-Forwarded-Encrypted: i=1; AJvYcCWUBV7xK8otnAnj3/DvSt+7qJqifa5llC1jjx4LKVmw/CFEb4/oOy1fDCnXPmaiRGRkAOwXWOONvYu/bEtnAVANSMU= X-Gm-Message-State: AOJu0YwUQI6wrzLKWpxQZA388bW/M9RJZuDTN4l7vHwIqrJ2xQO4v5by jg+294b2H7563Ap+CoSNSX7Gw30W2mxcz4wf2uU6NC1Iscn1KYTSygFELdOF1PtR+5y6NY2EosY 8vrCLvoD+ndKYOHNN0qgCRy98sow= X-Google-Smtp-Source: AGHT+IG0sB1MzcqzE2cuAijnJKjDK/eWUOZNo7lYgzsErvz7w9e4P5P+H93n+t7i0y3btQP3MfNnA97f1gq2FTKQbbg= X-Received: by 2002:a05:6808:1249:b0:3c1:8590:58e3 with SMTP id o9-20020a056808124900b003c1859058e3mr4035948oiv.57.1708811676021; Sat, 24 Feb 2024 13:54:36 -0800 (PST) MIME-Version: 1.0 References: <20240224205453.47096-1-sj@kernel.org> In-Reply-To: <20240224205453.47096-1-sj@kernel.org> From: Barry Song <21cnbao@gmail.com> Date: Sun, 25 Feb 2024 10:54:24 +1300 Message-ID: Subject: Re: [PATCH RFC] mm: madvise: pageout: ignore references rather than clearing young To: SeongJae Park Cc: Minchan Kim , akpm@linux-foundation.org, damon@lists.linux.dev, linux-mm@kvack.org, linux-kernel@vger.kernel.org, mhocko@suse.com, hannes@cmpxchg.org, Barry Song Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Server: rspam08 X-Rspamd-Queue-Id: 5502C1C0007 X-Stat-Signature: ekh385qdazfa57xmrrkizj7gm4p38nzm X-Rspam-User: X-HE-Tag: 1708811678-115191 X-HE-Meta: U2FsdGVkX18R3A2tWcl2d5skABgzWI0kwEYjaT+N8LJyH12LOhdM59mAnE07LHJHOyl7vMdvO0tgl800uVwg+zB6HLTKPTQSL2M6GxteNh0FLZGgNZdu8wXdrIdvrsj2UD1YDjTnHZzGcvND6AqLf3UbFbKEJriyG+FTefhJoUzDU91B0KRnV+fYzCxSNF6oOcmTqYfIDlGoJmldN+kTMFU2TjyLb7BMDxdBBQHibkb9V3bdxQTlXgniXAjxuLrdh7Fq+TXtcp7ohU8mmYhKvVWYK8b09aB6w0+mKeidfy0fy1srxi3UX2ev98x86JlU3booN3FtmE6sQuEhDe/s4DgAo8MUS4Jk+vDxR1ZWPoKkmg6h818IpU8W3lnExti/LTRxVt8BQ6i30xSWIdbmM3UgX/2JvbWUU9e1ckISeV9Iaeo7Hc3iCDX7OgXBceGLguWKCYdYRgfkg+UBkZMLXnOLLjPWv0ugMefvBX2mT1yummRF/2Br3171rmlRGAoUxd+Dy6FPQ6srx2JzZm05lo+uIUcjzGQz+H1k/GIM4684i7wxzbQzwXfixTC1771qHmKJNN5jbNOR8Km48pCoCflBfF+FKc/ZnQANsD0BuXkGx9mqrY6agxbo8KkdsqgupAHoKWAr3ge+g8hOSxpCMkWEr8tbyAAsI2xVquOoIFE6xNeOxZgk8Bw7mi/x/iQL5AaSvwLaU1NyH7Cq206aueCKwNIfk2WuU7OnwPNzx0e6q+hZ7RWpypidzG3ocr243qKL8dkGryZh+spQ8eaMRhoO+O6mGb+aBVfEeGlo4vGa3bdYu3k99sWSsZcNSZB2WIGm3IjVfs+NbLOuF32EzxF5hV//OJkAzdDFOwRfA+2nbXUdB/SRQ6uVFrqeRVHoiBRNBqAnwgDncLUlMSseYQKnXwNbQxKWHxUkD5c6Pk96MT2G3/5U0u2SY1wTDweso7RP5YLhUeuRIE9WEIA uuWZH9ja un2rftubiayrhbR2Qzf4stfRDXWydwBVlDXBw X-Bogosity: Ham, tests=bogofilter, spamicity=0.001779, 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 Sun, Feb 25, 2024 at 9:54=E2=80=AFAM SeongJae Park wrote= : > > On Sun, 25 Feb 2024 04:01:40 +0800 Barry Song <21cnbao@gmail.com> wrote: > > > On Sun, Feb 25, 2024 at 3:07=E2=80=AFAM SeongJae Park w= rote: > > > > > > Hi Barry, > > > > > > On Sat, 24 Feb 2024 12:37:59 +0800 Barry Song <21cnbao@gmail.com> wro= te: > > > > > > [...] > > > > > > > > BTW=EF=BC=8C > > > > Hi SeongJae, > > > > I am not quite sure if damon also needs this, so I have kept damon = as is by > > > > setting ignore_references =3D false. MADV_PAGEOUT is an explicit h= int users > > > > don't want the memory to be reclaimed, I don't know if it is true f= or damon as > > > > well. If you have some comments, please chime in. > > > > > > Thank you for calling my name :) > > > > > > For DAMON's usecase, the document simply says the behavior would be s= ame to > > > MADV_PAGEOUT, so if we conclude to change MADV_PAGEOUT, I think same = change > > > should be made for DAMON's usecase, or update DAMON document. > > > > Hi SeongJae, > > > > I don't find similar clearing pte young in damon_pa_pageout(), so i > > guess damon's > > behaviour is actually different with MADV_PAGEOUT which has pte-cleari= ng. damon > > is probably the best-effort but MADV_PAGEOUT isn't . > > > > static unsigned long damon_pa_pageout(struct damon_region *r, struct da= mos *s) > > { > > unsigned long addr, applied; > > LIST_HEAD(folio_list); > > > > for (addr =3D r->ar.start; addr < r->ar.end; addr +=3D PAGE_SIZ= E) { > > struct folio *folio =3D damon_get_folio(PHYS_PFN(a= ddr)); > > .... > > > > if (damos_pa_filter_out(s, folio)) > > goto put_folio; > > > > folio_clear_referenced(folio); > > folio_test_clear_young(folio); > > if (!folio_isolate_lru(folio)) > > goto put_folio; > > if (folio_test_unevictable(folio)) > > folio_putback_lru(folio); > > else > > list_add(&folio->lru, &folio_list); > > put_folio: > > folio_put(folio); > > } > > applied =3D reclaim_pages(&folio_list); > > cond_resched(); > > return applied * PAGE_SIZE; > > } > > > > am i missing something? > > Thank you for checking this again. You're right. > > Technically speaking, DAMON's usage of MADV_PAGEOUT is in vaddr.c. paddr= .c is > using not MADV_PAGEOUT but reclaim_pages(). Usage of reclaim_pages() fro= m > paddr is different from that of MADV_PAGEOUT since paddr doesn't clear PT= E. I > was confused from the difference between vaddr and paddr. I actually wan= ted to > document the difference but haven't had a time for that yet. Thank you f= or > letting me remind this. Hi SeongJae, thanks! I bravely had a go at fixing the damon's doc[1]. as it seems the fix is anyway needed no matter if we have my patch to optimize MADV_PAGEOUT. [1] https://lore.kernel.org/linux-mm/20240224215023.5271-1-21cnbao@gmail.co= m/ > > So, your change on MADV_PAGEOUT will make an effect to vaddr, and I think= it's > ok. Your change on reclaim_pages() could make an effect to paddr, depend= ing on > the additional parameter's value. I now think it would better to make no > effect here. That is, let's keep the change for paddr.c in your patch as= is. thanks! it seems everything is quite clear now. > > > Thanks, > SJ > > > > > > > > > > > > Thanks, > > > SJ > > > > > Thanks Barry