> Also, I think you don't want this memory to be swapable, because if it
> is swapped out and then in and might very well end up on a completly
> different address in physical memory from where it were and again, I
> don't think the device that does DMA will be able to handle that - all
> the ones I know require physical addresses (well actualy bus addresses
> but for the sake of argument let's ignore that for a second).
>
> In short, I don't think you need what you think want... :-)
Gee, how did you guess? :-) I was mistaken about who does the big 128M
alloc.
The 128M will actually be malloced in user space and filled up with data in
user space. This memory will then have to be mapped into kernel space and
DMA performed. Before DMA is performed the memory obviously needs to be
locked
down. How does this play out with respect to DMA memory zone and GFP_DMA
flag,
specifically pinning down memory?
Thanks Gilad!
> >
> > Does the VM_RESERVED flag lock down the memory so that it
> doesn't get paged out
> > during DMA?
>
> AFAIK the VM_RESERVED flag will cause kswapd to ignore the page
> completly - no paging in or out at all.
>
> >
> > >
> > >
> > > > Can 256M be allocated using vmalloc, if so is it swappable?
> > >
> > > It can be alloacted via vmalloc and AFAIK it is not swappable by
> > > default. This doesn't sound like a very good idea though.
> >
> > Is there a good way to allocate large sums of memory in
> Linux? Doesn't have to
> > be
> > vmalloc but I don't think kmalloc, get_free_pages will work
> for this purpose. I
> > looked
> > into get_free_pages, but the largest order is 9 which
> results in 512 pages.
>
> > Does the memory allocated by vmalloc has visibility across
> processes?
>
> See my previous answer regarding why you don't vmalloced memory at
> visibility.
>
> > I didn't mean shared memory. If several processes open a
> given device,
> > under normal conditions the data structure stays till the
> last close at which
> > time a
> > release is done. This depends on the usage or minor
> number count. Can there
> > be a case where the device exits before the processes
> close? In which case
> > the processes will be left hanging. How is the close
> handled if the driver is
> > killed?
>
> Very simple - you can't unload the device until the ref count says all
> the users (proccesses in thuis case) have closed it.
>
> Gilad.
>
> --
> Gilad Ben-Yossef <gilad@benyossef.com>
> http://benyossef.com
>
> "Money talks, bullshit walks and GNU awks."
> -- Shachar "Sun" Shemesh, debt collector for the GNU/Yakuza
>
-
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/