On 11/12/19 2:45 PM, Dan Williams wrote: > On Tue, Nov 12, 2019 at 2:43 PM John Hubbard <jhubbard@xxxxxxxxxx> wrote: >> >> On 11/12/19 12:43 PM, Jason Gunthorpe wrote: >> ... >>>> - } >>>> + ret = get_user_pages_remote(NULL, mm, vaddr, 1, flags | FOLL_LONGTERM, >>>> + page, vmas, NULL); >>>> + /* >>>> + * The lifetime of a vaddr_get_pfn() page pin is >>>> + * userspace-controlled. In the fs-dax case this could >>>> + * lead to indefinite stalls in filesystem operations. >>>> + * Disallow attempts to pin fs-dax pages via this >>>> + * interface. >>>> + */ >>>> + if (ret > 0 && vma_is_fsdax(vmas[0])) { >>>> + ret = -EOPNOTSUPP; >>>> + put_page(page[0]); >>>> } >>> >>> AFAIK this chunk is redundant now as it is some hack to emulate >>> FOLL_LONGTERM? So vmas can be deleted too. >> >> Let me first make sure I understand what Dan has in mind for the vma >> checking, in the other thread... > > It's not redundant relative to upstream which does not do anything the > FOLL_LONGTERM in the gup-slow path... but I have not looked at patches > 1-7 to see if something there made it redundant. > There is nothing in patches 1-7 that would make it redundant. About the only thing that you might find interesting in that subset is patch 4 ("mm: devmap: refactor 1-based refcounting for ZONE_DEVICE pages"), for devmap and ZONE_DEVICE interest. But it doesn't affect this discussion directly. thanks, -- John Hubbard NVIDIA