Re: [patch] Real-Time Preemption, -RT-2.6.12-rc6-V0.7.48-00

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

 



Hi Ingo,

I'm having some difficulty with your latest patches; more specifically
linux-2.6.12-rc6-git4-RT-V0.7.48-10 floods me with BUGs like these:

BUG: sleeping function called from invalid context ksoftirqd/1(7) at kernel/rt.c:1657
in_atomic():0 [20000000], irqs_disabled():536870912
 [<c01041c3>] dump_stack+0x23/0x30 (20)
 [<c011c981>] __might_sleep+0xe1/0x100 (36)
 [<c013dbe8>] __spin_lock+0x38/0x60 (24)
 [<c013dc2d>] _spin_lock+0x1d/0x20 (16)
 [<c02c627f>] rh_report_status+0x2f/0x110 (36)
 [<c012a754>] run_timer_softirq+0x1e4/0x3f0 (64)
 [<c0125c7f>] ___do_softirq+0x7f/0x140 (48)
 [<c0125df7>] _do_softirq+0x27/0x30 (8)
 [<c0126431>] ksoftirqd+0xb1/0x150 (28)
 [<c0137426>] kthread+0xb6/0xf0 (48)
 [<c0101149>] kernel_thread_helper+0x5/0xc (268648476)
---------------------------
| preempt count: 20000001 ]
| 1-level deep critical section nesting:
----------------------------------------
.. [<c0141bdb>] .... print_traces+0x1b/0x60
.....[<c01041c3>] ..   ( <= dump_stack+0x23/0x30)

I gather these are because of:

drivers/usb/code/hcd.c:rh_report_status

static void rh_report_status (unsigned long ptr)
{
	struct urb	*urb;
	struct usb_hcd	*hcd;
	int		length = 0;
	unsigned long	flags;

	urb = (struct urb *) ptr;
	local_irq_save (flags);
	spin_lock (&urb->lock);


	...
}

where local_irq_save() would disable pre-emption while spin_lock(); the
urb->lock is not a raw lock; can sleep.

I'm not well versed in that code; do you have a suggestion?

On another note; X seems to have trouble getting up. It consumes a full
CPU right after mode switching (afaict) without getting any progress.
I'll try and get a nice trace of X using sysrq-t.

-- 
Peter Zijlstra <[email protected]>


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux