Olaf Hering
2012-Feb-26 14:05 UTC
[PATCH] xenpaging: remove obsolete XENMEM_paging_op_resume
# HG changeset patch
# User Olaf Hering <olaf@aepfle.de>
# Date 1330265060 -3600
# Node ID 3ace34b89ebe3bdd6afb0bca85b0c1270f99c1bb
# Parent 6fb2fee7c1833529cee81ca79994b0b132febdea
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>
diff -r 6fb2fee7c183 -r 3ace34b89ebe tools/libxc/xc_mem_paging.c
--- 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
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 -r 6fb2fee7c183 -r 3ace34b89ebe tools/libxc/xenctrl.h
--- a/tools/libxc/xenctrl.h
+++ b/tools/libxc/xenctrl.h
@@ -1902,8 +1902,6 @@ int xc_mem_paging_evict(xc_interface *xc
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 -r 6fb2fee7c183 -r 3ace34b89ebe tools/xenpaging/xenpaging.c
--- a/tools/xenpaging/xenpaging.c
+++ b/tools/xenpaging/xenpaging.c
@@ -658,8 +658,6 @@ static int xenpaging_evict_page(struct x
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);
@@ -680,14 +678,7 @@ static int xenpaging_resume_page(struct
}
/* 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 -r 6fb2fee7c183 -r 3ace34b89ebe xen/arch/x86/mm/mem_paging.c
--- 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, x
}
break;
- case XENMEM_paging_op_resume:
- {
- p2m_mem_paging_resume(d);
- return 0;
- }
- break;
-
default:
return -ENOSYS;
break;
diff -r 6fb2fee7c183 -r 3ace34b89ebe xen/include/public/memory.h
--- a/xen/include/public/memory.h
+++ b/xen/include/public/memory.h
@@ -322,7 +322,6 @@ typedef struct xen_pod_target xen_pod_ta
#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
Tim Deegan
2012-Feb-27 19:54 UTC
Re: [PATCH] xenpaging: remove obsolete XENMEM_paging_op_resume
At 15:05 +0100 on 26 Feb (1330268705), Olaf Hering wrote:> diff -r 6fb2fee7c183 -r 3ace34b89ebe xen/include/public/memory.h > --- a/xen/include/public/memory.h > +++ b/xen/include/public/memory.h > @@ -322,7 +322,6 @@ typedef struct xen_pod_target xen_pod_ta > #define XENMEM_paging_op_nominate 0 > #define XENMEM_paging_op_evict 1 > #define XENMEM_paging_op_prep 2 > -#define XENMEM_paging_op_resume 3Acked, except for this part - we should leave a gravestone here so we don''t reuse the number. Anyone using the old interface should get an explicit ENOSYS error. Tim.
Olaf Hering
2012-Feb-27 20:11 UTC
Re: [PATCH] xenpaging: remove obsolete XENMEM_paging_op_resume
On Mon, Feb 27, Tim Deegan wrote:> At 15:05 +0100 on 26 Feb (1330268705), Olaf Hering wrote: > > diff -r 6fb2fee7c183 -r 3ace34b89ebe xen/include/public/memory.h > > --- a/xen/include/public/memory.h > > +++ b/xen/include/public/memory.h > > @@ -322,7 +322,6 @@ typedef struct xen_pod_target xen_pod_ta > > #define XENMEM_paging_op_nominate 0 > > #define XENMEM_paging_op_evict 1 > > #define XENMEM_paging_op_prep 2 > > -#define XENMEM_paging_op_resume 3 > > Acked, except for this part - we should leave a gravestone here so > we don''t reuse the number. Anyone using the old interface should get an > explicit ENOSYS error.There can be no old user. xen-4.1 did not have this interface and XENMEM_paging_* is just a 17 days old. Olaf
Tim Deegan
2012-Feb-27 20:53 UTC
Re: [PATCH] xenpaging: remove obsolete XENMEM_paging_op_resume
At 21:11 +0100 on 27 Feb (1330377060), Olaf Hering wrote:> On Mon, Feb 27, Tim Deegan wrote: > > > At 15:05 +0100 on 26 Feb (1330268705), Olaf Hering wrote: > > > diff -r 6fb2fee7c183 -r 3ace34b89ebe xen/include/public/memory.h > > > --- a/xen/include/public/memory.h > > > +++ b/xen/include/public/memory.h > > > @@ -322,7 +322,6 @@ typedef struct xen_pod_target xen_pod_ta > > > #define XENMEM_paging_op_nominate 0 > > > #define XENMEM_paging_op_evict 1 > > > #define XENMEM_paging_op_prep 2 > > > -#define XENMEM_paging_op_resume 3 > > > > Acked, except for this part - we should leave a gravestone here so > > we don''t reuse the number. Anyone using the old interface should get an > > explicit ENOSYS error. > > There can be no old user. xen-4.1 did not have this interface and > XENMEM_paging_* is just a 17 days old.Fair enough. :) Ack. Tim.
Ian Jackson
2012-Mar-01 15:58 UTC
Re: [PATCH] xenpaging: remove obsolete XENMEM_paging_op_resume
Tim Deegan writes ("Re: [Xen-devel] [PATCH] xenpaging: remove obsolete
XENMEM_paging_op_resume"):> At 21:11 +0100 on 27 Feb (1330377060), Olaf Hering wrote:
> > > At 15:05 +0100 on 26 Feb (1330268705), Olaf Hering wrote:
> > > > diff -r 6fb2fee7c183 -r 3ace34b89ebe
xen/include/public/memory.h
> > > > --- a/xen/include/public/memory.h
> > > > +++ b/xen/include/public/memory.h
> Fair enough. :) Ack.
Thanks. The tools parts are fine too so,
Committed-by: Ian Jackson <ian.jackson@eu.citrix.com>