Re: [Qemu-devel] [PATCH] qemu: msi irq allocation api

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

 



Paul Brook wrote:
>> Instead of writing directly, let's abstract it behind a qemu_set_irq().
>> This is easier for device authors.  The default implementation of the
>> irq callback could write to apic memory, while for kvm we can directly
>> trigger the interrupt via the kvm APIs.
>>     
>
> I'm still not convinced.
>
> A tight coupling between PCI devices and the APIC is just going to cause us 
> problems later one. I'm going to come back to the fact that these are memory 
> writes so once we get IOMMU support they will presumably be subject to 
> remapping by that, just like any other memory access.
>   

I'm not suggesting the qemu_irq will extend all the way to the apic.  
Think of it as connecting the device core with its interrupt unit.

> Even ignoring that, qemu_irq isn't really the right interface. A MSI is a one-
> off event, not a level state. OTOH stl_phys is exactly the right interface.
>   

The qemu_irq callback should do an stl_phys().  The device is happy 
since it's using the same API it uses for non-MSI.  The APIC is happy 
since it isn't connected directly to the device.  stl_phys() is happy 
since it sees more traffic and can serve more ads.  kvm is happy since 
it can hijack the callback to throw the interrupt directly into the kernel.

> The KVM interface should be contained within the APIC implementation.
>   

Tricky, but doable.

-- 
error compiling committee.c: too many arguments to function

_______________________________________________
Virtualization mailing list
Virtualization@xxxxxxxxxxxxxxxxxxxxxxxxxx
https://lists.linux-foundation.org/mailman/listinfo/virtualization

[Index of Archives]     [KVM Development]     [Libvirt Development]     [Libvirt Users]     [CentOS Virtualization]     [Netdev]     [Ethernet Bridging]     [Linux Wireless]     [Kernel Newbies]     [Security]     [Linux for Hams]     [Netfilter]     [Bugtraq]     [Yosemite Forum]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux Admin]     [Samba]

  Powered by Linux