Messages in this thread |  | | Date | Tue, 08 Jan 2013 11:40:41 +0100 | From | Marek Szyprowski <> | Subject | Re: [PATCH v4 1/3] videobuf2-dma-contig: user can specify GFP flags |
| |
Hello,
On 1/8/2013 11:15 AM, Federico Vaga wrote: > > > @@ -165,7 +161,8 @@ static void *vb2_dc_alloc(void *alloc_ctx, unsigned > > > long size)> > > > /* align image size to PAGE_SIZE */ > > > size = PAGE_ALIGN(size); > > > > > > - buf->vaddr = dma_alloc_coherent(dev, size, &buf->dma_addr, > GFP_KERNEL); > > > + buf->vaddr = dma_alloc_coherent(dev, size, &buf->dma_addr, > > > + > GFP_KERNEL | conf->mem_flags); > > > > I think we can add GFP_DMA flag unconditionally to the vb2_dc_contig > > allocator. > > It won't hurt existing clients as most of nowadays platforms doesn't > > have DMA > > zone (GFP_DMA is ignored in such case), but it should fix the issues > > with some > > older and non-standard systems. > > I did not set GFP_DMA fixed in the allocator because I do not want to brake > something in the future. On x86 platform GFP_DMA allocates under 16MB and this > limit can be too strict. When many other drivers use GFP_DMA we can saturate > this tiny zone. > As you said, this fix the issue with _older_ and _non-standard_ (like sta2x11) > systems. But this fix has effect on every other standard and new systems. > That's why I preferred to set the flag optionally.
Ok, then I would simply pass the flags from the driver without any alternation in the allocator itself, so drivers can pass 'GFP_KERNEL' or 'GFP_KERNEL | GFP_DMA' depending on their preference. Please also update all the existing clients of vb2_dma_dc allocator.
Best regards -- Marek Szyprowski Samsung Poland R&D Center
|  |