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 4B805C3271E for ; Mon, 8 Jul 2024 09:46:24 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id D083A6B008A; Mon, 8 Jul 2024 05:46:23 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id CB7FD6B008C; Mon, 8 Jul 2024 05:46:23 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id BA7BF6B0092; Mon, 8 Jul 2024 05:46:23 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id 9CF296B008A for ; Mon, 8 Jul 2024 05:46:23 -0400 (EDT) Received: from smtpin21.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id 483A3A426D for ; Mon, 8 Jul 2024 09:46:23 +0000 (UTC) X-FDA: 82316105046.21.55CA714 Received: from mail-vs1-f52.google.com (mail-vs1-f52.google.com [209.85.217.52]) by imf17.hostedemail.com (Postfix) with ESMTP id 8FA9F40023 for ; Mon, 8 Jul 2024 09:46:21 +0000 (UTC) Authentication-Results: imf17.hostedemail.com; dkim=none; spf=pass (imf17.hostedemail.com: domain of 21cnbao@gmail.com designates 209.85.217.52 as permitted sender) smtp.mailfrom=21cnbao@gmail.com; dmarc=fail reason="SPF not aligned (relaxed), No valid DKIM" header.from=kernel.org (policy=none) ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1720431942; 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; bh=SpLSB/CN2SDFiRQYc+S++TJqbe4+r/mJtlnD6MtwaQs=; b=bkCsQGnEaq88qnhO66ybS2yfOd8Jnq/17oXbqkF9aS45iXisIpdIaoU/mBVuQ0ynDWRYKZ AceKNs2ynYztI/PRQlwEjgmbw+c33yYuSvqCw7wkeWsiyOvg5gFFAj88k2lIXwz3tMKxxb RhU14gObYfAJO0Z/Xh8qrycakHYRPAw= ARC-Authentication-Results: i=1; imf17.hostedemail.com; dkim=none; spf=pass (imf17.hostedemail.com: domain of 21cnbao@gmail.com designates 209.85.217.52 as permitted sender) smtp.mailfrom=21cnbao@gmail.com; dmarc=fail reason="SPF not aligned (relaxed), No valid DKIM" header.from=kernel.org (policy=none) ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1720431942; a=rsa-sha256; cv=none; b=vmxNgD7t/wIOsp97hg24MFXtHWnQgZ/CH6c5UgkLJe5XKdYp0QlYblGpyhVfDQ3F/B/MUl P46u3CTmwLWDziySfB3pXZWHJPxJ8APEF5XPr4oGKkjLrVjIMbw6aI9SU2F4HOzEjzCD89 X5gQhARjEZtNFL8mqrEMPc1DcJRjzsw= Received: by mail-vs1-f52.google.com with SMTP id ada2fe7eead31-48fddbb579dso1118428137.3 for ; Mon, 08 Jul 2024 02:46:21 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1720431980; x=1721036780; 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=SpLSB/CN2SDFiRQYc+S++TJqbe4+r/mJtlnD6MtwaQs=; b=HUOp0gCJdsVkHsT6EjM+HJoYOaR9Ue7sBgLuxG5eXvL6LSbEKUsa/0utIpB+ZlFMmH nj9Ao9qjEx2uN40Qjlvwhbh/zH52qBLSsBdL7Jw9kxWlZjuWR5NZYcj/fGzhmCemngn5 XezpwPc6K7/AKs1Udcv20HcjaCEfCTgoJyu4TY69nKeDosYY4nnQco93MvALyL3C5OtC PVNJXF6wCLT9r55TG82i1Vj2ZW9EFHqavfNasQPcNR1LyhMew4KX7XjSRh6wbZvC6543 OmYTxPrR6daZK6LtoWXmUIWOosSgevRuh3UKsFdC9WX8rxIsGniyo5pckiza6PG987BF nFAA== X-Forwarded-Encrypted: i=1; AJvYcCUX8W6yj47YL6tO/JAK0+NqWfXCVJnUjiBV490WN/iHo4tZd+gtRnZ0JmQ5CBUTvfAgEkYUhzHrA2zJoS0A6F6prJc= X-Gm-Message-State: AOJu0Yyj0maYBoB4k7EaNMe0ufu43Yf4O3I1iaJBx0WxmRIeDvw/4qKW zaZCEbPXpLr2ZqzHu1qZ3XaBDjjgLO/rXkgrlZn2HdIH7ashCC4aHQRQZaxcza/Z4uWjRwpjVdk 8ulltM1bt04gT4eKcaY0bfwRgERva1309 X-Google-Smtp-Source: AGHT+IHqK7myHjemDaFxYt787o7c+4YGD60lg9B5FlPkiyuZ62jj9iBrgp0YtirZcF97qT59X1j+vMhhyx75N7KNzEg= X-Received: by 2002:a05:6102:4653:b0:48f:e9df:ec4d with SMTP id ada2fe7eead31-48fee6462d0mr11933834137.2.1720431980445; Mon, 08 Jul 2024 02:46:20 -0700 (PDT) MIME-Version: 1.0 References: <20240708090413.888-1-justinjiang@vivo.com> In-Reply-To: From: Barry Song Date: Mon, 8 Jul 2024 21:46:07 +1200 Message-ID: Subject: Re: [PATCH v5] mm: shrink skip folio mapped by an exiting process To: David Hildenbrand Cc: Zhiguo Jiang , Andrew Morton , linux-mm@kvack.org, linux-kernel@vger.kernel.org, opensource.kernel@vivo.com Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Server: rspam06 X-Rspamd-Queue-Id: 8FA9F40023 X-Stat-Signature: zks9ozzhtsuqokmkyi5hbdhnfuksmmrf X-Rspam-User: X-HE-Tag: 1720431981-324482 X-HE-Meta: U2FsdGVkX1/p+grEr2dsPRNXYLPhas7c7+NpS7bztpzU0mFT2gQhqZknM73cBFhnnB/U54NE9Zno3vVNx/dCujRe06vtwIZCVCeubM2t7uTE6UUqPZD3zTv4hq1KYM9Ra1zPJjhLbOVCbLZ3YBrJqBnZo472tdcuoDHD7HH13UCbXtS7Y4lZoshGTzsVGez+IPCDpnwwsjS8iaquyX+ckG56nlxERaYDVUlyNdyXFASuY/ux+KbY/ExHyA1pw7qHdrmvVEFfkUYVIBa726rhLi+Y5gUx9ifpxxDaASfcwBQi1GMQbrT57rSqL+AD7HMEN2JLLwbbe3Kz0eGR9UuwhZP55oRIHdLuot0TNoLjTMqIoXidm/9XLbhkcuOZkj1SrZDTPRg4cfT5EuQjWII16IlmCBgK/4kY5kUH3CAkxumIfSfxmdzHlbsKgEdmByG7tP0OJU8PeAy4p54Iv5aCtKcd2EmiqDc7kC1dFk1bjkJvbYeteBDpjdkbipWxnEmEhQM2HRvPHGf6UcEALbmeWxPSc8L6S/rV2kSKbtGhq2n3G21OnrguZVl84sJFaTQqZHo9VUtcT+IfOUBhSyvkQhOlaV5RcXoos4rZPJxyMtwkTkan4+STkDZHPZADTDmBu6CjEGJRMiqj07JbuKTUNzulxexp0+OnvbeW6N/ZCOO/yAIwz2mZIROztOsjCT+dpmRiJia2K6Ewepbi1oy5Mg3VwKwsMHamns5Hmfn3ymxLQ4VU6VltVcPoN2Q8MCYIufh6l/VTweHwd6QrMjLllZ3myCcbtqUTwjL/nY8iW/jPzRsF3omIzbUBUCbuDhcjs2Yd2+Ru1rUqRO6jsJfIc/9tAE6Vqb2BZ8bMfm+nRBAu2uFtVp3T8LF4HVjiOj9zGMGxE3fxEgIvkZ35ucdeegRHtlffxoe9Fmx1OkFbRu9rrfxhj8/yV5+6l3Kp8k75/xUanLwW84bBNN764In YVpPE9f/ 98JxtX91u/XFnMONStO+C0XzNCCzYa+e7EcIf+L2lis4U1AEwlgj8c22KUJahcXwyKpNplp2AaBcfRrzgtLbkGT1NfX9X9+rxHKXlTZtQ+rOQIFoo6aPfvsPZnVOro4dAbtDLK1gfgKuBnXzdXBTFIyxgNg3WbU0f1joWyg5lTjlqAGJ0UO7KVh1miJ1pEDxs6rz9Vi/zErk8mXiU9aLy43PBv70rhLccJG08vsasG8iGqakXVR2JM1mpXxQoUSbl/llHONBON8Qu+rZJ4rljU8h2H67FBe4PH3JJfYAjnlrmUMYMcy8VzYRAMVmDuw/ZtmkswxEmzaISDHdo1YWJMjep7HTw8oUYj20/X8lsDRQ2imE= 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 Mon, Jul 8, 2024 at 9:36=E2=80=AFPM David Hildenbrand = wrote: > > On 08.07.24 11:04, Zhiguo Jiang wrote: > > The releasing process of the non-shared anonymous folio mapped solely b= y > > an exiting process may go through two flows: 1) the anonymous folio is > > firstly is swaped-out into swapspace and transformed into a swp_entry > > in shrink_folio_list; 2) then the swp_entry is released in the process > > exiting flow. This will increase the cpu load of releasing a non-shared > > anonymous folio mapped solely by an exiting process, because the folio > > go through swap-out and the releasing the swapspace and swp_entry. > > > > When system is low memory, it is more likely to occur, because more > > backend applidatuions will be killed. > > > > The modification is that shrink skips the non-shared anonymous folio > > solely mapped by an exting process and the folio is only released > > directly in the process exiting flow, which will save swap-out time > > and alleviate the load of the process exiting. > > > > Signed-off-by: Zhiguo Jiang > > --- > > > > Change log: > > v4->v5: > > 1.Modify to skip non-shared anonymous folio only. > > 2.Update comments for pra->referenced =3D -1. > > v3->v4: > > 1.Modify that the unshared folios mapped only in exiting task are skip. > > v2->v3: > > Nothing. > > v1->v2: > > 1.The VM_EXITING added in v1 patch is removed, because it will fail > > to compile in 32-bit system. > > > > mm/rmap.c | 13 +++++++++++++ > > mm/vmscan.c | 7 ++++++- > > 2 files changed, 19 insertions(+), 1 deletion(-) > > > > diff --git a/mm/rmap.c b/mm/rmap.c > > index 26806b49a86f..5b5281d71dbb > > --- a/mm/rmap.c > > +++ b/mm/rmap.c > > @@ -843,6 +843,19 @@ static bool folio_referenced_one(struct folio *fol= io, > > int referenced =3D 0; > > unsigned long start =3D address, ptes =3D 0; > > > > + /* > > + * Skip the non-shared anonymous folio mapped solely by > > + * the single exiting process, and release it directly > > + * in the process exiting. > > + */ > > + if ((!atomic_read(&vma->vm_mm->mm_users) || > > + test_bit(MMF_OOM_SKIP, &vma->vm_mm->flags)) && > > + folio_test_anon(folio) && folio_test_swapbacked(folio) && > > + !folio_likely_mapped_shared(folio)) { > > I'm currently working on moving all folio_likely_mapped_shared() under > the PTL, where we are then sure that the folio is actually mapped by > this process (e.g., no concurrent unmapping poisslbe). > > Can we do the same here directly? Implementing this is challenging because page_vma_mapped_walk() is responsible for traversing the page table to acquire and release the PTL. This becomes particularly complex with mTHP, as we may need to interrupt the page_vma_mapped_walk loop at the first PTE. > > -- > Cheers, > > David / dhildenb > Thanks Barry