|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH] vmx/monitor: CPUID events
On Fri, Jul 8, 2016 at 1:03 AM, Razvan Cojocaru
<rcojocaru@xxxxxxxxxxxxxxx> wrote:
> On 07/08/16 05:31, Tamas K Lengyel wrote:
>> This patch implements sending notification to a monitor subscriber when an
>> x86/vmx guest executes the CPUID instruction.
>>
>> Signed-off-by: Tamas K Lengyel <tamas.lengyel@xxxxxxxxxxxx>
>> ---
>> Cc: Ian Jackson <ian.jackson@xxxxxxxxxxxxx>
>> Cc: Wei Liu <wei.liu2@xxxxxxxxxx>
>> Cc: Razvan Cojocaru <rcojocaru@xxxxxxxxxxxxxxx>
>> Cc: Jan Beulich <jbeulich@xxxxxxxx>
>> Cc: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
>> Cc: Jun Nakajima <jun.nakajima@xxxxxxxxx>
>> Cc: Kevin Tian <kevin.tian@xxxxxxxxx>
>> ---
>> tools/libxc/include/xenctrl.h | 1 +
>> tools/libxc/xc_monitor.c | 13 +++++++++++++
>> tools/tests/xen-access/xen-access.c | 33 ++++++++++++++++++++++++++++++++-
>> xen/arch/x86/hvm/monitor.c | 16 ++++++++++++++++
>> xen/arch/x86/hvm/vmx/vmx.c | 23 +++++++++++++++++++----
>> xen/arch/x86/monitor.c | 13 +++++++++++++
>> xen/include/asm-x86/domain.h | 1 +
>> xen/include/asm-x86/hvm/monitor.h | 1 +
>> xen/include/asm-x86/monitor.h | 3 ++-
>> xen/include/public/domctl.h | 1 +
>> xen/include/public/vm_event.h | 8 ++++++++
>> 11 files changed, 107 insertions(+), 6 deletions(-)
>>
>> diff --git a/tools/libxc/include/xenctrl.h b/tools/libxc/include/xenctrl.h
>> index 4a85b4a..e904bd5 100644
>> --- a/tools/libxc/include/xenctrl.h
>> +++ b/tools/libxc/include/xenctrl.h
>> @@ -2167,6 +2167,7 @@ int xc_monitor_guest_request(xc_interface *xch,
>> domid_t domain_id,
>> bool enable, bool sync);
>> int xc_monitor_debug_exceptions(xc_interface *xch, domid_t domain_id,
>> bool enable, bool sync);
>> +int xc_monitor_cpuid(xc_interface *xch, domid_t domain_id, bool enable);
>> /**
>> * This function enables / disables emulation for each REP for a
>> * REP-compatible instruction.
>> diff --git a/tools/libxc/xc_monitor.c b/tools/libxc/xc_monitor.c
>> index 264992c..4298813 100644
>> --- a/tools/libxc/xc_monitor.c
>> +++ b/tools/libxc/xc_monitor.c
>> @@ -172,6 +172,19 @@ int xc_monitor_debug_exceptions(xc_interface *xch,
>> domid_t domain_id,
>> return do_domctl(xch, &domctl);
>> }
>>
>> +int xc_monitor_cpuid(xc_interface *xch, domid_t domain_id, bool enable)
>> +{
>> + DECLARE_DOMCTL;
>> +
>> + domctl.cmd = XEN_DOMCTL_monitor_op;
>> + domctl.domain = domain_id;
>> + domctl.u.monitor_op.op = enable ? XEN_DOMCTL_MONITOR_OP_ENABLE
>> + : XEN_DOMCTL_MONITOR_OP_DISABLE;
>> + domctl.u.monitor_op.event = XEN_DOMCTL_MONITOR_EVENT_CPUID;
>> +
>> + return do_domctl(xch, &domctl);
>> +}
>> +
>> /*
>> * Local variables:
>> * mode: C
>> diff --git a/tools/tests/xen-access/xen-access.c
>> b/tools/tests/xen-access/xen-access.c
>> index 02655d5..d525b82 100644
>> --- a/tools/tests/xen-access/xen-access.c
>> +++ b/tools/tests/xen-access/xen-access.c
>> @@ -337,7 +337,7 @@ void usage(char* progname)
>> {
>> fprintf(stderr, "Usage: %s [-m] <domain_id> write|exec", progname);
>> #if defined(__i386__) || defined(__x86_64__)
>> - fprintf(stderr, "|breakpoint|altp2m_write|altp2m_exec|debug");
>> + fprintf(stderr,
>> "|breakpoint|altp2m_write|altp2m_exec|debug|cpuid");
>> #endif
>> fprintf(stderr,
>> "\n"
>> @@ -364,6 +364,7 @@ int main(int argc, char *argv[])
>> int shutting_down = 0;
>> int altp2m = 0;
>> int debug = 0;
>> + int cpuid = 1;
>
> Should this be on by default? All the rest of the options are 0, and ...
No, it's just a typo.
Thanks,
Tamas
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
https://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |