Re: [PATCH v4 1/3] videobuf2-dma-contig: user can specify GFP flags

From: Federico Vaga
Date: Tue Jan 08 2013 - 05:10:31 EST


> > @@ -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.

--
Federico Vaga
--
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/