Re: Pagecache: find_or_create_page does not call a proper pageallocator function

From: Christoph Lameter
Date: Tue Apr 24 2007 - 13:39:01 EST


On Tue, 24 Apr 2007, Hugh Dickins wrote:

> I've not yet looked at the patch under discussion, but this remark
> prompts me... a couple of days ago I got very worried by the various
> hard-wired GFP_HIGHUSER allocations in mm/migrate.c and mm/mempolicy.c,
> and wondered how those would work out if someone has a blockdev mmap'ed.

Hmmm.... These not that critical given that 32 bit NUMA systems are a bit
rare. And if a page is in the wrong area then it can be bounced before I/O
is performed on it.

> (If vma->vm_file is non-NULL, we can be sure vma->vm_file->f_mapping
> is non-NULL, can't we? Some common code assumes that, some does not:
> I've avoided cargo-cult safety below, but don't let me make it unsafe.)
>
>
> Is there a problem with page migration to HIGHMEM, if pages were
> mapped from a GFP_USER block device? I failed to demonstrate any
> problem, but here's a quick fix if needed.

If a page is migrated into a different zone and then a write attempt is
made on it then the page will be bounced into a zone from which the device
can write from.
-
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/