but i didn't find intel cpu support exclude_host attribute.
and this method depend on the support of cpu.

i find the implement of Xenoprof, which inject the nmi interrupt in
nmi_callback.

maybe we can inject the nmi interrupt like this:

static void vmx_complete_atomic_exit(struct vcpu_vmx *vmx)
{
        u32 exit_intr_info;

        if (!(vmx->exit_reason == EXIT_REASON_MCE_DURING_VMENTRY
              || vmx->exit_reason == EXIT_REASON_EXCEPTION_NMI))
                return;

        vmx->exit_intr_info = vmcs_read32(VM_EXIT_INTR_INFO);
        exit_intr_info = vmx->exit_intr_info;

        /* Handle machine checks before interrupts are enabled */
        if (is_machine_check(exit_intr_info))
                kvm_machine_check();

        /* We need to handle NMIs before interrupts are enabled */
        if ((exit_intr_info & INTR_INFO_INTR_TYPE_MASK) == INTR_TYPE_NMI_INTR &&
            (exit_intr_info & INTR_INFO_VALID_MASK)) {
                kvm_before_handle_nmi(&vmx->vcpu);


                    if ( )  //cause by performance counter
                    {
                        kvm_inject_nmi(&vmx->vcpu);
                    }


                asm("int $2");
                kvm_after_handle_nmi(&vmx->vcpu);
        }
}




2011/6/27 Avi Kivity <a...@redhat.com>:
> On 06/27/2011 05:10 PM, lidong chen wrote:
>>
>> this patch used perf_event_create_kernel_counter function to setup
>> event in host os.
>> whether the count of event will calculate the part of qemu-kvm
>> userspace, and deliver the nmi interrupt which caused by this part to
>> guest os?
>
> There is a patch by Joerg Roedel that adds a .exclude_host attribute that
> prevents this from happening.  Once that patch is merged, I'll change this
> one to make use of it.
>
> --
> error compiling committee.c: too many arguments to function
>
>
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to