Re: [PATCH 4/6] mm: introduce page->dma_pinned_flags, _count

From: Michal Hocko
Date: Fri Oct 19 2018 - 04:11:20 EST


On Wed 17-10-18 17:03:03, John Hubbard wrote:
> On 10/17/18 4:09 AM, Michal Hocko wrote:
> > On Tue 16-10-18 18:48:23, John Hubbard wrote:
> > [...]
> >> It's hard to say exactly what the active/inactive/unevictable list should
> >> be when DMA is done and put_user_page*() is called, because we don't know
> >> if some device read, wrote, or ignored any of those pages. Although if
> >> put_user_pages_dirty() is called, that's an argument for "active", at least.
> >
> > Any reason to not use putback_lru_page?
>
> That does help with which LRU to use. I guess I'd still need to track whether
> a page was on an LRU when get_user_pages() was called, because it seems
> that that is not necessarily always the case. And putback_lru_page() definitely
> wants to deal with a page that *was* previously on an LRU.

Well, if you ever g-u-p pages which are never going to go to LRU then
sure (e.g. hugetlb pages).
--
Michal Hocko
SUSE Labs