From: Razvan Cojocaru <rcojocaru@bitdefender.com>
To: "Lengyel, Tamas" <tlengyel@novetta.com>
Cc: kevin.tian@intel.com, wei.liu2@citrix.com,
Ian Campbell <ian.campbell@citrix.com>,
Stefano Stabellini <stefano.stabellini@eu.citrix.com>,
tim@xen.org, ian.jackson@eu.citrix.com, xen-devel@lists.xen.org,
Jan Beulich <jbeulich@suse.com>,
eddie.dong@intel.com, Jun Nakajima <jun.nakajima@intel.com>,
andrew.cooper3@citrix.com, keir@xen.org
Subject: Re: [PATCH V9] xen/vm_event: Clean up control-register-write vm_events and add XCR0 event
Date: Wed, 03 Jun 2015 16:48:15 +0300 [thread overview]
Message-ID: <556F059F.8090901@bitdefender.com> (raw)
In-Reply-To: <CAD33N+7VOtQ0dK7Fnc=TNmmCJHn=xuSSX9S7Sk7vHoqip=0cuQ@mail.gmail.com>
On 06/03/2015 04:29 PM, Lengyel, Tamas wrote:
>
>
>
> diff --git a/xen/include/asm-x86/domain.h b/xen/include/asm-x86/domain.h
> index 45b5283..a3c117f 100644
> --- a/xen/include/asm-x86/domain.h
> +++ b/xen/include/asm-x86/domain.h
> @@ -341,15 +341,9 @@ struct arch_domain
>
> /* Monitor options */
> struct {
> - uint16_t mov_to_cr0_enabled : 1;
> - uint16_t mov_to_cr0_sync : 1;
> - uint16_t mov_to_cr0_onchangeonly : 1;
> - uint16_t mov_to_cr3_enabled : 1;
> - uint16_t mov_to_cr3_sync : 1;
> - uint16_t mov_to_cr3_onchangeonly : 1;
> - uint16_t mov_to_cr4_enabled : 1;
> - uint16_t mov_to_cr4_sync : 1;
> - uint16_t mov_to_cr4_onchangeonly : 1;
> + uint16_t write_ctrlreg_enabled : 4;
> + uint16_t write_ctrlreg_sync : 4;
> + uint16_t write_ctrlreg_onchangeonly : 4;
>
>
> Just looking at this here again, we will now have a bitmap within a
> bitmap, which doesn't seem to be very efficient. IMHO it would be better
> to just take the ctrlreg bitmap out as a separate uint8_t within struct
> {} monitor.
How is it inefficient? I don't see that at all. And I'm not sure what
you mean about the uint8_t: there are 3 fields there, each 4-bits wide
(write_ctrlreg_enabled, write_ctrlreg_sync, write_ctrlreg_onchangeonly)
and only (at most) two of them would fit into a uint8_t. To put them all
into a new struct would mean wasting an uint16_t for 12-bits.
You might argue that it's not as clean-cut as having one explicitly
specified bit for each control register (like mov_to_cr0_enabled,
mov_to_cr3_enabled, etc. were before), but that's intentional, as it
makes it trivial to add a new control register write event: just go
ahead and "#define VM_EVENT_X86_XCR1 4", for example, and then all you
need to do is make sure that write_ctrlreg_enabled is wide enough to
hold 5 events, and that's it, you can use the new event in the HV and libxc.
Having explicit 1-bit fields for each new event (which I think is what
you're proposing) makes it much more work to add a new ctrlreg event,
and it defeats the purpose of much of the conversations I've had with
Jan about all those shifting and convenience macros.
Thanks,
Razvan
next prev parent reply other threads:[~2015-06-03 13:48 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-06-03 11:35 [PATCH V9] xen/vm_event: Clean up control-register-write vm_events and add XCR0 event Razvan Cojocaru
2015-06-03 11:45 ` Ian Campbell
2015-06-03 13:29 ` Lengyel, Tamas
2015-06-03 13:48 ` Razvan Cojocaru [this message]
2015-06-03 14:19 ` Lengyel, Tamas
2015-06-03 14:37 ` Razvan Cojocaru
2015-06-04 13:53 ` Tim Deegan
2015-06-04 18:49 ` Lengyel, Tamas
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=556F059F.8090901@bitdefender.com \
--to=rcojocaru@bitdefender.com \
--cc=andrew.cooper3@citrix.com \
--cc=eddie.dong@intel.com \
--cc=ian.campbell@citrix.com \
--cc=ian.jackson@eu.citrix.com \
--cc=jbeulich@suse.com \
--cc=jun.nakajima@intel.com \
--cc=keir@xen.org \
--cc=kevin.tian@intel.com \
--cc=stefano.stabellini@eu.citrix.com \
--cc=tim@xen.org \
--cc=tlengyel@novetta.com \
--cc=wei.liu2@citrix.com \
--cc=xen-devel@lists.xen.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.