On 09/13/08 19:22, Dana H. Myers wrote:
> Bill Holler wrote:
>   
>> Changing the HPET interrupt to Level triggered added about
>> 2 micro seconds to the ISR compared with using Edge triggered.
>> The ISR must now verify an interrupt is pending and tell the
>> HPET its interrupt was serviced with a read and a write of HPET
>> registers.
>>
>> The apic code looks like it will not allow sharing of Edge
>> triggered I/O APIC interrupts?  Perhaps we should keep
>> using an Edge triggered HPET interrupt instead of Level
>> triggered?
>>   
>>     
> You can't share edge-triggered interrupts reliably, really.
>   

Yes.
My question is "will apic_setup_irq_table() prevent sharing
edge-triggered interrupts?"


We use this apic_setup_irq_table() call:

        if (apic_setup_irq_table(NULL, apic_hpet_vect, NULL,
            &ispec, &apic_hpet_flags, DDI_INTR_TYPE_FIXED) < 0) {
                cmn_err(CE_WARN, "!apic: HPET setup failed");
                return;
        }


apic_setup_irq_table() will use this clause:
        } else if (intr_flagp != NULL) {

I did not see where apic_irq_table[irqno]->airq_mps_intr_index
is set to ACPI_INDEX?  Is this only for the SCI interrupt?


Otherwise apic_setup_irq_table() calls:
        } else if ((vector = apic_allocate_vector(ipl, irqno, 0)) == 0) {
                if ((newirq = apic_share_vector(irqno, intr_flagp, 
intr_index,
                    ipl, ioapicindex, ipin, &irqptr)) != -1) {

It looks like apic_allocate_vector() will only allocate free vectors?

apic_share_vector() will check the airq_rdt_entry's match in
these bits 0xFF00.  This verifies the interrupts are both LEVEL
or both EDGE.

As far as I can tell the interface we use to allocate the interrupt
will not share a LEVEL and EDGE interrupt.  If this is true we can
use an edge-triggered interrupt knowing Solaris will not share the irq.
Is this true?

Thank you!
Bill

> Dana
>
> _______________________________________________
> tesla-dev mailing list
> tesla-dev at opensolaris.org
> http://mail.opensolaris.org/mailman/listinfo/tesla-dev
>   


Reply via email to