lkml.org 
[lkml]   [2005]   [Dec]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
From
SubjectVM_RESERVED and PG_reserved : Allocating memory for video buffers
Date
Hi everybody,

I'm writing a Linux driver for a USB Video Class compliant USB device. I
manage to understand pretty much everything on my own until the point where I
have to allocate video buffers.

I read other drivers to understand how they proceed. Most of them used vmalloc
with SetPageReserved and remap_pfn_range to map the memory to user space. I
thought I understood that, when I noticed that vm_insert_page has been added
in 2.6.15. I wasn't sure how to prevent pages from being swapped out, so I
read the excellent "Understanding the Linux Virtual Memory Manager", but I'm
still not sure to understand everything. This is where I ask for your help.

I need to allocate big buffers, so vmalloc is the way to go, as I don't need
contiguous memory. I need to map those buffers to user space, and I
understand that vm_insert_page will do the job nicely. My fears come from
pages being swapped out. I suppose I need to prevent that, as a page fault in
interrupt is a Bad Thing(TM). I'm not sure how PG_reserved and VM_RESERVED
interract with eachother. Can kernel pages be swapped out if they are not
mapped to user space ? Or does kswapd only walk VMAs when it tries to find
pages that will be swapped out ? If the later is true, is it enough to set
VM_RESERVED on the VMA in the mmap handler ?

Memory management is quite complex in the Linux kernel, and I definitely need
some help to understand how all the magic is performed :-)

Best regards,

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

\
 
 \ /
  Last update: 2005-12-15 20:11    [W:0.042 / U:0.616 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site