Re: [PATCH] mm: Skip opportunistic reclaim for dma pinned pages
From: Matthew Wilcox
Date: Thu Jun 25 2020 - 12:05:52 EST
On Thu, Jun 25, 2020 at 03:40:44PM +0200, Jan Kara wrote:
> On Thu 25-06-20 12:42:09, Matthew Wilcox wrote:
> > Why are DMA pinned pages still on the LRU list at all? I never got an
> > answer to this that made sense to me. By definition, a page which is
> > pinned for DMA is being accessed, and needs to at the very least change
> > position on the LRU list, so just take it off the list when DMA-pinned
> > and put it back on the list when DMA-unpinned.
>
> Well, we do mark_page_accessed() when pinning in GUP. This is not perfect
> but it's as good as it gets with CPU having no control when the page is
> actually accessed. Also taking the page off and then back to LRU list would
> increase the contention on the LRU list locks and generally cost
> performance so for short term pins it is not desirable... Otherwise I agree
> that conceptually it would make some sence although I'm not sure some
> places wouldn't get confused by e.g. page cache pages not being on LRU
> list.
We could/should do what we do for mlocked pages:
Documentation/vm/unevictable-lru.rst
I think 'case five' is wrong and needs to be removed. Pinning is
inappropriate for "I'm going to modify the page myself".