Skip to contentSkip to conversation

Use of mmap_sem in __qbuf_userptr()

DISCUSSION Jan Kara 2 participants 2 messages Mar 5, 2015 – Mar 6, 2015 Media (V4L/DVB)

lore
Share & tools
lore

Jan Kara

author
#0 lore raw

Hello,

so after a long pause I've got back to my simplification patches around
get_user_pages(). After the simplification done by commit f035eb4e976ef5 (videobuf2: fix lockdep warning) it seems unnecessary to take mmap_sem already when calling __qbuf_userptr(). As far as I understand what __qbuf_userptr() does, the only thing where mmap_sem is needed is for get_userptr and possibly put_userptr memops. So it should be possible to push mmap_sem locking down into these memops, shouldn't it? Or am I missing something in __qbuf_userptr() for which mmap_sem is also necessary?

If I'm right, I can prepare patches to do that (and then on top of those rebase patches which will make v4l2 core use some mm helper functions so they don't have to care about details of mm locking, vmas, etc.).

Honza

Signature · 2 lines
Jan Kara <[email protected]>
SUSE Labs, CR
#1 lore raw

Hi Jan,

Quoted 10 lines · Jan Kara

Hello,

so after a long pause I've got back to my simplification patches around
get_user_pages(). After the simplification done by commit f035eb4e976ef5 (videobuf2: fix lockdep warning) it seems unnecessary to take mmap_sem already when calling __qbuf_userptr(). As far as I understand what __qbuf_userptr() does, the only thing where mmap_sem is needed is for get_userptr and possibly put_userptr memops. So it should be possible to push mmap_sem locking down into these memops, shouldn't it? Or am I missing something in __qbuf_userptr() for which mmap_sem is also necessary?

No, you are correct. The mmap_sem can be pushed down, either to __qbuf_userptr or all the way to the videobuf2-dma/vmalloc get/put_userptr ops.

Quoted 3 lines

If I'm right, I can prepare patches to do that (and then on top of those rebase patches which will make v4l2 core use some mm helper functions so they don't have to care about details of mm locking, vmas, etc.).

That would be really nice.

Regards,

Hans