From: Razvan Cojocaru <rcojocaru@bitdefender.com>
To: Jan Beulich <JBeulich@suse.com>
Cc: george.dunlap@eu.citrix.com, andrew.cooper3@citrix.com,
tamas@tklengyel.com, keir@xen.org,
xen-devel@lists.xenproject.org
Subject: Re: [PATCH] xen/x86: Clean up vm_event-related code in asm-x86/domain.h
Date: Fri, 14 Aug 2015 13:30:31 +0300 [thread overview]
Message-ID: <55CDC347.7090400@bitdefender.com> (raw)
In-Reply-To: <55CDDD5F020000780009AF78@prv-mh.provo.novell.com>
On 08/14/2015 01:21 PM, Jan Beulich wrote:
>>>> On 14.08.15 at 11:54, <rcojocaru@bitdefender.com> 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.
Understood, thought I'd remove the trailing whitespace there, but I will
leave the unrelated code alone.
>> @@ -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).
Of course, I'll change it.
>> 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.
I'll remove it.
>> --- 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).
Ack. Thank you for the prompt review!
Thanks,
Razvan
next prev parent reply other threads:[~2015-08-14 10:29 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-08-14 9:54 [PATCH] xen/x86: Clean up vm_event-related code in asm-x86/domain.h Razvan Cojocaru
2015-08-14 10:21 ` Jan Beulich
2015-08-14 10:30 ` Razvan Cojocaru [this message]
2015-08-14 10:41 ` Jan Beulich
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=55CDC347.7090400@bitdefender.com \
--to=rcojocaru@bitdefender.com \
--cc=JBeulich@suse.com \
--cc=andrew.cooper3@citrix.com \
--cc=george.dunlap@eu.citrix.com \
--cc=keir@xen.org \
--cc=tamas@tklengyel.com \
--cc=xen-devel@lists.xenproject.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.