* [PATCH] drm/via: use get_user_pages_unlocked() @ 2016-11-01 19:43 Lorenzo Stoakes 2017-01-03 20:23 ` Lorenzo Stoakes 0 siblings, 1 reply; 5+ messages in thread From: Lorenzo Stoakes @ 2016-11-01 19:43 UTC (permalink / raw) To: linux-mm Cc: linux-kernel, Paolo Bonzini, Michal Hocko, David Airlie, dri-devel, Lorenzo Stoakes Moving from get_user_pages() to get_user_pages_unlocked() simplifies the code and takes advantage of VM_FAULT_RETRY functionality when faulting in pages. Signed-off-by: Lorenzo Stoakes <lstoakes@gmail.com> --- drivers/gpu/drm/via/via_dmablit.c | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/drivers/gpu/drm/via/via_dmablit.c b/drivers/gpu/drm/via/via_dmablit.c index 1a3ad76..98aae98 100644 --- a/drivers/gpu/drm/via/via_dmablit.c +++ b/drivers/gpu/drm/via/via_dmablit.c @@ -238,13 +238,9 @@ via_lock_all_dma_pages(drm_via_sg_info_t *vsg, drm_via_dmablit_t *xfer) vsg->pages = vzalloc(sizeof(struct page *) * vsg->num_pages); if (NULL == vsg->pages) return -ENOMEM; - down_read(¤t->mm->mmap_sem); - ret = get_user_pages((unsigned long)xfer->mem_addr, - vsg->num_pages, - (vsg->direction == DMA_FROM_DEVICE) ? FOLL_WRITE : 0, - vsg->pages, NULL); - - up_read(¤t->mm->mmap_sem); + ret = get_user_pages_unlocked((unsigned long)xfer->mem_addr, + vsg->num_pages, vsg->pages, + (vsg->direction == DMA_FROM_DEVICE) ? FOLL_WRITE : 0); if (ret != vsg->num_pages) { if (ret < 0) return ret; -- 2.10.2 -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a> ^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH] drm/via: use get_user_pages_unlocked() 2016-11-01 19:43 [PATCH] drm/via: use get_user_pages_unlocked() Lorenzo Stoakes @ 2017-01-03 20:23 ` Lorenzo Stoakes 2017-01-06 7:09 ` Lorenzo Stoakes 0 siblings, 1 reply; 5+ messages in thread From: Lorenzo Stoakes @ 2017-01-03 20:23 UTC (permalink / raw) To: linux-mm Cc: Linux Kernel Mailing List, Paolo Bonzini, Michal Hocko, David Airlie, dri-devel, Lorenzo Stoakes Hi All, Just a gentle ping on this one :) Cheers, Lorenzo On 1 November 2016 at 19:43, Lorenzo Stoakes <lstoakes@gmail.com> wrote: > Moving from get_user_pages() to get_user_pages_unlocked() simplifies the code > and takes advantage of VM_FAULT_RETRY functionality when faulting in pages. > > Signed-off-by: Lorenzo Stoakes <lstoakes@gmail.com> > --- > drivers/gpu/drm/via/via_dmablit.c | 10 +++------- > 1 file changed, 3 insertions(+), 7 deletions(-) > > diff --git a/drivers/gpu/drm/via/via_dmablit.c b/drivers/gpu/drm/via/via_dmablit.c > index 1a3ad76..98aae98 100644 > --- a/drivers/gpu/drm/via/via_dmablit.c > +++ b/drivers/gpu/drm/via/via_dmablit.c > @@ -238,13 +238,9 @@ via_lock_all_dma_pages(drm_via_sg_info_t *vsg, drm_via_dmablit_t *xfer) > vsg->pages = vzalloc(sizeof(struct page *) * vsg->num_pages); > if (NULL == vsg->pages) > return -ENOMEM; > - down_read(¤t->mm->mmap_sem); > - ret = get_user_pages((unsigned long)xfer->mem_addr, > - vsg->num_pages, > - (vsg->direction == DMA_FROM_DEVICE) ? FOLL_WRITE : 0, > - vsg->pages, NULL); > - > - up_read(¤t->mm->mmap_sem); > + ret = get_user_pages_unlocked((unsigned long)xfer->mem_addr, > + vsg->num_pages, vsg->pages, > + (vsg->direction == DMA_FROM_DEVICE) ? FOLL_WRITE : 0); > if (ret != vsg->num_pages) { > if (ret < 0) > return ret; > -- > 2.10.2 > -- Lorenzo Stoakes https://ljs.io -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a> ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] drm/via: use get_user_pages_unlocked() 2017-01-03 20:23 ` Lorenzo Stoakes @ 2017-01-06 7:09 ` Lorenzo Stoakes 2017-02-20 18:46 ` Lorenzo Stoakes 0 siblings, 1 reply; 5+ messages in thread From: Lorenzo Stoakes @ 2017-01-06 7:09 UTC (permalink / raw) To: linux-mm Cc: Linux Kernel Mailing List, Paolo Bonzini, Michal Hocko, David Airlie, dri-devel, Andrew Morton On 3 January 2017 at 20:23, Lorenzo Stoakes <lstoakes@gmail.com> wrote: > Hi All, > > Just a gentle ping on this one :) > > Cheers, Lorenzo > > On 1 November 2016 at 19:43, Lorenzo Stoakes <lstoakes@gmail.com> wrote: >> Moving from get_user_pages() to get_user_pages_unlocked() simplifies the code >> and takes advantage of VM_FAULT_RETRY functionality when faulting in pages. >> >> Signed-off-by: Lorenzo Stoakes <lstoakes@gmail.com> >> --- >> drivers/gpu/drm/via/via_dmablit.c | 10 +++------- >> 1 file changed, 3 insertions(+), 7 deletions(-) >> >> diff --git a/drivers/gpu/drm/via/via_dmablit.c b/drivers/gpu/drm/via/via_dmablit.c >> index 1a3ad76..98aae98 100644 >> --- a/drivers/gpu/drm/via/via_dmablit.c >> +++ b/drivers/gpu/drm/via/via_dmablit.c >> @@ -238,13 +238,9 @@ via_lock_all_dma_pages(drm_via_sg_info_t *vsg, drm_via_dmablit_t *xfer) >> vsg->pages = vzalloc(sizeof(struct page *) * vsg->num_pages); >> if (NULL == vsg->pages) >> return -ENOMEM; >> - down_read(¤t->mm->mmap_sem); >> - ret = get_user_pages((unsigned long)xfer->mem_addr, >> - vsg->num_pages, >> - (vsg->direction == DMA_FROM_DEVICE) ? FOLL_WRITE : 0, >> - vsg->pages, NULL); >> - >> - up_read(¤t->mm->mmap_sem); >> + ret = get_user_pages_unlocked((unsigned long)xfer->mem_addr, >> + vsg->num_pages, vsg->pages, >> + (vsg->direction == DMA_FROM_DEVICE) ? FOLL_WRITE : 0); >> if (ret != vsg->num_pages) { >> if (ret < 0) >> return ret; >> -- >> 2.10.2 >> Adding Andrew, as this may be another less active corner of the corner, thanks! -- Lorenzo Stoakes https://ljs.io -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a> ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] drm/via: use get_user_pages_unlocked() 2017-01-06 7:09 ` Lorenzo Stoakes @ 2017-02-20 18:46 ` Lorenzo Stoakes 2017-02-26 19:40 ` Daniel Vetter 0 siblings, 1 reply; 5+ messages in thread From: Lorenzo Stoakes @ 2017-02-20 18:46 UTC (permalink / raw) To: linux-mm Cc: Linux Kernel Mailing List, Paolo Bonzini, Michal Hocko, David Airlie, dri-devel, Andrew Morton On 6 January 2017 at 07:09, Lorenzo Stoakes <lstoakes@gmail.com> wrote: > > Adding Andrew, as this may be another less active corner of the corner, thanks! Hi all, Thought I'd also give this one a gentle nudge now the merge window has re-opened, Andrew - are you ok to pick this up? I've checked the patch and it still applies, for convenience the raw patch is available at https://marc.info/?l=linux-mm&m=147802942832515&q=raw - let me know if there's anything else I can do on this or if you'd prefer a re-send. Best, Lorenzo > On 3 January 2017 at 20:23, Lorenzo Stoakes <lstoakes@gmail.com> wrote: >> Hi All, >> >> Just a gentle ping on this one :) >> >> Cheers, Lorenzo >> >> On 1 November 2016 at 19:43, Lorenzo Stoakes <lstoakes@gmail.com> wrote: >>> Moving from get_user_pages() to get_user_pages_unlocked() simplifies the code >>> and takes advantage of VM_FAULT_RETRY functionality when faulting in pages. >>> >>> Signed-off-by: Lorenzo Stoakes <lstoakes@gmail.com> >>> --- >>> drivers/gpu/drm/via/via_dmablit.c | 10 +++------- >>> 1 file changed, 3 insertions(+), 7 deletions(-) >>> >>> diff --git a/drivers/gpu/drm/via/via_dmablit.c b/drivers/gpu/drm/via/via_dmablit.c >>> index 1a3ad76..98aae98 100644 >>> --- a/drivers/gpu/drm/via/via_dmablit.c >>> +++ b/drivers/gpu/drm/via/via_dmablit.c >>> @@ -238,13 +238,9 @@ via_lock_all_dma_pages(drm_via_sg_info_t *vsg, drm_via_dmablit_t *xfer) >>> vsg->pages = vzalloc(sizeof(struct page *) * vsg->num_pages); >>> if (NULL == vsg->pages) >>> return -ENOMEM; >>> - down_read(¤t->mm->mmap_sem); >>> - ret = get_user_pages((unsigned long)xfer->mem_addr, >>> - vsg->num_pages, >>> - (vsg->direction == DMA_FROM_DEVICE) ? FOLL_WRITE : 0, >>> - vsg->pages, NULL); >>> - >>> - up_read(¤t->mm->mmap_sem); >>> + ret = get_user_pages_unlocked((unsigned long)xfer->mem_addr, >>> + vsg->num_pages, vsg->pages, >>> + (vsg->direction == DMA_FROM_DEVICE) ? FOLL_WRITE : 0); >>> if (ret != vsg->num_pages) { >>> if (ret < 0) >>> return ret; >>> -- >>> 2.10.2 >>> -- Lorenzo Stoakes https://ljs.io -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a> ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] drm/via: use get_user_pages_unlocked() 2017-02-20 18:46 ` Lorenzo Stoakes @ 2017-02-26 19:40 ` Daniel Vetter 0 siblings, 0 replies; 5+ messages in thread From: Daniel Vetter @ 2017-02-26 19:40 UTC (permalink / raw) To: Lorenzo Stoakes Cc: linux-mm, Linux Kernel Mailing List, Paolo Bonzini, Michal Hocko, David Airlie, dri-devel, Andrew Morton On Mon, Feb 20, 2017 at 06:46:54PM +0000, Lorenzo Stoakes wrote: > On 6 January 2017 at 07:09, Lorenzo Stoakes <lstoakes@gmail.com> wrote: > > > > Adding Andrew, as this may be another less active corner of the corner, thanks! > > Hi all, > > Thought I'd also give this one a gentle nudge now the merge window has > re-opened, Andrew - are you ok to pick this up? I've checked the patch > and it still applies, for convenience the raw patch is available at > https://marc.info/?l=linux-mm&m=147802942832515&q=raw - let me know if > there's anything else I can do on this or if you'd prefer a re-send. Somehow your original patch never made it to dri-devel :( The via driver is entirely unmaintained, but if you resubmit I'll smash it into drm-misc for 4.12. Merge window is long over already for 4.11, subsystems need to have their stuff ready _before_ it starts. Cheers, Daniel > > Best, Lorenzo > > > On 3 January 2017 at 20:23, Lorenzo Stoakes <lstoakes@gmail.com> wrote: > >> Hi All, > >> > >> Just a gentle ping on this one :) > >> > >> Cheers, Lorenzo > >> > >> On 1 November 2016 at 19:43, Lorenzo Stoakes <lstoakes@gmail.com> wrote: > >>> Moving from get_user_pages() to get_user_pages_unlocked() simplifies the code > >>> and takes advantage of VM_FAULT_RETRY functionality when faulting in pages. > >>> > >>> Signed-off-by: Lorenzo Stoakes <lstoakes@gmail.com> > >>> --- > >>> drivers/gpu/drm/via/via_dmablit.c | 10 +++------- > >>> 1 file changed, 3 insertions(+), 7 deletions(-) > >>> > >>> diff --git a/drivers/gpu/drm/via/via_dmablit.c b/drivers/gpu/drm/via/via_dmablit.c > >>> index 1a3ad76..98aae98 100644 > >>> --- a/drivers/gpu/drm/via/via_dmablit.c > >>> +++ b/drivers/gpu/drm/via/via_dmablit.c > >>> @@ -238,13 +238,9 @@ via_lock_all_dma_pages(drm_via_sg_info_t *vsg, drm_via_dmablit_t *xfer) > >>> vsg->pages = vzalloc(sizeof(struct page *) * vsg->num_pages); > >>> if (NULL == vsg->pages) > >>> return -ENOMEM; > >>> - down_read(¤t->mm->mmap_sem); > >>> - ret = get_user_pages((unsigned long)xfer->mem_addr, > >>> - vsg->num_pages, > >>> - (vsg->direction == DMA_FROM_DEVICE) ? FOLL_WRITE : 0, > >>> - vsg->pages, NULL); > >>> - > >>> - up_read(¤t->mm->mmap_sem); > >>> + ret = get_user_pages_unlocked((unsigned long)xfer->mem_addr, > >>> + vsg->num_pages, vsg->pages, > >>> + (vsg->direction == DMA_FROM_DEVICE) ? FOLL_WRITE : 0); > >>> if (ret != vsg->num_pages) { > >>> if (ret < 0) > >>> return ret; > >>> -- > >>> 2.10.2 > >>> > > -- > Lorenzo Stoakes > https://ljs.io > > -- > To unsubscribe, send a message with 'unsubscribe linux-mm' in > the body to majordomo@kvack.org. For more info on Linux MM, > see: http://www.linux-mm.org/ . > Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a> -- Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a> ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2017-02-26 19:40 UTC | newest] Thread overview: 5+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2016-11-01 19:43 [PATCH] drm/via: use get_user_pages_unlocked() Lorenzo Stoakes 2017-01-03 20:23 ` Lorenzo Stoakes 2017-01-06 7:09 ` Lorenzo Stoakes 2017-02-20 18:46 ` Lorenzo Stoakes 2017-02-26 19:40 ` Daniel Vetter
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).