Re: [PATCH v2 05/11] KVM: Expose a version 1 architectural PMU to guests

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

 



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


[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux