linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
From: Michal Hocko <mhocko@suse.com>
To: Mike Kravetz <mike.kravetz@oracle.com>
Cc: Andrew Morton <akpm@linux-foundation.org>,
	David Hildenbrand <david@redhat.com>,
	linux-mm@kvack.org, linux-kernel@vger.kernel.org,
	Naoya Horiguchi <naoya.horiguchi@linux.dev>,
	James Houghton <jthoughton@google.com>,
	Peter Xu <peterx@redhat.com>, Yang Shi <shy828301@gmail.com>,
	Vishal Moola <vishal.moola@gmail.com>,
	Matthew Wilcox <willy@infradead.org>,
	Muchun Song <songmuchun@bytedance.com>,
	stable@vger.kernel.org
Subject: Re: [PATCH 1/2] mm: hugetlb: proc: check for hugetlb shared PMD in /proc/PID/smaps
Date: Wed, 1 Feb 2023 08:47:03 +0100	[thread overview]
Message-ID: <Y9oY9850e/8LQ78i@dhcp22.suse.cz> (raw)
In-Reply-To: <Y9g/70m15SwxkLfc@monkey>

On Mon 30-01-23 14:08:47, Mike Kravetz wrote:
> On 01/30/23 13:36, Michal Hocko wrote:
> > On Fri 27-01-23 17:12:05, Mike Kravetz wrote:
> > > On 01/27/23 15:04, Andrew Morton wrote:
> > > > On Fri, 27 Jan 2023 17:23:39 +0100 David Hildenbrand <david@redhat.com> wrote:
> > > > > On 26.01.23 23:27, Mike Kravetz wrote:
> > 
> > Yes, this looks simple enough. My only concern would be that this
> > special casing might be required on other places which is hard to
> > evaluate. I thought PSS reported by smaps would be broken as well but it
> > seems pss is not really accounted for hugetlb mappings at all.
> > 
> > Have you tried to look into {in,de}creasing the map count of the page when
> > the the pte is {un}shared for it?
> 
> A quick thought is that it would not be too difficult.  It would need
> to include the following:
> - At PMD share time in huge_pmd_share(),
>   Go through all entries in the PMD, and increment map and ref count for
>   all referenced pages.  huge_pmd_share is just adding another sharing
>   process.
> - At PMD unshare time in huge_pmd_unshare(),
>   Go through all entries in the PMD, and decrement map and ref count for
>   all referenced pages.  huge_pmd_unshare is just removing one sharing
>   process.
> - At page fault time, check if we are adding a new entry to a shared PMD.
>   If yes, add 'num_of_sharing__processes - 1' to the ref and map count.
> 
> In each of the above operations, we are holding the PTL lock (which is
> really the split/PMD lock) so synchronization should not be an issue.
> 
> Although I mention processes sharing the PMD above, it is really mappings/vmas
> sharing the PMD.  You could have two mappings of the same object in the same
> process sharing PMDs.
> 
> I'll code this up and see how it looks.

Thanks!
 
> However, unless you have an objection I would prefer the simple patches
> move forward, especially for stable backports.

Yes, the current patch is much simpler and more suitable for stable
backports. If the explicit map count modifications are not all that
terrible then this would sound like a more appropriate long term plan
though.

Thanks!
-- 
Michal Hocko
SUSE Labs


  reply	other threads:[~2023-02-01  7:47 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-01-26 22:27 [PATCH 0/2] Fixes for hugetlb mapcount at most 1 for shared PMDs Mike Kravetz
2023-01-26 22:27 ` [PATCH 1/2] mm: hugetlb: proc: check for hugetlb shared PMD in /proc/PID/smaps Mike Kravetz
2023-01-27 16:23   ` David Hildenbrand
2023-01-27 23:04     ` Andrew Morton
2023-01-28  1:12       ` Mike Kravetz
2023-01-30 12:36         ` Michal Hocko
2023-01-30 22:08           ` Mike Kravetz
2023-02-01  7:47             ` Michal Hocko [this message]
2023-02-01 21:05               ` Mike Kravetz
2023-02-03 13:40                 ` Michal Hocko
2023-02-03 20:16                   ` Mike Kravetz
2023-02-13 18:01                     ` Michal Hocko
2023-02-14  1:40                       ` Mike Kravetz
2023-01-26 22:27 ` [PATCH 2/2] migrate: hugetlb: Check for hugetlb shared PMD in node migration Mike Kravetz
2023-01-27 16:23   ` David Hildenbrand
2023-01-26 22:47 ` [PATCH 0/2] Fixes for hugetlb mapcount at most 1 for shared PMDs Andrew Morton
2023-01-26 22:48 ` Peter Xu

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=Y9oY9850e/8LQ78i@dhcp22.suse.cz \
    --to=mhocko@suse.com \
    --cc=akpm@linux-foundation.org \
    --cc=david@redhat.com \
    --cc=jthoughton@google.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=mike.kravetz@oracle.com \
    --cc=naoya.horiguchi@linux.dev \
    --cc=peterx@redhat.com \
    --cc=shy828301@gmail.com \
    --cc=songmuchun@bytedance.com \
    --cc=stable@vger.kernel.org \
    --cc=vishal.moola@gmail.com \
    --cc=willy@infradead.org \
    /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