Re: regarding do_irq

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

 



Hi Sri,

Replying to the list...

On Thu, Sep 9, 2010 at 5:08 PM, Sri Ram Vemulpali wrote:
> Hi,
> Can any one explain, when interrupt handler schedules softirq, for bottom
> half work, when is that softirq is executed. Is it immediately after
> interrupt handler context or after some time later when scheduler was
> invoked.

Softirqs are run with interrupts enabled, and run when all of the
nested irqs have completed. Task switching is suspended while
irqs/softirs are being run.

IRQA occurs
IRQA handler gets called
IRQB occurs, interrupting IRQA (assuming IRQA was setup to allow
itself to be interrupted)
IRQB schedules a softirq
IRQB exits
IRQA continues to run
IRQA exits
we're now in a situation where the IRQ depth is zero, so softirqs are run.
when all softirqs are finished, then regular scheduling of tasks resumes.

> I am trying to understand execution context of BHs. I know that tasklets
> execute at relaxed time when system deems to execute. But what about
> softirq. Since softirq's are in nature high in priority, therefore they
> should run immediately after IRQ. I am trying to understand is there any
> latency between IRQ and softirq execution scheduled by that corresponding
> IRQ. Please can anyone explain the sequence of operations how the softirq is
> recognized (that it was set) and scheduled to execute.

softirqs and tasklets are really the same thing (as far as I know).
They run with interrupts enabled, but preemption disabled.

-- 
Dave Hylands
Shuswap, BC, Canada
http://www.DaveHylands.com/

--
To unsubscribe from this list: send an email with
"unsubscribe kernelnewbies" to ecartis@xxxxxxxxxxxx
Please read the FAQ at http://kernelnewbies.org/FAQ



[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]
  Powered by Linux