On 9/23/19 2:01 PM, Leonardo Bras wrote: > On Mon, 2019-09-23 at 13:27 -0700, John Hubbard wrote: >> I'd also like a second opinion from the "core" -mm maintainers, but it seems like >> there is now too much code around the gup_pgd_range() call. Especially since there >> are two places where it's called--did you forget the other one in >> __get_user_pages_fast(), btw?? >> > Oh, sorry, I missed this one. I will put it on v3. > (Also I will make sure to include linux-mm on v3.) > >> Maybe the irq handling and atomic counting should be moved into start/finish >> calls, like this: >> >> start_gup_fast_walk() >> gup_pgd_range() >> finish_gup_fast_walk() > > There are cases where interrupt disable/enable is not done around the > lockless pagetable walk. > It may come from functions called above on stack, that's why I opted it > to be only the atomic operation. > That doesn't prevent you from writing the above as shown, though, for mm/gup.c. (Also, let's see on the other thread if it is even valid to be indicating a lockless walk, without also disabling interrupts.) thanks, -- John Hubbard NVIDIA