|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH] xen/x86: Clean up vm_event-related code in asm-x86/domain.h
>>> On 14.08.15 at 11:54, <rcojocaru@xxxxxxxxxxxxxxx> wrote:
> @@ -571,7 +571,7 @@ void hvm_do_resume(struct vcpu *v)
> }
>
> /* Inject pending hw/sw trap */
> - if ( v->arch.hvm_vcpu.inject_trap.vector != -1 )
> + if ( v->arch.hvm_vcpu.inject_trap.vector != -1 )
Stray whitespace change to unrelated code.
> @@ -3371,13 +3371,13 @@ int hvm_set_cr0(unsigned long value, bool_t
> may_defer)
> monitor_ctrlreg_bitmask(VM_EVENT_X86_CR0)) &&
> value != old_value )
> {
> - ASSERT(currad->event_write_data != NULL);
> + ASSERT(v->arch.vm_event != NULL);
May I recommend dropping the redundant != NULL namely in ASSERT()
expressions (the only effect they have is produce larger string literals
in debug builds).
> if ( hvm_event_crX(CR0, value, old_value) )
> {
> /* The actual write will occur in hvm_do_resume(), if permitted.
> */
> - currad->event_write_data[v->vcpu_id].do_write.cr0 = 1;
> - currad->event_write_data[v->vcpu_id].cr0 = value;
> + v->arch.vm_event->write_data.do_write.cr0 = 1;
> + v->arch.vm_event->write_data.cr0 = value;
Looks like this leaves just a single use of currad in the function, in
which case I'd like to see the variable go away.
> --- a/xen/include/asm-x86/domain.h
> +++ b/xen/include/asm-x86/domain.h
> @@ -8,6 +8,7 @@
> #include <asm/hvm/domain.h>
> #include <asm/e820.h>
> #include <asm/mce.h>
> +#include <public/vm_event.h>
It looks like both this and ...
> @@ -460,6 +459,18 @@ typedef enum __packed {
> SMAP_CHECK_DISABLED, /* disable the check */
> } smap_check_policy_t;
>
> +/*
> + * Should we emulate the next matching instruction on VCPU resume
> + * after a vm_event?
> + */
> +struct vm_event {
> + uint32_t emulate_flags;
> + unsigned long gpa;
> + unsigned long eip;
> + struct vm_event_emul_read_data emul_read_data;
> + struct monitor_write_data write_data;
> +};
... this would better go into asm-x86/vm_event.h (despite it meaning
that the file will then be included by basically everything).
Jan
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |