|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH 6/7] vm-event/arm: move hvm_event_cr->common vm_event_monitor_cr
>>> On 16.06.16 at 16:12, <czuzu@xxxxxxxxxxxxxxx> wrote:
> Prepare for ARM implementation of control-register write vm-events by moving
> X86-specific hvm_event_cr to the common-side.
>
> Signed-off-by: Corneliu ZUZU <czuzu@xxxxxxxxxxxxxxx>
> ---
> xen/arch/x86/hvm/event.c | 30 ------------------------------
> xen/arch/x86/hvm/hvm.c | 2 +-
> xen/arch/x86/monitor.c | 37 -------------------------------------
> xen/arch/x86/vm_event.c | 2 +-
> xen/common/monitor.c | 40 ++++++++++++++++++++++++++++++++++++++++
> xen/common/vm_event.c | 31 +++++++++++++++++++++++++++++++
> xen/include/asm-x86/hvm/event.h | 13 ++++---------
> xen/include/asm-x86/monitor.h | 2 --
> xen/include/xen/monitor.h | 4 ++++
> xen/include/xen/vm_event.h | 10 ++++++++++
> 10 files changed, 91 insertions(+), 80 deletions(-)
Considering that there's no ARM file getting altered here at all,
mentioning ARM in the subject is a little odd.
> --- a/xen/common/monitor.c
> +++ b/xen/common/monitor.c
> @@ -62,6 +62,46 @@ int monitor_domctl(struct domain *d, struct
> xen_domctl_monitor_op *mop)
>
> switch ( mop->event )
> {
> +#if CONFIG_X86
#ifdef please.
> + case XEN_DOMCTL_MONITOR_EVENT_WRITE_CTRLREG:
> + {
> + struct arch_domain *ad = &d->arch;
Peeking into the next patch I see that this stays there. Common code,
however, shouldn't access ->arch sub-structures - respective fields
should be moved out.
And looking at all the uses of this variable I get the impression that
you really want a shorthand for &d->arch.monitor (if any such
helper variable is worthwhile to have here in the first place).
> --- a/xen/include/asm-x86/monitor.h
> +++ b/xen/include/asm-x86/monitor.h
> @@ -24,8 +24,6 @@
>
> #include <xen/sched.h>
>
> -#define monitor_ctrlreg_bitmask(ctrlreg_index) (1U << (ctrlreg_index))
> -
> static inline
> int arch_monitor_domctl_op(struct domain *d, struct xen_domctl_monitor_op
> *mop)
> {
> --- a/xen/include/xen/monitor.h
> +++ b/xen/include/xen/monitor.h
> @@ -25,6 +25,10 @@
> struct domain;
> struct xen_domctl_monitor_op;
>
> +#if CONFIG_X86
> +#define monitor_ctrlreg_bitmask(ctrlreg_index) (1U << (ctrlreg_index))
> +#endif
What's the point in removing this from the x86 header if then it
needs to be put in such a conditional? If the conditional gets
dropped in the next patch, then I think you have two options:
Leave it where it is here, and move it there. Or move it here,
but omit the conditional right away - I can't see this definition
being present to harm the ARM build in any way.
> --- a/xen/include/xen/vm_event.h
> +++ b/xen/include/xen/vm_event.h
> @@ -96,6 +96,16 @@ void vm_event_vcpu_unpause(struct vcpu *v);
> int vm_event_monitor_traps(struct vcpu *v, uint8_t sync,
> vm_event_request_t *req);
>
> +#if CONFIG_X86
> +/*
> + * Called for the current vCPU on control-register changes by guest.
> + * The event might not fire if the client has subscribed to it in
> onchangeonly
> + * mode, hence the bool_t return type for control register write events.
> + */
> +bool_t vm_event_monitor_cr(unsigned int index, unsigned long value,
> + unsigned long old);
> +#endif
Same goes for the declaration here.
Jan
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |