Messages in this thread | | | From | Mark Gross <> | Subject | queue_work from interrupt Real time preemption2.6.11-rc2-RT-V0.7.37-03 | Date | Mon, 14 Feb 2005 12:40:14 -0800 |
| |
I'm working on a tweak to the preepmtive soft IRQ implementation using work queues and I'm having problems with a BUG assert when trying to queue_work.
Souldn't I be able to call queue_work form ISR context?
--mgross
--------------------------- | preempt count: 00000001 ] | 1-level deep critical section nesting: ---------------------------------------- .. [<c0140f5d>] .... print_traces+0x1d/0x60 .....[<c01042a3>] .. ( <= dump_stack+0x23/0x30)
BUG: sleeping function called from invalid context IRQ 20(2039) at kernel/rt.c in_atomic():0 [00000000], irqs_disabled():1 [<c01042a3>] dump_stack+0x23/0x30 (20) [<c011f315>] __might_sleep+0xe5/0x100 (36) [<c013cd19>] __spin_lock+0x39/0x60 (24) [<c013cded>] _spin_lock_irqsave+0x1d/0x30 (16) [<c0134b32>] __queue_work+0x22/0x70 (28) [<c0134bd8>] queue_work+0x58/0xa0 (32) [<c01287cd>] __raise_softirq+0x2d/0x50 (12) [<f898b944>] e100_intr+0x124/0x170 [e100] (36) [<c0147ab9>] handle_IRQ_event+0x69/0xf0 (52) [<c0148365>] do_hardirq+0xa5/0x110 (40) [<c01484f1>] do_irqd+0x121/0x1f0 (48) [<c013990b>] kthread+0xbb/0xc0 (48) [<c01013f9>] kernel_thread_helper+0x5/0xc (154181652) ---------------------------
| preempt count: 00010001 ] | 1-level deep critical section nesting: ---------------------------------------- .. [<c0140f5d>] .... print_traces+0x1d/0x60 .....[<c01042a3>] .. ( <= dump_stack+0x23/0x30)
BUG: sleeping function called from invalid context swapper(0) at kernel/rt.c:1 in_atomic():1 [00010000], irqs_disabled():1 [<c01042a3>] dump_stack+0x23/0x30 (20) [<c011f315>] __might_sleep+0xe5/0x100 (36) [<c013cd19>] __spin_lock+0x39/0x60 (24) [<c013cded>] _spin_lock_irqsave+0x1d/0x30 (16) [<c0134b32>] __queue_work+0x22/0x70 (28) [<c0134bd8>] queue_work+0x58/0xa0 (32) [<c0128aee>] raise_softirq+0x3e/0xb0 (20) [<c012d395>] update_process_times+0x45/0x110 (32) [<c01153ba>] smp_apic_timer_interrupt+0xea/0xf0 (36) [<c0103e18>] apic_timer_interrupt+0x1c/0x24 (60) [<c0101163>] cpu_idle+0x83/0x90 (24) [<c0404a8d>] start_kernel+0x19d/0x1e0 (32) [<c010020e>] 0xc010020e (1077727247) ---------------------------
- 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/
| |