Messages in this thread Patch in this message | | | From | Karsten Wiese <> | Subject | Re: 2.6.15-rt17 | Date | Tue, 28 Feb 2006 20:21:20 +0100 |
| |
> the tasklet code was reworked too to be PREEMPT_RT friendly: the new PI > code unearthed a fundamental livelock scenario with PREEMPT_RT, and the > fix was to rework the tasklet code to get rid of the 'retrigger > softirqs' approach.
following patch re enables tasklet_hi. needed by ALSA MIDI.
Karsten
--- /tmp/softirq.c~ 2006-02-28 20:17:03.000000000 +0100 +++ /tmp/softirq.c 2006-02-28 20:17:03.000000000 +0100 @@ -351,13 +351,13 @@ static DEFINE_PER_CPU(struct tasklet_head, tasklet_hi_vec) = { NULL }; static void inline -__tasklet_common_schedule(struct tasklet_struct *t, struct tasklet_head *head) +__tasklet_common_schedule(struct tasklet_struct *t, struct tasklet_head *head, unsigned int nr) { if (tasklet_trylock(t)) { WARN_ON(t->next != NULL); t->next = head->list; head->list = t; - raise_softirq_irqoff(TASKLET_SOFTIRQ); + raise_softirq_irqoff(nr); tasklet_unlock(t); } } @@ -367,7 +367,7 @@ unsigned long flags; raw_local_irq_save(flags); - __tasklet_common_schedule(t, &__get_cpu_var(tasklet_vec)); + __tasklet_common_schedule(t, &__get_cpu_var(tasklet_vec), TASKLET_SOFTIRQ); raw_local_irq_restore(flags); } @@ -378,7 +378,7 @@ unsigned long flags; raw_local_irq_save(flags); - __tasklet_common_schedule(t, &__get_cpu_var(tasklet_hi_vec)); + __tasklet_common_schedule(t, &__get_cpu_var(tasklet_hi_vec), HI_SOFTIRQ); raw_local_irq_restore(flags); } _
___________________________________________________________ Telefonate ohne weitere Kosten vom PC zum PC: http://messenger.yahoo.de - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |