Dor Laor wrote:
>>>> If we do this, then we can probably just handle the TPR as a special
>>>> case anyway and not bother returning to userspace when the TPR is
>>>> updated through MMIO.  That saves the round trip without adding
>>>> emulation complexity.
>>>>         
>>> That means the emulation is split among user space and kernel.  Not
>>> nice.  One of the advantages of moving the entire thing is that it is
>>> at least clearly defined.
>>>       
>> It still exists in userspace.  Having the code duplication (especially
>> when it's not the same code base) is unfortunate.  Plus, it complicates
>> save/restore/migration since now some device state is in the kernel.
>>     
> It
>   
>> further complicates things if you want to make sure that KVM saved
>> images are loadable in QEMU (you have to make sure that the device
>>     
> state
>   
>> is identical for the kernel and userspace).  Special casing the TPR
>> emulation seems like the lesser of two evils to me.
>>
>>     
>
> There are still some nasty issues that caused by running apic in qemu:
>  - If you have a PV driver that issued an irq and now it needs another
> one,
>    You cannot really be sure if the first one was injected. You can hold
>
>    extra state and follow irq injection from qemu but this is ugly.
>  - You have to keep sync of tpr and irq injection: suppose apic needs to
>
>    inject an irq, it pops it from the irr and tries to inject it. If it
> is 
>    done while the VM is in interrupt window closed or irq disables it
> will 
>    no happen instantly. When the irq would really be injected the tpr
> might 
>    be different, causing windows irq-not-less-or-equal BSOD.
>    This is especially true for injecting several irq at once.
>
> Keeping the apic in the kernel simplifies this with the cost of
> maintaining an apic/pic implementation. 
>   

Hrm, this is definitely starting to sound like a PITA to deal with.  
Maybe in-kernel platform devices are unavoidable :-/

> Do you know why Xen guy choose of implementing it in Xen? Why didn't
> they rip Qemu implementation?
>   

I believe it's based on the QEMU implementation although it's evolved 
quite a bit.  Jun can probably provide a better answer.

Regards,

Anthony Liguori

>   
>> Regards,
>>
>> Anthony Liguori
>>     
>
>
>   


-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
kvm-devel mailing list
kvm-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/kvm-devel

Reply via email to