Re: allocation failed: out of vmalloc space error treating andVIDEO1394 IOC LISTEN CHANNEL ioctl failed problem

From: David Moore
Date: Tue Jan 16 2007 - 00:27:09 EST


On Mon, 2007-01-15 at 16:43 -0500, Kristian Høgsberg wrote:
> On 1/15/07, Arjan van de Ven <arjan@xxxxxxxxxxxxx> wrote:
> > again the best way is for you to provide an mmap method... you can then
> > fill in the pages and keep that in some sort of array; this is for
> > example also what the DRI/DRM layer does for textures etc...
>
> That sounds a lot like what I have now (mmap method, array of pages)
> so I'll just stick with that.

It sounds like the distinction Arjan is getting at is that the buffer
should exist in the process's virtual address space instead of the
kernel's virtual address space so that we have plenty of space available
to us.

Thus, we should use get_user_pages() instead of vmalloc(). I think
get_user_pages() will also automatically pin the memory. And we'll also
need to call get_user_pages() from a custom mmap() handler so that we
know what process virtual address to assign to the region.

Is that right Arjan?

Thanks,

David

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/