Re: [PATCH 3/3] mm, thp: make swapin readahead under down_read of mmap_sem

From: Rik van Riel
Date: Mon May 23 2016 - 15:26:57 EST


On Mon, 2016-05-23 at 22:01 +0300, Kirill A. Shutemov wrote:
> On Mon, May 23, 2016 at 02:49:09PM -0400, Rik van Riel wrote:
> >
> > On Mon, 2016-05-23 at 20:42 +0200, Michal Hocko wrote:
> > >
> > > On Mon 23-05-16 20:14:11, Ebru Akagunduz wrote:
> > > >
> > > >
> > > > Currently khugepaged makes swapin readahead under
> > > > down_write. This patch supplies to make swapin
> > > > readahead under down_read instead of down_write.
> > > You are still keeping down_write. Can we do without it
> > > altogether?
> > > Blocking mmap_sem of a remote proces for write is certainly not
> > > nice.
> > Maybe Andrea can explain why khugepaged requires
> > a down_write of mmap_sem?
> >
> > If it were possible to have just down_read that
> > would make the code a lot simpler.
> You need a down_write() to retract page table. We need to make sure
> that
> nobody sees the page table before we can replace it with huge pmd.

Good point.

I guess the alternative is to have the page_table_lock
taken by a helper function (everywhere) that can return
failure if the page table was changed while the caller
was waiting for the lock.

Doable, but a fair amount of code churn.

--
All Rights Reversed.

Attachment: signature.asc
Description: This is a digitally signed message part