From: Razvan Cojocaru <rcojocaru@bitdefender.com>
To: "Lengyel, Tamas" <tlengyel@novetta.com>
Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
Subject: Re: Xc_mem_access_enable_emulate() is currently a no-operation
Date: Mon, 7 Dec 2015 20:35:15 +0200 [thread overview]
Message-ID: <5665D163.1070404@bitdefender.com> (raw)
In-Reply-To: <CAD33N+5yFWGFab76ePP75+gPYZLQv_UGCWBWEt-EwDZhN7YkLA@mail.gmail.com>
On 12/07/2015 07:55 PM, Lengyel, Tamas wrote:
>
>
> On Mon, Dec 7, 2015 at 4:09 AM, Razvan Cojocaru
> <rcojocaru@bitdefender.com <mailto:rcojocaru@bitdefender.com>> wrote:
>
> Hello,
>
> While looking at some code with Tamas these past few days, we discovered
> that xc_mem_access_enable_emulate() doesn't actually do anything other
> that setting the mem_access_emulate_enabled flag.
>
> Fixing that would likely be trivial (if the flag is not set,
> p2m_mem_access_emulate_check() should just return). However, my question
> is: do we really need that function? Are there cases where it would make
> sense to use the vm_event subsystem but disable emulation support? After
> all, if the client code wants to use emulation support it can call
> xc_mem_access_enable_emulate(), and if not it can simply not set the
> EMULATE flags in the vm_event replies.
>
> As far as I'm concerned, the libxc function can go (along with the
> per-domain flag), but then again we're emulation-intensive so it's quite
> possible that I'm not seeing the proper use case for this.
>
> Thoughts?
>
>
> It may make sense to gate the allocation of struct arch_vm_event to only
> happen when emulation has been enabled beforehand for the domain (the
> struct is used only for this purpose). Most places where it is used its
> checked for by unlikely(v->arch.vm_event) checks anyway so I feel like
> this was the original intention of having this flag to begin with. It's
> not checked everywhere like this though so we need to verify that all
> places that use it do check before using it.
I think the vm_event cleanup series (which introduced
xc_mem_access_enable_emulate()) hit staging some months before I've
changed the code to dynamically allocate that struct.
Also, the struct is not only used for emulation. Please see the struct
monitor_write_data write_data; member, that regulates CR and MSR writes.
Thanks,
Razvan
prev parent reply other threads:[~2015-12-07 18:35 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-12-07 9:09 Xc_mem_access_enable_emulate() is currently a no-operation Razvan Cojocaru
2015-12-07 17:55 ` Lengyel, Tamas
2015-12-07 18:35 ` Razvan Cojocaru [this message]
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=5665D163.1070404@bitdefender.com \
--to=rcojocaru@bitdefender.com \
--cc=tlengyel@novetta.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.