Re: [PATCH/RFCv4 0/6] The Contiguous Memory Allocator framework

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

 



On Thu, 26 Aug 2010 06:01:56 +0200
Michał Nazarewicz <m.nazarewicz@xxxxxxxxxxx> wrote:

> KAMEZAWA Hiroyuki <kamezawa.hiroyu@xxxxxxxxxxxxxx> wrote:
> > 128MB...too big ? But it's depend on config.
> 
> On embedded systems it may be like half of the RAM.  Or a quarter.  So bigger
> granularity could be desired on some platforms.
> 
> > IBM's ppc guys used 16MB section, and recently, a new interface to shrink
> > the number of /sys files are added, maybe usable.
> >
> > Something good with this approach will be you can create "cma" memory
> > before installing driver.
> 
> That's how CMA works at the moment.  But if I understand you correctly, what
> you are proposing would allow to reserve memory *at* *runtime* long after system
> has booted.  This would be a nice feature as well though.
> 
Yes, my proposal is that. 

> > But yes, complicated and need some works.
> 
> > Ah, I need to clarify what I want to say.
> >
> > With compaction, it's helpful, but you can't get contiguous memory larger
> > than MAX_ORDER, I think. To get memory larger than MAX_ORDER on demand,
> > memory hot-plug code has almost all necessary things.
> 
> I'll try to look at it then.
> 

mm/memory_hotplug.c::offline_pages() does

	1. disallow new allocation of memory in [start_pfn...end_pfn)
	2. move all LRU pages to other regions than [start_pfn...end_pfn)
	3. finally, mark all pages as PG_reserved (see __offline_isolated_pages())

What's required for cma will be
	a. remove _section_ limitation, which is done as BUG_ON().
	b. replace 'step 3' with cma code.

Maybe you can do similar just using compaction logic. The biggest difference will
be 'step 1'.

> > BTW, just curious...the memory for cma need not to be saved at
> > hibernation ? Or drivers has to write its own hibernation ops by driver suspend
> > udev or some ?
> 
> Hibernation was not considered as of yet but I think it's device driver's
> responsibility more then CMA's especially since it may make little sense to save
> some of the buffers -- ie. no need to keep a frame from camera since it'll be
> overwritten just after system wakes up from hibernation.  It may also be better
> to stop playback and resume it later on rather than trying to save decoder's
> state.  Again though, I haven't thought about hibernation as of yet.
> 

Hmm, ok, use-case dependent and it's a job of a driver.

Thanks,
-Kame


 

--
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/ .
Don't email: <a href=mailto:"dont@xxxxxxxxx";> email@xxxxxxxxx </a>



[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]