I just want to say that in certain applications critical interrupts can be put to good use. There are issues you have to deal with when you use them. I wonder if any of the people saying that they "really don't think it's worth it" have ever had to meet any real time interrupt latency constraints?
Best, leb At 4:09 PM -0700 4/15/05, Shawn Jin wrote: >On 4/15/05, Eugene Surovegin <ebs at ebshome.net> wrote: >> On Fri, Apr 15, 2005 at 02:36:51PM -0700, Shawn Jin wrote: >> > >> > The home-made interrupt controller PIC supports interrupt priorities >> > and critical/non-critical interrupts. I found that the current kernel >> > doesn't support interrupt priorities. >> >> Yes, we don't have IRQ priorities on 4xx. Theoretically, they can be > > emulated in get_irq, but I really don't think it's worth it. > >Hmmm...that's one way I thought of to implement IRQ priority. Why >isn't it worth it? ppc4xx_pic gets the first irq from the least >significant bit by calling ffs(). So theoretically and maybe >practically some external interrupts will keep UART's interrupt from >being served. > >> > Is this observation true? Is >> > there any existing patch to support that? >> >> I'm not aware of such patch existence. > >By googling the Internet I found this patch for i386 architecture >http://home.t-online.de/home/Bernhard_Kuhn/rtirq/20040304/rtirq.html. >This mustn't have been caught sight of by linux mainstream. > >Anybody knows if RTAI or RTLinux supports IRQ priorities? > >> > I noticed that the implementation of ppc4xx_pic.c disables all >> > critical interrupts during initialization. To support critical >> > interrupts, is it so simple that we change the handler of critical >> > exception from CriticalInput to do_IRQ in head_44x.S? >> >> No, it's not that simple. Linux doesn't support a notion of critical >> IRQs versus normal ones. Until there is an infrastructure for this, it >> doesn't make any sense to implement 4xx support. > >What kind of infrastructure can you think of to support this? ppc440 >at least provides some interrupt processing registers (CSSR0/1) to >differentiate critical and non-critical interrupts. > >Another confusion about 440GP/GX UIC is the registers VCR (Vector >Configuration Reg) and VR (Vector Reg). They seem to be totally >useless on linux. The interrupt vector is already in the table of >irq_desc[]. Why does the controller have to generate the address? > >Thanks for the inputs. Welcome more. > >Regards, >-Shawn. >_______________________________________________ >Linuxppc-embedded mailing list >Linuxppc-embedded at ozlabs.org >https://ozlabs.org/mailman/listinfo/linuxppc-embedded
