All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andrea Righi <andrea.righi@canonical.com>
To: "Huang, Ying" <ying.huang@intel.com>
Cc: Andrew Morton <akpm@linux-foundation.org>,
	Minchan Kim <minchan@kernel.org>,
	Anchal Agarwal <anchalag@amazon.com>,
	linux-mm@kvack.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH v2] mm: swap: use fixed-size readahead during swapoff
Date: Mon, 13 Apr 2020 15:31:50 +0200	[thread overview]
Message-ID: <20200413133150.GA810380@xps-13> (raw)
In-Reply-To: <87a73f7d71.fsf@yhuang-dev.intel.com>

On Mon, Apr 13, 2020 at 09:00:34PM +0800, Huang, Ying wrote:
> Andrea Righi <andrea.righi@canonical.com> writes:
> 
> [snip]
> 
> > diff --git a/mm/swap_state.c b/mm/swap_state.c
> > index ebed37bbf7a3..c71abc8df304 100644
> > --- a/mm/swap_state.c
> > +++ b/mm/swap_state.c
> > @@ -20,6 +20,7 @@
> >  #include <linux/migrate.h>
> >  #include <linux/vmalloc.h>
> >  #include <linux/swap_slots.h>
> > +#include <linux/oom.h>
> >  #include <linux/huge_mm.h>
> >  
> >  #include <asm/pgtable.h>
> > @@ -507,6 +508,14 @@ static unsigned long swapin_nr_pages(unsigned long offset)
> >  	max_pages = 1 << READ_ONCE(page_cluster);
> >  	if (max_pages <= 1)
> >  		return 1;
> > +	/*
> > +	 * If current task is using too much memory or swapoff is running
> > +	 * simply use the max readahead size. Since we likely want to load a
> > +	 * lot of pages back into memory, using a fixed-size max readhaead can
> > +	 * give better performance in this case.
> > +	 */
> > +	if (oom_task_origin(current))
> > +		return max_pages;
> >  
> >  	hits = atomic_xchg(&swapin_readahead_hits, 0);
> >  	pages = __swapin_nr_pages(prev_offset, offset, hits, max_pages,
> 
> Thinks this again.  If my understanding were correct, the accessing
> pattern during swapoff is sequential, why swap readahead doesn't work?
> If so, can you root cause that firstly?

Theoretically if the pattern is sequential the current heuristic should
already select a big readahead size, but apparently it's not doing that.

I'll repeat my tests tracing the readahead size during swapoff to see
exactly what's going on here.

Thanks,
-Andrea

  reply	other threads:[~2020-04-13 13:31 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-04-13 11:18 [PATCH v2] mm: swap: use fixed-size readahead during swapoff Andrea Righi
2020-04-13 13:00 ` Huang, Ying
2020-04-13 13:00   ` Huang, Ying
2020-04-13 13:31   ` Andrea Righi [this message]
2020-04-14  1:31     ` Huang, Ying
2020-04-14  1:31       ` Huang, Ying
2020-04-14 13:05       ` Andrea Righi
2020-04-15  2:37         ` Huang, Ying
2020-04-15  2:37           ` Huang, Ying
2020-04-15  7:32           ` Andrea Righi
2020-04-15  7:44             ` Huang, Ying
2020-04-15  7:44               ` Huang, Ying
2020-04-15  9:19               ` Andrea Righi
2020-04-16  0:44                 ` Huang, Ying
2020-04-16  0:44                   ` Huang, Ying
2020-04-15 12:00             ` Andrea Righi
2020-04-16  0:41               ` Huang, Ying
2020-04-16  0:41                 ` Huang, Ying
2020-04-16 17:21                 ` Andrea Righi
2020-04-13 13:13 ` Huang, Ying
2020-04-13 13:13   ` Huang, Ying
2020-04-13 13:26   ` Andrea Righi
2020-04-14  1:45     ` Huang, Ying
2020-04-14  1:45       ` Huang, Ying

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200413133150.GA810380@xps-13 \
    --to=andrea.righi@canonical.com \
    --cc=akpm@linux-foundation.org \
    --cc=anchalag@amazon.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=minchan@kernel.org \
    --cc=ying.huang@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.