[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] Pausing event delivery


  • To: Xen-devel@xxxxxxxxxxxxx
  • From: Bread Cutter <cutter409@xxxxxxxxx>
  • Date: Mon, 4 Aug 2014 14:03:57 -0400
  • Delivery-date: Mon, 04 Aug 2014 18:04:34 +0000
  • List-id: Xen developer discussion <xen-devel.lists.xen.org>

Hi all,

I'm testing something out where I need to disable event delivery to
the guest temporarily. Essentially, I don't want the guest to get an
interrupt and schedule a different task on the VCPU while I'm in the
middle of my work.

I noticed in vmx_intr_assist() :

    /* Block event injection when single step with MTF. */
    if ( unlikely(v->arch.hvm_vcpu.single_step) )
    {
        v->arch.hvm_vmx.exec_control |= CPU_BASED_MONITOR_TRAP_FLAG;
        vmx_update_cpu_exec_control(v);
        return;
    }

So I tried adding my own check that would see if a flag is set and
simply return:

    if ( unlikely(v->arch.hvm_vcpu.block_interrupts) )
    {
        dprintk(XENLOG_DEBUG, "Blocking event injection on VCPU %d\n",
v->vcpu_id);
        return;
    }

However, it seems when the flag is set, the VCPU never resumes. It
seems stuck in a loop:

    ....
    (XEN) intr.c:234: Blocking event injection on VCPU 1
    (XEN) intr.c:234: Blocking event injection on VCPU 1
    (XEN) intr.c:234: Blocking event injection on VCPU 1
    (XEN) intr.c:234: Blocking event injection on VCPU 1
    ....

It doesn't look like any any other vmexits happen after this. A debug
message in the vmexit hander confirms this. What I'm aiming for is to
allow the guest to execute the next instruction, which will cause a
vmexit, and then I turn the flag off, and everything resumes.

Can anyone give me any insight into what I'm doing wrong or missing?

Thanks.

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.