Messages in this thread | | | From | "Weiny, Ira" <> | Subject | RE: [PATCH 1/2] xsk: do not use mmap_sem | Date | Mon, 11 Feb 2019 17:16:06 +0000 |
| |
> > >> --- > > >> net/xdp/xdp_umem.c | 6 ++---- > > >> 1 file changed, 2 insertions(+), 4 deletions(-) > > >> > > >> diff --git a/net/xdp/xdp_umem.c b/net/xdp/xdp_umem.c index > > >> 5ab236c5c9a5..25e1e76654a8 100644 > > >> --- a/net/xdp/xdp_umem.c > > >> +++ b/net/xdp/xdp_umem.c > > >> @@ -265,10 +265,8 @@ static int xdp_umem_pin_pages(struct > xdp_umem *umem) > > >> if (!umem->pgs) > > >> return -ENOMEM; > > >> > > >> - down_write(¤t->mm->mmap_sem); > > >> - npgs = get_user_pages(umem->address, umem->npgs, > > >> - gup_flags, &umem->pgs[0], NULL); > > >> - up_write(¤t->mm->mmap_sem); > > >> + npgs = get_user_pages_fast(umem->address, umem->npgs, > > >> + gup_flags, &umem->pgs[0]); > > >> > > > > > > Thanks for the patch! > > > > > > The lifetime of the pinning is similar to RDMA umem mapping, so > > > isn't gup_longterm preferred? > > > > Seems reasonable from reading what gup_longterm seems to do. Davidlohr > > or Dan, any thoughts on the above? > > Yes, any gup where the lifetime of the corresponding put_page() is under > direct control of userspace should be using the _longterm flavor to > coordinate be careful in the presence of dax. In the dax case there is no page > cache indirection to coordinate truncate vs page pins. Ira is looking to add a > "fast + longterm" flavor for cases like this.
Yes I'm just about ready with a small patch set to add a GUP fast longterm.
I think this should wait for that series.
Ira
| |