Port-arm archive

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

Regarding "fast" path for IRQ handling out of the idle loop



Hi,

I would like to discuss a point related to "fast" path for IRQ handling out of
the idle loop for armv7.

This facility was added for arm as part of the following checkin:

           http://mail-index.netbsd.org/source-changes/2012/10/21/msg038109.html

          "Implement a "fast" path for IRQ handling out of the idle
loop.  Since we
           are in SVC32 already we only need to save a few registers.
Processing is
           also simplified since we know we can't return to user-mode."

Normally, arm uses irq_entry() to process interrupts. But as part of the above
checkin, if arm is in idle loop, it uses irq_idle_entry. The motivation was as
explained as above.

The point I want to discuss is related to what happens if during irq_idle_entry
processing, a soft interrupt is posted. This may happen, for example, if clock
interrupt posts a soft clock interrupt.

It appears, in that case, the soft interrupt would not be processed as part of
irq_idle_entry processing. This is in contrast to irq_entry(), which processes
any pending soft interrupts towards the end of its processing. Hence it appears
irq_idle_entry may unnecessarily delay processing of soft interrupts.

Thanks and regards,
Ramakrishna DTV


Home | Main Index | Thread Index | Old Index