linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
From: David Rientjes <rientjes@google.com>
To: Wei Yang <richardw.yang@linux.intel.com>
Cc: "Kirill A. Shutemov" <kirill@shutemov.name>,
	 Michal Hocko <mhocko@kernel.org>,
	hannes@cmpxchg.org,  vdavydov.dev@gmail.com,
	akpm@linux-foundation.org, cgroups@vger.kernel.org,
	 linux-mm@kvack.org, linux-kernel@vger.kernel.org,
	 kirill.shutemov@linux.intel.com, yang.shi@linux.alibaba.com,
	 alexander.duyck@gmail.com
Subject: Re: [Patch v2] mm: thp: grab the lock before manipulation defer list
Date: Tue, 14 Jan 2020 19:26:53 -0800 (PST)	[thread overview]
Message-ID: <alpine.DEB.2.21.2001141924330.114086@chino.kir.corp.google.com> (raw)
In-Reply-To: <20200115010722.GA4916@richard>

On Wed, 15 Jan 2020, Wei Yang wrote:

> >split_huge_page_to_list() has page lock taken.
> >
> >free_transhuge_page() is in the free path and doesn't susceptible to the
> >race.
> >
> >deferred_split_scan() is trickier. list_move() should be safe against
> >list_empty() as it will not produce false-positive list_empty().
> >list_del_init() *should* (correct me if I'm wrong) be safe because the page
> >is freeing and memcg will not touch the page anymore.
> >
> >deferred_split_huge_page() is a problematic one. It called from
> >page_remove_rmap() path witch does require page lock. I don't see any
> >obvious way to exclude race with mem_cgroup_move_account() here.
> >Anybody else?
> 
> If my understanding is correct, the reason is deferred_split_huge_page()
> doesn't has page lock taken, right?
> 

I think the fix that you have proposed has inspired some deeper looks at 
the locking around the deferred split queue and the hope was that perhaps 
this could be protected by the page lock but it was found that at least in 
one path that isn't taken.  So I believe your fix is still needed and any 
possible optimizations in this area can be proposed on top.


      reply	other threads:[~2020-01-15  3:26 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-01-09 14:30 Wei Yang
2020-01-09 18:52 ` David Rientjes
2020-01-09 18:58 ` Michal Hocko
2020-01-11  0:03 ` Kirill A. Shutemov
2020-01-12  2:28   ` Wei Yang
2020-01-12 22:57     ` Kirill A. Shutemov
2020-01-13  0:44       ` Wei Yang
2020-01-13  7:36         ` Kirill A. Shutemov
2020-01-13  8:23           ` Wei Yang
2020-01-14  9:31   ` Michal Hocko
2020-01-14 10:31     ` Kirill A. Shutemov
2020-01-14 10:59       ` Kirill A. Shutemov
2020-01-14 20:57         ` David Rientjes
2020-01-15  1:19           ` Wei Yang
2020-01-15  1:07         ` Wei Yang
2020-01-15  3:26           ` David Rientjes [this message]

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=alpine.DEB.2.21.2001141924330.114086@chino.kir.corp.google.com \
    --to=rientjes@google.com \
    --cc=akpm@linux-foundation.org \
    --cc=alexander.duyck@gmail.com \
    --cc=cgroups@vger.kernel.org \
    --cc=hannes@cmpxchg.org \
    --cc=kirill.shutemov@linux.intel.com \
    --cc=kirill@shutemov.name \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=mhocko@kernel.org \
    --cc=richardw.yang@linux.intel.com \
    --cc=vdavydov.dev@gmail.com \
    --cc=yang.shi@linux.alibaba.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