diff options
author | Olaf Hering <olaf@aepfle.de> | 2012-03-01 15:58:02 +0000 |
---|---|---|
committer | Olaf Hering <olaf@aepfle.de> | 2012-03-01 15:58:02 +0000 |
commit | 2131e4744b591ef304e4ee2dd0d3c6891ad659b9 (patch) | |
tree | 4db2c4cda6a571bbd6e34a1b8f71c1d4b0180e99 | |
parent | 546ba55410f7c772799b5f89c7027d8393b25b23 (diff) | |
download | xen-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.c | 8 | ||||
-rw-r--r-- | tools/libxc/xenctrl.h | 2 | ||||
-rw-r--r-- | tools/xenpaging/xenpaging.c | 11 | ||||
-rw-r--r-- | xen/arch/x86/mm/mem_paging.c | 7 | ||||
-rw-r--r-- | xen/include/public/memory.h | 1 |
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 |