On Tue, Oct 02, 2018 at 08:49:39AM -0700, Dave Hansen wrote: > On 10/02/2018 04:26 AM, Kirill A. Shutemov wrote: > >> + page = follow_page_mask(vma, address, foll_flags, &ctx); > >> + if (ctx.pgmap) > >> + put_dev_pagemap(ctx.pgmap); > >> + return page; > >> } > > Do we still want to keep the function as inline? I don't think so. > > Let's move it into mm/gup.c and make struct follow_page_context private to > > the file. > > Yeah, and let's have a put_follow_page_context() that does the > put_dev_pagemap() rather than spreading that if() to each call site. Thanks for all the feedback. I will make a new version, but with the gup_benchmark part split into an independent set since it is logically separate from the final patch.