[lkml]   [2005]   [Feb]   [16]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    SubjectRe: queue_work from interrupt Real time preemption2.6.11-rc2-RT-V0.7.37-03

    * Mark Gross <> wrote:

    > I'm attempting to change the softIRQ preemption implementation to use
    > work queues (one per softIRQ), that allow for runtime priority changes
    > on a per-soft IRQ bases. To do this I was trying to have
    > raise_softirq call queu_work directly. queue_work, doesn't use the
    > *_nort() api's.
    > My alternitive is to put the call to queue_work into do_softIRQ.
    > Which seems to work, but feels like a bit too much indirection to
    > queue up the soft IRQ bottom half processing.

    correct, that may be too much of an indirection.

    we cannot turn queue_work()'s spinlocks into raw spinlocks, because that
    would necessiate waitqueue locks to be raw spinlocks too, which would be
    generally bad. Check out how entangled the cwq->work_done and
    cwq->more_work waitqueues are with cwq->lock.

    also, i'm not sure about how correctly this maps to the upstream softirq
    semantics. Right now softirqs are processed by a single context (per
    CPU), and each softirq type is processed serially. Softirqs are
    preemptable, but they dont preempt each other. Maybe the networking
    stack would break if we allowed the TIMER softirq (thread) to preempt
    the NET softirq (threads) (and vice versa)?

    but, prioritizing individual softirqs (within the PREEMPT_RT framework)
    is something that needs to be thought about - e.g. Mark H. Johnson
    reported various PREEMPT_RT (and softirq threading) SMP artifacts that
    seem to be related to the current 'all softirqs are processed by a
    single thread' approach. (check Mark's postings for 'ping' latency

    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to
    More majordomo info at
    Please read the FAQ at

     \ /
      Last update: 2005-03-22 14:10    [W:0.021 / U:5.568 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site