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 <avi@xxxxxxxxxx>: > 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 majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html