xenpaging: remove obsolete XENMEM_paging_op_resume
authorOlaf Hering <olaf@aepfle.de>
Thu, 1 Mar 2012 15:58:02 +0000 (15:58 +0000)
committerOlaf Hering <olaf@aepfle.de>
Thu, 1 Mar 2012 15:58:02 +0000 (15:58 +0000)
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>
tools/libxc/xc_mem_paging.c
tools/libxc/xenctrl.h
tools/xenpaging/xenpaging.c
xen/arch/x86/mm/mem_paging.c
xen/include/public/memory.h

index eaf713388fb202001911d5268b00c96b5026fe5a..c1330295e7919ca2f81392db609b888f6e049576 100644 (file)
@@ -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:
index 841c110a17f98a6dd0f52659d77e52b31a0420d6..6dd500ae20e5a1a70cd115cfd3e257501ba03399 100644 (file)
@@ -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);
index b7b754541ae57f2f765616c8d97c3263e74323cb..c0f08e3c4c5990c667567b80066c9e9b0939583b 100644 (file)
@@ -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)
index 6cf9b385b0be314d900138765382ed93597b63a9..8f110497f4830a60dd12c10ebecf1bc480bbd811 100644 (file)
@@ -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;
index f78d74e16c59c3dfa07b4f995ca076a9823e7f57..86d02c8b88e4a3f8eb5f1ae76a35d8786fd8bbed 100644 (file)
@@ -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