lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <ZoteOYap1M4kxWV8@casper.infradead.org>
Date: Mon, 8 Jul 2024 04:34:17 +0100
From: Matthew Wilcox <willy@...radead.org>
To: Zhiguo Jiang <justinjiang@...o.com>
Cc: Andrew Morton <akpm@...ux-foundation.org>, linux-mm@...ck.org,
	linux-kernel@...r.kernel.org, Barry Song <baohua@...nel.org>,
	opensource.kernel@...o.com,
	Qianfeng Rong <rongqianfeng@...o.corp-partner.google.com>
Subject: Re: [PATCH v4] mm: shrink skip folio mapped by an exiting task

On Mon, Jul 08, 2024 at 11:15:17AM +0800, Zhiguo Jiang wrote:
> If an anon folio reclaimed by shrink_inactive_list is mapped by an
> exiting task, this anon folio will be firstly swaped-out into
> swapspace in shrink flow and then this swap folio is freed in task
> exit flow. But if this folio mapped by an exiting task can skip
> shrink and be freed directly in task exiting flow, which will save
> swap-out time and alleviate the load of the tasks exiting process.
> The file folio is also similar.

How is the file folio similar?  File folios are never written to swap,
and they'll be written back from the page cache whenever the filesystem
decides it's a good time to do so.

>  mm/rmap.c | 10 ++++++++++
>  1 file changed, 10 insertions(+)
>  mode change 100644 => 100755 mm/rmap.c

Uh, what?  Why would you make this file executable?

> diff --git a/mm/rmap.c b/mm/rmap.c
> index 26806b49a86f..16b7ed04bcbe
> --- a/mm/rmap.c
> +++ b/mm/rmap.c
> @@ -843,6 +843,16 @@ static bool folio_referenced_one(struct folio *folio,
>  	int referenced = 0;
>  	unsigned long start = address, ptes = 0;
>  
> +	/* Skip the unshared folios mapped only by the single
> +	 * exiting process.
> +	 */

Comments start with a /* on a line by itself.

> +	if ((!atomic_read(&vma->vm_mm->mm_users) ||
> +		test_bit(MMF_OOM_SKIP, &vma->vm_mm->flags)) &&
> +		!test_bit(VM_SHARED, &vma->vm_flags)) {
> +		pra->referenced = -1;
> +		return false;

This indentation is unreadable.  Follow the style used in the rest of
the file.


Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ