[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] translate pirq to irq
On Jan 13, 2014, at 12:34 AM, Andrew Cooper wrote: > On 12/01/2014 19:26, Igor Kozhukhov wrote: >> Hi Andrew, >> >> On Jan 12, 2014, at 10:29 PM, Andrew Cooper wrote: >> >>> On 11/01/2014 22:59, Igor Kozhukhov wrote: >>>> Hello All, >>>> >>>> I see a comment in physdev.h for 'struct physdev_map_pirq', var 'pirq': >>>> /* IN - high 16 bits hold segment for MAP_PIRQ_TYPE_MSI_SEG */ >>>> >>>> i have received 'pirq' from hypervisor > 255. >>>> >>>> map_irq.domid = DOMID_SELF; >>>> >>>> map_irq.type = MAP_PIRQ_TYPE_MSI; >>>> >>>> map_irq.index = -1; /* hypervisor auto allocates vector */ >>>> >>>> map_irq.pirq = -1; >>>> >>>> map_irq.bus = busnum; >>>> >>>> map_irq.devfn = devfn; >>>> >>>> map_irq.entry_nr = i; >>>> >>>> map_irq.table_base = 0; >>>> rc = HYPERVISOR_physdev_op(PHYSDEVOP_map_pirq, &map_irq); >>>> >>>> irqno = map_irq.pirq; >>>> >>>> i have: >>>> irqno = 279 - it is more APIC_MAX_VECTOR(255) >>>> >>>> i have a question: how to correct translate pirq to irq for APIC map table >>>> ? >>>> >>>> all work well on xen-3.4, but it has another realization in function >>>> physdev_map_pirq() then for xen-4.2. >>> Is this for a PV or HVM guest? I suspect PV, in which case the irqno >>> handed back will be the event channel on which the notification will >>> arrive, and has nothing to do with regular IDT vectors. >> it is for dom0. >> >> full boot log with xen debug info and DDI_DEBUG on illumos you can find here >> : >> http://apt2.dilos.org/dilos/logs/putty.log.dom0.txt >> >> >> if it is possible - could you please let me know how to work MSI irq >> translation to APIC irq table for xen-4.2 ? >> >> i see - in xen code we have a range from 16 to 784 for 4 CPU for MSI IRQ >> (irq_create() function) >> but - how to correct translate it to APIC IRQ (physical irq)? > > Why do you need to know? > > Xen controls all interrupts on the system. Event channels which you > register with Xen have no mapping/relation to local apic vectors. Your > device drivers should not expect to have an apic vector in their hand. > > The reason behind this is that as virtual cpus get scheduled around > physical cpus, Xen needs to move the interrupts from IDT to IDT at which > point their vector will change. is it possible to receive IRQ from APIC table from Xen as index ? i need it for local APIC pointer to APIC table array as index. all others functions is using index from apic_irq_table[] as APIC IRQ. i have function apic_find_irq() for this. it is not my realization - it is original code. > ~Andrew -Igor _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |