|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH 2/6] libxc: xc_domain_memory_mapping, handle cacheability
Add an additional parameter to xc_domain_memory_mapping to pass
cacheability information. The same parameter values are the same for the
XEN_DOMCTL_memory_mapping hypercall (0 is device memory, 1 is normal
memory). Pass CACHEABILITY_DEVMEM by default -- no changes in behavior.
Signed-off-by: Stefano Stabellini <stefanos@xxxxxxxxxx>
CC: ian.jackson@xxxxxxxxxxxxx
CC: wei.liu2@xxxxxxxxxx
---
tools/libxc/include/xenctrl.h | 3 ++-
tools/libxc/xc_domain.c | 6 ++++--
tools/libxl/libxl_create.c | 2 +-
3 files changed, 7 insertions(+), 4 deletions(-)
diff --git a/tools/libxc/include/xenctrl.h b/tools/libxc/include/xenctrl.h
index 97ae965..3b89b05 100644
--- a/tools/libxc/include/xenctrl.h
+++ b/tools/libxc/include/xenctrl.h
@@ -1719,7 +1719,8 @@ int xc_domain_memory_mapping(xc_interface *xch,
unsigned long first_gfn,
unsigned long first_mfn,
unsigned long nr_mfns,
- uint32_t add_mapping);
+ uint32_t add_mapping,
+ uint32_t cache_policy);
int xc_domain_ioport_mapping(xc_interface *xch,
uint32_t domid,
diff --git a/tools/libxc/xc_domain.c b/tools/libxc/xc_domain.c
index 05d771f..f22d176 100644
--- a/tools/libxc/xc_domain.c
+++ b/tools/libxc/xc_domain.c
@@ -2048,7 +2048,8 @@ int xc_domain_memory_mapping(
unsigned long first_gfn,
unsigned long first_mfn,
unsigned long nr_mfns,
- uint32_t add_mapping)
+ uint32_t add_mapping,
+ uint32_t cache_policy)
{
DECLARE_DOMCTL;
xc_dominfo_t info;
@@ -2070,6 +2071,7 @@ int xc_domain_memory_mapping(
domctl.cmd = XEN_DOMCTL_memory_mapping;
domctl.domain = domid;
domctl.u.memory_mapping.add_mapping = add_mapping;
+ domctl.u.memory_mapping.cache_policy = cache_policy;
max_batch_sz = nr_mfns;
do
{
@@ -2106,7 +2108,7 @@ int xc_domain_memory_mapping(
*/
if ( ret && add_mapping != DPCI_REMOVE_MAPPING )
xc_domain_memory_mapping(xch, domid, first_gfn, first_mfn, nr_mfns,
- DPCI_REMOVE_MAPPING);
+ DPCI_REMOVE_MAPPING, CACHEABILITY_DEVMEM);
/* We might get E2BIG so many times that we never advance. */
if ( !done && !ret )
diff --git a/tools/libxl/libxl_create.c b/tools/libxl/libxl_create.c
index fa57334..9a9b953 100644
--- a/tools/libxl/libxl_create.c
+++ b/tools/libxl/libxl_create.c
@@ -1348,7 +1348,7 @@ static void domcreate_launch_dm(libxl__egc *egc,
libxl__multidev *multidev,
}
ret = xc_domain_memory_mapping(CTX->xch, domid,
io->gfn, io->start,
- io->number, 1);
+ io->number, 1, CACHEABILITY_DEVMEM);
if (ret < 0) {
LOGED(ERROR, domid,
"failed to map to domain iomem range %"PRIx64"-%"PRIx64
--
1.9.1
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |