Re: [PATCH 2/4] mm: cma: Contiguous Memory Allocator added

From: Daniel Walker
Date: Wed Jul 21 2010 - 13:54:23 EST


On Wed, 2010-07-21 at 14:01 +0200, MichaÅ Nazarewicz wrote:

> What you are asking for is:
>
> cma=a=100M cma_map=*/*=a
>
> All devices will share the same region so that "if the video driver isn't
> using the memory" then "something else can use it". (please excuse me quoting
> you, it was stronger then me ;) ).

Ok ..

> Driver has to little information to say whether it really stopped using
> memory. Maybe the next call will be to allocate buffers for frames and
> initialise the chip? Sure, some âgood enoughâ defaults can be provided
> (and the framework allows that) but still platform architect might need
> more power.

I think your talking more about optimization .. You can take that into
account ..

> > (btw, these strings your creating yikes, talk about confusing ..)
>
> They are not that scary really. Let's look at cma:
>
> a=10M;b=10M
>
> Split it on semicolon:
>
> a=10M
> b=10M
>
> and you see that it defines two regions (a and b) 10M each.

I think your assuming a lot .. I've never seen the notation before I
wouldn't assuming there's regions or whatever ..

> As of cma_map:
>
> camera,video=a;jpeg,scaler=b
>
> Again split it on semicolon:
>
> camera,video=a
> jpeg,scaler=b
>
> Now, substitute equal sign by "use(s) region(s)":
>
> camera,video use(s) region(s): a
> jpeg,scaler use(s) region(s): b
>
> No black magic here. ;)

It way too complicated .. Users (i.e. not programmers) has to use
this ..

> >> One of the purposes of the CMA framework is to make it let device
> >> drivers completely forget about the memory management and enjoy
> >> a simple API.
> >
> > The driver, and it's maintainer, are really the best people to know how
> > much memory they need and when it's used/unused. You don't really want
> > to architect them out.
>
> This might be true if there is only one device but even then it's not
> always the case. If many devices need physically-contiguous memory
> there is no way for them to communicate and share memory. For best
> performance someone must look at them and say who gets what.

How do you think regular memory allocation work? I mean there's many
devices that all need different amounts of memory and they get along.
Yet your saying it's not possible .

Daniel


--
Sent by an consultant of the Qualcomm Innovation Center, Inc.
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum.

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