Are interrupts handled differently in newer kernels? - Mandriva

This is a discussion on Are interrupts handled differently in newer kernels? - Mandriva ; I am having a weird problem with the parallel interrupts on both 2007.1 and 2008.1 A program which worked is now not working at all. I have a program which is supposed to be timing a pulse per second into ...

+ Reply to Thread
Results 1 to 2 of 2

Thread: Are interrupts handled differently in newer kernels?

  1. Are interrupts handled differently in newer kernels?

    I am having a weird problem with the parallel interrupts on both 2007.1 and
    2008.1 A program which worked is now not working at all.

    I have a program which is supposed to be timing a pulse per second into the
    parallel port interrupt. The program sets up a routine

    irqreturn_t gps_interrupt(int irq, void *dev_id)

    to timestamp the interrupts.

    I set up the interrupt
    request_irq(gps_irq, gps_interrupt, SA_INTERRUPT, "gps", NULL);

    (IRQF_DISABLED is the equivalent flag in 2008.1 which disables all irqs
    during this one's handling of the irq)

    The interrupt registers
    7: 0 IO-APIC-edge gps

    (from /proc/interrupts) but as you can see, no interrupts occur.
    I have looked at the input line to the parallel interrupt pin with an
    oscilliscope, and there is definitely a pulse on it.

    Is there something about interrupts that has changed ( although it has
    worked in the past on this system)?

    How in the world can I figure out what is going on here?



  2. Re: Are interrupts handled differently in newer kernels?

    Unruh wrote:

    > I am having a weird problem with the parallel interrupts on both 2007.1
    > and 2008.1 A program which worked is now not working at all.
    >
    > I have a program which is supposed to be timing a pulse per second into
    > the parallel port interrupt. The program sets up a routine
    >
    > irqreturn_t gps_interrupt(int irq, void *dev_id)
    >
    > to timestamp the interrupts.
    >
    > I set up the interrupt
    > request_irq(gps_irq, gps_interrupt, SA_INTERRUPT, "gps", NULL);
    >
    > (IRQF_DISABLED is the equivalent flag in 2008.1 which disables all irqs
    > during this one's handling of the irq)
    >
    > The interrupt registers
    > 7: 0 IO-APIC-edge gps
    >
    > (from /proc/interrupts) but as you can see, no interrupts occur.
    > I have looked at the input line to the parallel interrupt pin with an
    > oscilliscope, and there is definitely a pulse on it.
    >
    > Is there something about interrupts that has changed ( although it has
    > worked in the past on this system)?
    >
    > How in the world can I figure out what is going on here?

    I think you are in conflict with the spurious interrupt, in symetric io mode
    (which you are in with normal linux os's) the parallel port is mapped to a
    different irq than in VWA mode (the bios boot mode using only the 8259).
    try this:
    register your interrupt to some unused irq (cat /proc/interrupts to see
    whats used, also take a look at lspci -vvv
    then:
    watch -n 1 'cat /proc/interrupts'
    now generate your interrupt in a tight loop via a script or something and
    see what ticks up.
    Eric


+ Reply to Thread