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

[Xen-devel] [PATCH v4 0/3] map grant refs at pfn = mfn



Hi all,
this patch series introduces a second p2m mapping of grant reference on
ARM at guest physical address == machine address of the grant ref.  It
is safe because dom0 is already mapped 1:1. We export
XENFEAT_grant_map_identity to signal the guest that this second p2m
mapping is
available.

One reason for wanting the second p2m mapping is to avoid tracking mfn
to pfn mappings in the guest kernel. Since the same mfn can be granted
multiple times to the backend, finding the right pfn corresponding to a
given mfn can be difficult and expensive. Providing a second mapping at
a known address allow the kernel to access the page without knowing the
pfn.


Changes in v4:
- remove define is_domain_direct_mapped in common/memory.c;
- is_domain_direct_mapped as ((void)(d), 0);
- declare the x86 implementations of arch_grant_(un)map_page_identity as extern;
- add ASSERTs to ARM implementations of
  arch_grant_(un)map_page_identity;
- add XENFEAT_grant_map_identity if is_domain_direct_mapped;
- remove gnttab_need_identity_mapping, check is_domain_direct_mapped
  instead;
- define gnttab_need_iommu_mapping as is_domain_direct_mapped on arm.


Changes in v3:
- add "introduce is_domain_direct_mapped(d) as (0) on x86";
- use p2m_iommu types in arch_grant_(un)map_page_identity;
- call arch_grant_(un)map_page_identity functions from
arm_smmu_(un)map_page;
- introduce gnttab_need_identity_mapping;
- check gnttab_need_identity_mapping in __gnttab_map_grant_ref and
__gnttab_unmap_common.



Stefano Stabellini (3):
      xen/x86: introduce is_domain_direct_mapped(d) as ((void)(d), 0) on x86
      xen: introduce arch_grant_(un)map_page_identity
      xen/arm: introduce XENFEAT_grant_map_identity

 xen/arch/arm/p2m.c                 |   26 ++++++++++++++++++++++++++
 xen/arch/x86/mm/p2m.c              |   13 +++++++++++++
 xen/common/grant_table.c           |   31 +++++++++++++++++++++++++------
 xen/common/kernel.c                |    2 ++
 xen/common/memory.c                |    4 ----
 xen/drivers/passthrough/arm/smmu.c |   13 ++-----------
 xen/include/asm-arm/grant_table.h  |    3 +--
 xen/include/asm-arm/p2m.h          |    4 ++++
 xen/include/asm-x86/domain.h       |    1 +
 xen/include/asm-x86/p2m.h          |    4 ++++
 xen/include/public/features.h      |    3 +++
 11 files changed, 81 insertions(+), 23 deletions(-)

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.