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

RE: [Xen-devel]Question about qemu interrupt deliver.



Keir Fraser write on 2006年11月29日 18:28:
> On 29/11/06 10:20, "Keir Fraser" <keir@xxxxxxxxxxxxx> wrote:
> 
>> There is always
>> the option of allowing the mapping to be dynamically specified to
>> Xen in future (e.g., hvmloader could make a choice, install the
>> appropriate ACPI DSDT and use a new hypercall to dynamically modify
>> PCI->link and PCI->GSI information). It's not clear that level of
>> flexibility will be warranted though -- 32 non-legacy GSIs should be
>> plenty to avoid sharing even with a static barber-pole INTx->GSI
>> mapping. 
> 
> Actually I can be more precise than this. I *would* have allowed
> dynamic INTx->GSI mapping if it were easy to generate the _PRT in the
> ACPI DSDT. Then hvmloader could walk the PCI bus, find all INTx
> lines, and map them all to unique GSIs. That would be very nice.
> *But* the _PRT is embedded in the DSDT and so generating it during
> boot is (as far as I am aware) basically impossible. So since the
> _PRT is static, the mapping in Xen may as well be static too.
> 
> I'd be very interested in knowing if there are any tricks to inject
> dynamic info into the DSDT (e.g., could the _PRT be dynamically
> generated in AML based on memory values poked by hvmloader?).
> 

Hi Keir,

Thanks for your detailed description

But I have below concerns.

1.  PCI->link and PCI->GSI are put into hypervisor. But it is under x86 
directory,
     it's not convenient for other architecture to share these information. 

     Seems there is a trend, we move code from other component into hypersivor,
     is there any criteria whether we should move code into hypersivor? 
Otherwise 
    hypersivor  will become bigger and bigger quickly, that's not definitely 
what we want.

2.  hypervisor uses hvm_irq->gsi_assert_count[gsi] to emulate level triggered 
interrupt.
    The code itself is correct, but it sets a high stardant for PCI device 
emulator, it PCI device
     emulator set irq_line low/hight twice continuously, that will lead to 
interrupt lost or spurios
     interrupt.



Anthony

>  -- Keir

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.