aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorOlaf Hering <olaf@aepfle.de>2012-03-01 15:58:02 +0000
committerOlaf Hering <olaf@aepfle.de>2012-03-01 15:58:02 +0000
commit2131e4744b591ef304e4ee2dd0d3c6891ad659b9 (patch)
tree4db2c4cda6a571bbd6e34a1b8f71c1d4b0180e99
parent546ba55410f7c772799b5f89c7027d8393b25b23 (diff)
downloadxen-2131e4744b591ef304e4ee2dd0d3c6891ad659b9.tar.gz
xen-2131e4744b591ef304e4ee2dd0d3c6891ad659b9.tar.bz2
xen-2131e4744b591ef304e4ee2dd0d3c6891ad659b9.zip
xenpaging: remove obsolete XENMEM_paging_op_resume
With changeset 24364:0964341efd65 an event channel based notification of new responses in the ringbuffer is implemented. This makes the memevent interface obsolete. Currently a call to p2m_mem_paging_resume() is triggered twice by xenpaging, once per memevent and once per even channel. In practice this double call does not lead to issues because p2m_mem_paging_resume() processes only available events. xenpaging used the event channel notification since the beginning, but it was a no-op until changeset mentioned above. This change removes the unneeded XENMEM_paging_op_resume functionality. Pagers are notified via an event channel of new requests, and now they are required to notify the hypervisor about their responses also with an event channel. Signed-off-by: Olaf Hering <olaf@aepfle.de> Acked-by: Tim Deegan <tim@xen.org> Acked-by: Ian Jackson <ian.jackson@eu.citrix.com> Committed-by: Ian Jackson <ian.jackson@eu.citrix.com>
-rw-r--r--tools/libxc/xc_mem_paging.c8
-rw-r--r--tools/libxc/xenctrl.h2
-rw-r--r--tools/xenpaging/xenpaging.c11
-rw-r--r--xen/arch/x86/mm/mem_paging.c7
-rw-r--r--xen/include/public/memory.h1
5 files changed, 1 insertions, 28 deletions
diff --git a/tools/libxc/xc_mem_paging.c b/tools/libxc/xc_mem_paging.c
index eaf713388f..c1330295e7 100644
--- a/tools/libxc/xc_mem_paging.c
+++ b/tools/libxc/xc_mem_paging.c
@@ -93,14 +93,6 @@ int xc_mem_paging_load(xc_interface *xch, domid_t domain_id,
return rc;
}
-int xc_mem_paging_resume(xc_interface *xch, domid_t domain_id, unsigned long gfn)
-{
- return xc_mem_event_memop(xch, domain_id,
- XENMEM_paging_op_resume,
- XENMEM_paging_op,
- gfn, NULL);
-}
-
/*
* Local variables:
diff --git a/tools/libxc/xenctrl.h b/tools/libxc/xenctrl.h
index 841c110a17..6dd500ae20 100644
--- a/tools/libxc/xenctrl.h
+++ b/tools/libxc/xenctrl.h
@@ -1902,8 +1902,6 @@ int xc_mem_paging_evict(xc_interface *xch, domid_t domain_id, unsigned long gfn)
int xc_mem_paging_prep(xc_interface *xch, domid_t domain_id, unsigned long gfn);
int xc_mem_paging_load(xc_interface *xch, domid_t domain_id,
unsigned long gfn, void *buffer);
-int xc_mem_paging_resume(xc_interface *xch, domid_t domain_id,
- unsigned long gfn);
int xc_mem_access_enable(xc_interface *xch, domid_t domain_id,
void *shared_page, void *ring_page);
diff --git a/tools/xenpaging/xenpaging.c b/tools/xenpaging/xenpaging.c
index b7b754541a..c0f08e3c4c 100644
--- a/tools/xenpaging/xenpaging.c
+++ b/tools/xenpaging/xenpaging.c
@@ -656,8 +656,6 @@ static int xenpaging_evict_page(struct xenpaging *paging, unsigned long gfn, int
static int xenpaging_resume_page(struct xenpaging *paging, mem_event_response_t *rsp, int notify_policy)
{
- int ret;
-
/* Put the page info on the ring */
put_response(&paging->mem_event, rsp);
@@ -678,14 +676,7 @@ static int xenpaging_resume_page(struct xenpaging *paging, mem_event_response_t
}
/* Tell Xen page is ready */
- ret = xc_mem_paging_resume(paging->xc_handle, paging->mem_event.domain_id,
- rsp->gfn);
- if ( ret == 0 )
- ret = xc_evtchn_notify(paging->mem_event.xce_handle,
- paging->mem_event.port);
-
- out:
- return ret;
+ return xc_evtchn_notify(paging->mem_event.xce_handle, paging->mem_event.port);
}
static int xenpaging_populate_page(struct xenpaging *paging, unsigned long gfn, int i)
diff --git a/xen/arch/x86/mm/mem_paging.c b/xen/arch/x86/mm/mem_paging.c
index 6cf9b385b0..8f110497f4 100644
--- a/xen/arch/x86/mm/mem_paging.c
+++ b/xen/arch/x86/mm/mem_paging.c
@@ -53,13 +53,6 @@ int mem_paging_memop(struct domain *d, xen_mem_event_op_t *mec)
}
break;
- case XENMEM_paging_op_resume:
- {
- p2m_mem_paging_resume(d);
- return 0;
- }
- break;
-
default:
return -ENOSYS;
break;
diff --git a/xen/include/public/memory.h b/xen/include/public/memory.h
index f78d74e16c..86d02c8b88 100644
--- a/xen/include/public/memory.h
+++ b/xen/include/public/memory.h
@@ -322,7 +322,6 @@ typedef struct xen_pod_target xen_pod_target_t;
#define XENMEM_paging_op_nominate 0
#define XENMEM_paging_op_evict 1
#define XENMEM_paging_op_prep 2
-#define XENMEM_paging_op_resume 3
#define XENMEM_access_op 21
#define XENMEM_access_op_resume 0