qemu-devel
[Top][All Lists]
Advanced

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

[Qemu-devel] Inject Interrupt, Using VMCS during qemu live migration.


From: 李 ヨンジュン
Subject: [Qemu-devel] Inject Interrupt, Using VMCS during qemu live migration.
Date: Sun, 09 Sep 2012 12:27:55 +0900
User-agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:15.0) Gecko/20120824 Thunderbird/15.0

Hello, I am trying to inject interrupt, in final phase of Live migration.

I use vmcs_write32 function to inject interrupt. This function is called
by qemu, with ioctl.

This is Code.

(KVM)

void vmcs_write32_provider(unsigned long field, u32 value)
{
vmcs_write32(field, value);
}


long kvm_arch_vcpu_ioctl(struct file *filp,
unsigned int ioctl, unsigned long arg)
{
~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
case KVM_TEST_IOCTL: {
r=0;
//printk("Test IOCTL!!!\n");
int type = 0;
int trap=58;
u32 intr_fields= (0x80000000 | (type<<8) | trap);
vmcs_write32_provider(0x00004016,intr_fields);
printk("vmcs_write Success!!!\n");

goto out;
}


This code works perfectly when called by hypercall.(When call this
function in kvm_emulate_hypercall function by guest VM.)

But, when I trying to call this function by qemu(ioctl), This error
message is occurred.

KVM: entry failed, hardware error 0x80000021

If you're running a guest on an Intel machine without unrestricted mode support, the failure can be most likely due to the guest entering an invalid state for Intel VT. For example, the guest maybe running in big real mode which is not supported on less recent Intel processors.


~~~~~~~~~~~~~~~~Register's Information's~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
RAX=00000000000000001~~~~~~~~~~~~~~~~~~~~~~~~


 I need help. Thank you.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]