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

RE: [Xen-devel] Re: APIC rework



Keir Fraser wrote:
> On 18/11/2009 03:25, "Zhang, Xiantao" <xiantao.zhang@xxxxxxxxx> wrote:
> 
>>> For modern dom0 don't we already assume that dom0 pirq == irq == gsi
>>> (see comments in ioapic_guest_write)? Perhaps we should just have
>>> that relationship set up by default: I think only NetBSD dom0 has
>>> different, and it will establish different relationship via legacy
>>> method of PHYSDEVOP_alloc_irq_vector and paravirtualised IOAPIC
>>> writes?
>> 
>> The assumption should be right for dom0 today, but it still needs to
>> register this info to dom0's private data(d->arch.{pirq_irq,
>> irq_pirq). 
>> And I think maybe we should clean up the logic and let hypervisor
>> knows the assumption, when consulting this relationship.
> 
> Well, it strikes me that existing MAP_PIRQ_TYPE_GSI fills this role
> already, as it is, doesn't it? Seems to me that is its whole purpose.
> :-) 
> 
> Shoehorning trig/pol information into it as well is kind of nasty.
> And I think on any PC system it should suffice to assume GSI 0-15 are
> ISA edge-triggered active-high, GSI 16+ are PCI level-triggered
> active-low, and any exceptions are parsed out of MADT or MPBIOS. We
> pretty much have all that code, it just might need plumbing back in a
> little bit. Yunhong points out that ACPI DSDT can have overriding
> objects in the _PRT, but I don't know it ever actually gets used on
> real-world PC systems. So I would try without, but if we do end up
> needing to get this info from dom0, I think it should be via a new
> physdev_op.

At least dom0 parses this info from DSDT, so we can't have the assuption 
whether it is used or not, I think. And I also agree to add a new physdev_op to 
handle this case, and it should be better way to go.  
Based on this idea, I worked out the patch, attached!  In this patch, we 
introduced a new physdev_op PHYSDEVOP_setup_gsi for each GSI setup, and each 
domain can require to map each GSI in this case. 
In addition, I believe it is very safe to port the hypervisor patch to 
xen-3.4-x tree and keeps pv_ops dom0 running on it, since no logic is changed.  
BTW, I also tested apic and non-apic cases, they works fine after applying the 
patches. 
Xiantao


Attachment: x86-add-a-new-physdev_op.patch
Description: x86-add-a-new-physdev_op.patch

Attachment: 0001-x86-ioapic-Remove-Xen-s-specific-changes-about-ioa.patch
Description: 0001-x86-ioapic-Remove-Xen-s-specific-changes-about-ioa.patch

_______________________________________________
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®.