linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
From: Jinjiang Tu <tujinjiang@huawei.com>
To: <linux-mm@kvack.org>, <akpm@linux-foundation.org>,
	<wangkefeng.wang@huawei.com>
Cc: <tujinjiang@huawei.com>
Subject: [RFC PATCH 0/2] mm/gup: move pinned pages to unevictable list to avoid meaningless scan
Date: Sat, 26 Aug 2023 17:22:38 +0800	[thread overview]
Message-ID: <20230826092240.713105-1-tujinjiang@huawei.com> (raw)

The pages pinned by GUP interfaces are unable to be swapped out. Currently,
these pages are put into active/inactive list, leading to meaningless scan
when reclaiming memory.

Even worse, when we try to pin memory more than free memory, the system
fails to response for long time, all tasks are reclaiming memory. However,
the process takes long time to scan too much pinned pages, but only reclaim
few pages. Because each scan takes too much time, during this time, some
pages are swapped out again, some pages can be reclaimed again during next
scan. As a result, the OOM condition is not easy to meet.

I reproduce this problem by gup_test utility (CONFIG_GUP_TEST is needed).
The system has 3.3G free memory, and I pins 4G memory by command
'./gup_test -b -m 4096'. The system will fail to response for 10+ minutes
before triggering OOM.

To solve this problem, this patchset moves pinned pages to unevictable list
to avoid meaningless scanning during memory reclaim.

Jinjiang Tu (2):
  mm/gup: move pinned pages to unevictable list to avoid meaningless
    scan
  mm/gup: remove folio_maybe_dma_pinned() calls in shrink_page_list()

 mm/gup.c      | 13 +++++++++++++
 mm/internal.h |  2 +-
 mm/vmscan.c   | 12 ------------
 3 files changed, 14 insertions(+), 13 deletions(-)

-- 
2.25.1



             reply	other threads:[~2023-08-26  8:28 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-08-26  9:22 Jinjiang Tu [this message]
2023-08-26  9:22 ` [RFC PATCH 1/2] " Jinjiang Tu
2023-08-26  9:22 ` [RFC PATCH 2/2] mm/gup: remove folio_maybe_dma_pinned() calls in shrink_page_list() Jinjiang Tu

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=20230826092240.713105-1-tujinjiang@huawei.com \
    --to=tujinjiang@huawei.com \
    --cc=akpm@linux-foundation.org \
    --cc=linux-mm@kvack.org \
    --cc=wangkefeng.wang@huawei.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox