|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [RFC PATCH V3 07/12] xen: Remove mem_event
>>> On 29.01.15 at 22:46, <tamas.lengyel@xxxxxxxxxxxx> wrote:
> --- a/xen/include/public/domctl.h
> +++ b/xen/include/public/domctl.h
> @@ -750,15 +750,15 @@ struct xen_domctl_gdbsx_domstatus {
> };
>
> /*
> - * Memory event operations
> + * VM event operations
> */
>
> -/* XEN_DOMCTL_mem_event_op */
> +/* XEN_DOMCTL_vm_event_op */
>
> /*
> * Domain memory paging
> * Page memory in and out.
> - * Domctl interface to set up and tear down the
> + * Domctl interface to set up and tear down the
> * pager<->hypervisor interface. Use XENMEM_paging_op*
> * to perform per-page operations.
> *
> @@ -769,10 +769,10 @@ struct xen_domctl_gdbsx_domstatus {
> * EXDEV - guest has PoD enabled
> * EBUSY - guest has or had paging enabled, ring buffer still active
> */
> -#define XEN_DOMCTL_MEM_EVENT_OP_PAGING 1
> +#define XEN_DOMCTL_VM_EVENT_OP_PAGING 1
>
> -#define XEN_DOMCTL_MEM_EVENT_OP_PAGING_ENABLE 0
> -#define XEN_DOMCTL_MEM_EVENT_OP_PAGING_DISABLE 1
> +#define XEN_DOMCTL_VM_EVENT_OP_PAGING_ENABLE 0
> +#define XEN_DOMCTL_VM_EVENT_OP_PAGING_DISABLE 1
>
> /*
> * Monitor helper.
> @@ -799,84 +799,6 @@ struct xen_domctl_gdbsx_domstatus {
> * EBUSY - guest has or had access enabled, ring buffer still active
> *
> */
> -#define XEN_DOMCTL_MEM_EVENT_OP_MONITOR 2
> -
> -#define XEN_DOMCTL_MEM_EVENT_OP_MONITOR_ENABLE 0
> -#define XEN_DOMCTL_MEM_EVENT_OP_MONITOR_DISABLE 1
> -#define XEN_DOMCTL_MEM_EVENT_OP_MONITOR_ENABLE_INTROSPECTION 2
> -
> -/*
> - * Sharing ENOMEM helper.
> - *
> - * As with paging, use the domctl for teardown/setup of the
> - * helper<->hypervisor interface.
> - *
> - * If setup, this ring is used to communicate failed allocations
> - * in the unshare path. XENMEM_sharing_op_resume is used to wake up
> - * vcpus that could not unshare.
> - *
> - * Note that shring can be turned on (as per the domctl below)
> - * *without* this ring being setup.
> - */
> -#define XEN_DOMCTL_MEM_EVENT_OP_SHARING 3
> -
> -#define XEN_DOMCTL_MEM_EVENT_OP_SHARING_ENABLE 0
> -#define XEN_DOMCTL_MEM_EVENT_OP_SHARING_DISABLE 1
> -
> -/* Use for teardown/setup of helper<->hypervisor interface for paging,
> - * access and sharing.*/
> -struct xen_domctl_mem_event_op {
> - uint32_t op; /* XEN_DOMCTL_MEM_EVENT_OP_*_* */
> - uint32_t mode; /* XEN_DOMCTL_MEM_EVENT_OP_* */
> -
> - uint32_t port; /* OUT: event channel for ring */
> -};
> -typedef struct xen_domctl_mem_event_op xen_domctl_mem_event_op_t;
> -DEFINE_XEN_GUEST_HANDLE(xen_domctl_mem_event_op_t);
> -
> -/*
> - * VM event operations
> - */
> -
> -/* XEN_DOMCTL_vm_event_op */
> -
> -/*
> - * Domain memory paging
> - * Page memory in and out.
> - * Domctl interface to set up and tear down the
> - * pager<->hypervisor interface. Use XENMEM_paging_op*
> - * to perform per-page operations.
> - *
> - * The XEN_DOMCTL_MEM_EVENT_OP_PAGING_ENABLE domctl returns several
> - * non-standard error codes to indicate why paging could not be enabled:
> - * ENODEV - host lacks HAP support (EPT/NPT) or HAP is disabled in guest
> - * EMLINK - guest has iommu passthrough enabled
> - * EXDEV - guest has PoD enabled
> - * EBUSY - guest has or had paging enabled, ring buffer still active
> - */
> -#define XEN_DOMCTL_VM_EVENT_OP_PAGING 1
> -
> -#define XEN_DOMCTL_VM_EVENT_OP_PAGING_ENABLE 0
> -#define XEN_DOMCTL_VM_EVENT_OP_PAGING_DISABLE 1
> -
> -/*
> - * Monitor permissions.
> - *
> - * As with paging, use the domctl for teardown/setup of the
> - * helper<->hypervisor interface.
> - *
> - * There are HVM hypercalls to set the per-page access permissions of every
> - * page in a domain. When one of these permissions--independent, read,
> - * write, and execute--is violated, the VCPU is paused and a memory event
> - * is sent with what happened. (See public/vm_event.h) .
> - *
> - * The memory event handler can then resume the VCPU and redo the access
> - * with a XENMEM_access_op_resume hypercall.
> - *
> - * The XEN_DOMCTL_VM_EVENT_OP_MONITOR_ENABLE domctl returns several
> - * non-standard error codes to indicate why access could not be enabled:
> - * EBUSY - guest has or had access enabled, ring buffer still active
> - */
> #define XEN_DOMCTL_VM_EVENT_OP_MONITOR 2
>
> #define XEN_DOMCTL_VM_EVENT_OP_MONITOR_ENABLE 0
Did you look at the resulting patch to see what happened? It didn't
remove the mem_event stuff, but adjusted it enough to become the
vm_event one while removing the previously added vm_event part
again. Another argument against this approach imo.
Jan
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |