Thread (32 messages) 32 messages, 4 authors, 2011-04-05

[PATCH 04/12] mm: alloc_contig_freed_pages() added

From: Dave Hansen <hidden>
Date: 2011-04-01 14:03:46
Also in: linux-media, linux-mm, linux-samsung-soc, lkml

On Fri, 2011-04-01 at 00:51 +0200, Michal Nazarewicz wrote:
On Fri, 01 Apr 2011 00:26:51 +0200, Dave Hansen [off-list ref]  
wrote:
quoted
quoted
Bug in the above place does not mean that we could not allocate  
memory.  It means caller is broken.
Could you explain that a bit?

Is this a case where a device is mapped to a very *specific* range of
physical memory and no where else?  What are the reasons for not marking
it off limits at boot?  I also saw some bits of isolation and migration
in those patches.  Can't the migration fail?
The function is called from alloc_contig_range() (see patch 05/12) which
makes sure that the PFN is valid.  Situation where there is not enough
space is caught earlier in alloc_contig_range().

alloc_contig_freed_pages() must be given a valid PFN range such that all
the pages in that range are free (as in are within the region tracked by
page allocator) and of MIGRATETYPE_ISOLATE so that page allocator won't
touch them.
OK, so it really is a low-level function only.  How about a comment that
explicitly says this?  "Only called from $FOO with the area already
isolated."  It probably also deserves an __ prefix.
That's why invalid PFN is a bug in the caller and not an exception that
has to be handled.

Also, the function is not called during boot time.  It is called while
system is already running.
What kind of success have you had running this in practice?  I'd be
worried that some silly task or a sticky dentry would end up in the
range that you want to allocate in.  


-- Dave
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help