[PATCH 0/4] xen: map foreign pages for shared rings by updating the PTEs directly

From: David Vrabel
Date: Thu Oct 20 2011 - 06:45:59 EST


This series of patches allows the vmalloc_sync_all() to be removed
from alloc_vm_area() by getting the hypervisor to update the PTEs (in
init_mm) directly rather than having the hypervisor look in the
current page tables to find the PTEs.

Once the hypervisor has updated the PTEs, the normal mechanism of
syncing the page tables after a fault works as expected.

This mechanism doesn't currently work on the ia64 port as that does
not support the GNTMAP_contains_pte flag.

Andrew, patch 4 (xen: map foreign pages for shared rings by updating
the PTEs directly) depends on patch 1 so it's probably best to go via
Konrad's Xen tree with your acked-by.

David

David Vrabel (4):
xen: use generic functions instead of xen_{alloc,free}_vm_area()
block: xen-blkback: use API provided by xenbus module to map rings
net: xen-netback: use API provided by xenbus module to map rings
xen: map foreign pages for shared rings by updating the PTEs directly

arch/ia64/include/asm/xen/grant_table.h | 29 -----------
arch/ia64/xen/grant-table.c | 62 ------------------------
arch/x86/include/asm/xen/grant_table.h | 7 ---
arch/x86/xen/grant-table.c | 2 +-
drivers/block/xen-blkback/common.h | 5 +--
drivers/block/xen-blkback/xenbus.c | 54 +++------------------
drivers/net/xen-netback/common.h | 11 ++--
drivers/net/xen-netback/netback.c | 80 +++++++------------------------
drivers/xen/xenbus/xenbus_client.c | 15 ++++--
include/linux/vmalloc.h | 2 +-
include/xen/grant_table.h | 1 -
mm/vmalloc.c | 27 +++++-----
12 files changed, 55 insertions(+), 240 deletions(-)
delete mode 100644 arch/ia64/include/asm/xen/grant_table.h
delete mode 100644 arch/x86/include/asm/xen/grant_table.h

--
1.7.2.5

--
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/