Lines Matching refs:gup
68 struct gup_benchmark *gup) in __gup_benchmark_ioctl() argument
78 if (gup->size > ULONG_MAX) in __gup_benchmark_ioctl()
81 nr_pages = gup->size / PAGE_SIZE; in __gup_benchmark_ioctl()
92 nr = gup->nr_pages_per_call; in __gup_benchmark_ioctl()
94 for (addr = gup->addr; addr < gup->addr + gup->size; addr = next) { in __gup_benchmark_ioctl()
95 if (nr != gup->nr_pages_per_call) in __gup_benchmark_ioctl()
99 if (next > gup->addr + gup->size) { in __gup_benchmark_ioctl()
100 next = gup->addr + gup->size; in __gup_benchmark_ioctl()
105 gup->flags &= FOLL_WRITE; in __gup_benchmark_ioctl()
109 nr = get_user_pages_fast(addr, nr, gup->flags, in __gup_benchmark_ioctl()
113 nr = get_user_pages(addr, nr, gup->flags, pages + i, in __gup_benchmark_ioctl()
117 nr = pin_user_pages_fast(addr, nr, gup->flags, in __gup_benchmark_ioctl()
121 nr = pin_user_pages(addr, nr, gup->flags, pages + i, in __gup_benchmark_ioctl()
126 gup->flags | FOLL_LONGTERM, in __gup_benchmark_ioctl()
143 gup->get_delta_usec = ktime_us_delta(end_time, start_time); in __gup_benchmark_ioctl()
144 gup->size = addr - gup->addr; in __gup_benchmark_ioctl()
157 gup->put_delta_usec = ktime_us_delta(end_time, start_time); in __gup_benchmark_ioctl()
170 struct gup_benchmark gup; in gup_benchmark_ioctl() local
184 if (copy_from_user(&gup, (void __user *)arg, sizeof(gup))) in gup_benchmark_ioctl()
187 ret = __gup_benchmark_ioctl(cmd, &gup); in gup_benchmark_ioctl()
191 if (copy_to_user((void __user *)arg, &gup, sizeof(gup))) in gup_benchmark_ioctl()