linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
From: Yin Fengwei <fengwei.yin@intel.com>
To: linux-mm@kvack.org, linux-kernel@vger.kernel.org,
	stable@vger.kernel.org, akpm@linux-foundation.org,
	willy@infradead.org, vishal.moola@gmail.com,
	wangkefeng.wang@huawei.com, minchan@kernel.org,
	yuzhao@google.com, david@redhat.com, ryan.roberts@arm.com,
	shy828301@gmail.com
Cc: fengwei.yin@intel.com
Subject: [PATCH v2 0/3] don't use mapcount() to check large folio sharing
Date: Tue,  8 Aug 2023 10:09:14 +0800	[thread overview]
Message-ID: <20230808020917.2230692-1-fengwei.yin@intel.com> (raw)

In madvise_cold_or_pageout_pte_range() and madvise_free_pte_range(),
folio_mapcount() is used to check whether the folio is shared. But it's
not correct as folio_mapcount() returns total mapcount of large folio.

Use folio_estimated_sharers() here as the estimated number is enough.


This patchset will fix the cases:
User space application call madvise() with MADV_FREE, MADV_COLD and
MADV_PAGEOUT for specific address range. There are THP mapped to the
range. Without the patchset, the THP is skipped. With the patch, the
THP will be split and handled accordingly.

David reported the cow self test skip some cases because of
MADV_PAGEOUT skip THP:
https://lore.kernel.org/linux-mm/9e92e42d-488f-47db-ac9d-75b24cd0d037@intel.com/T/#mbf0f2ec7fbe45da47526de1d7036183981691e81
and I confirmed this patchset make it work again.


Changelog from v1:
  - Avoid two Fixes tags make backport harder. Thank Andrew for pointing
    this out.

  - Add note section to mention this is a temporary fix which is fine
    to reduce user-visble effects. For long term fix, we should wait for
    David's solution. Thank Ryan and David for pointing this out.

  - Spell user-visible effects out. Then people could decide whether
    these patches are necessary for stable branch. Thank Andrew for
    pointing this out.

V1:
https://lore.kernel.org/linux-mm/9e92e42d-488f-47db-ac9d-75b24cd0d037@intel.com/T/#med74caad0cbd0049641cfddc5b9fe793b4b50276  

Yin Fengwei (3):
  madvise:madvise_cold_or_pageout_pte_range(): don't use mapcount()
    against large folio for sharing check
  madvise:madvise_free_huge_pmd(): don't use mapcount() against large
    folio for sharing check
  madvise:madvise_free_pte_range(): don't use mapcount() against large
    folio for sharing check

 mm/huge_memory.c | 2 +-
 mm/madvise.c     | 6 +++---
 2 files changed, 4 insertions(+), 4 deletions(-)

-- 
2.39.2



             reply	other threads:[~2023-08-08  2:10 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-08-08  2:09 Yin Fengwei [this message]
2023-08-08  2:09 ` [PATCH v2 1/3] madvise:madvise_cold_or_pageout_pte_range(): don't use mapcount() against large folio for sharing check Yin Fengwei
2023-08-08  2:09 ` [PATCH v2 2/3] madvise:madvise_free_huge_pmd(): " Yin Fengwei
2023-08-08  2:49   ` Yu Zhao
2023-08-08  2:09 ` [PATCH v2 3/3] madvise:madvise_free_pte_range(): " Yin Fengwei
     [not found]   ` <CGME20230815132509eucas1p1b34b2852a9c4efe743c8da82867c4cc3@eucas1p1.samsung.com>
2023-08-15 13:25     ` Daniel Gomez
2023-08-15 13:41       ` David Hildenbrand
2023-08-15 23:30       ` Yin Fengwei
2023-08-16 11:44         ` Daniel Gomez
2023-08-16 12:04           ` Yin, Fengwei
2023-08-16 14:13             ` Daniel Gomez
2023-08-16 15:11               ` David Hildenbrand
2023-08-17  7:57                 ` Daniel Gomez
2023-08-08  2:43 ` [PATCH v2 0/3] don't use mapcount() to check large folio sharing Yu Zhao
2023-08-08  4:10   ` Yin, Fengwei

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=20230808020917.2230692-1-fengwei.yin@intel.com \
    --to=fengwei.yin@intel.com \
    --cc=akpm@linux-foundation.org \
    --cc=david@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=minchan@kernel.org \
    --cc=ryan.roberts@arm.com \
    --cc=shy828301@gmail.com \
    --cc=stable@vger.kernel.org \
    --cc=vishal.moola@gmail.com \
    --cc=wangkefeng.wang@huawei.com \
    --cc=willy@infradead.org \
    --cc=yuzhao@google.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