Re: [PATCH 0/3] hwmem: Hardware memory driver

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, 16 Nov 2010 16:25:20 +0100, Johan MOSSBERG <johan.xx.mossberg@xxxxxxxxxxxxxx> wrote:

MichaÅ Nazarewicz wrote:
In particular, I'll try to figure out what you mean by defragmentation
and see whethe it could be added to CMA.

I mean the ability to move allocated buffers to free more
contiguous space. To support this in CMA the API(s) would have to
change.
* A buffer's physical address cannot be used to identify it as the
physical address can change.
* Pin/unpin functions would have to be added so that you can pin a
buffer when hardware uses it.
* The allocators needs to be able to inform CMA that they have
moved a buffer. This is so that CMA can keep track of what memory
is free so that it can supply the free memory to the kernel for
temporary use there.

I don't think those are fundamentally against CMA and as such I see
no reason why such calls could not be added to CMA.  Allocators that
do not support defragmentation could just ignore those calls.

In particular, a cma_alloc() could return a pointer to an opaque
struct cma and to get physical address user would have to pin the
buffer with, say, cma_pin() and then call cma_phys() to obtain
physical address.

As a matter of fact, in the version of CMA I'm currently working on,
cma_alloc() returns a pointer to a transparent structure, so the
above would not be a huge change.

I'm only wondering if treating "unpin" as "free" and pin as another
"alloc" would not suffice?

--
Best regards,                                        _     _
| Humble Liege of Serenely Enlightened Majesty of  o' \,=./ `o
| Computer Science,  MichaÅ "mina86" Nazarewicz       (o o)
+----[mina86*mina86.com]---[mina86*jabber.org]----ooO--(_)--Ooo--

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@xxxxxxxxxx  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Fight unfair telecom policy in Canada: sign http://dissolvethecrtc.ca/
Don't email: <a href


[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]