mirror of
https://github.com/xen-project/xen.git
synced 2026-10-29 02:30:03 +01:00
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>
This commit is contained in:
1 parent
546ba55410
commit
2131e4744b
5 files changed
+1
-28
No files matched your search
@@ -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:
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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
|
||||
|
||||