Re: [PATCH] mm,migration: Avoid race between shift_arg_pages() andrmap_walk() during migration by not migrating temporary stacks

From: Christoph Lameter
Date: Wed May 12 2010 - 17:35:08 EST



Still think this special casing is not that good.

One can also disable migration by providing a migration function that
always fails. One such function exists in mm/migrate.c:

/* Always fail migration. Used for mappings that are not movable */
int fail_migrate_page(struct address_space *mapping,
struct page *newpage, struct page *page)
{
return -EIO;
}
EXPORT_SYMBOL(fail_migrate_page);


The migration function is specified in

vma->vm_ops->migrate

If that is set to fail_migrate_page() then the pages in the vma will never
be migrated. XFS uses it f.e. to avoid page migration:

STATIC int
xfs_mapping_buftarg(
xfs_buftarg_t *btp,
struct block_device *bdev)
{
struct backing_dev_info *bdi;
struct inode *inode;
struct address_space *mapping;
static const struct address_space_operations mapping_aops = {
.sync_page = block_sync_page,
.migratepage = fail_migrate_page,
};



Would it not be possible to do something similar for the temporary stack?
--
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/