Re: [RFC PATCH 0/5 v2] Convert all tasklets to workqueues V2

From: Ed Tomlinson
Date: Sat Jun 23 2007 - 18:26:44 EST


Hi,

Applied this to 2.6.21-5 along with an older version of dyntick and cfs v18, durring boot I got:

[ 54.154077] hci_usb_isoc_rx_submit: hci0 isoc rx submit failed urb ffff81004ec55628 err -38
[ 54.154086] hci_usb_isoc_rx_submit: hci0 isoc rx submit failed urb ffff81004ec55628 err -38
[ 54.168147] BUG: at kernel/mutex.c:132 __mutex_lock_common()
[ 54.170801]
[ 54.170802] Call Trace:
[ 54.175975] [<ffffffff801790a0>] check_preempt_curr_fair+0x70/0x90
[ 54.178694] [<ffffffff8015b11f>] __mutex_lock_slowpath+0x6f/0x200
[ 54.181417] [<ffffffff8015b2c9>] mutex_lock+0x19/0x20
[ 54.184165] [<ffffffff80185c01>] flush_workqueue+0x31/0x50
[ 54.186975] [<ffffffff80190e75>] tasklet_disable+0x15/0x20
[ 54.189829] [<ffffffff8815289f>] :bluetooth:hci_cc_host_ctl+0x17f/0x240
[ 54.192767] [<ffffffff88153e4c>] :bluetooth:hci_event_packet+0x139c/0x1560
[ 54.195712] [<ffffffff88154d24>] :bluetooth:hci_send_to_sock+0x134/0x180
[ 54.198657] [<ffffffff8815073f>] :bluetooth:hci_rx_task+0x9f/0x270
[ 54.201588] [<ffffffff80190df0>] work_tasklet_exec+0x0/0x50
[ 54.204473] [<ffffffff80190e2c>] work_tasklet_exec+0x3c/0x50
[ 54.207282] [<ffffffff801488d4>] run_workqueue+0x94/0x130
[ 54.210032] [<ffffffff80145c59>] worker_thread+0x149/0x190
[ 54.212781] [<ffffffff80177430>] default_wake_function+0x0/0x10
[ 54.215539] [<ffffffff80145b10>] worker_thread+0x0/0x190
[ 54.218241] [<ffffffff801300f3>] kthread+0xd3/0x110
[ 54.220880] [<ffffffff801581c8>] child_rip+0xa/0x12
[ 54.223484] [<ffffffff80130020>] kthread+0x0/0x110
[ 54.226075] [<ffffffff801581be>] child_rip+0x0/0x12

Has this patch uncovered a problem in bluetooth or is it a problem with the patch?

TIA,
Ed Tomlinson

On Friday 22 June 2007 14:20, Steven Rostedt wrote:
> --
>
> This is version 2 of the tasklet to workqueue conversion.
>
> Changes from version 1.
>
> - removed config option and simply replace the old implementation
> with the work queue one (recommended by Ingo Molnar).
>
> - replaced clear_bit with test_and_clear_bit to avoid the race of
> executing the tasklet function twice. (thanks to Oleg Nesterov
> for pointing that out).
>
> - Removed most of the pr_debug prints. (Kept one)
> (recommended by Ingo Molnar)
>
> - Removed call to softirq_init.
>
> - Added Author credit to Dipankar Sarma for the RCU tasklet to
> softirq conversion.
>
> - Tested on my Powerbook to add another arch to the mix :-)
> Funny that booting with this change was the first time that
> the bcm43xx didn't get stuck for several seconds on bootup.
> It's also one of the few drivers that use tasklet_disable_nosync.
> So either this shows that the change fixed something, or that
> it broke something (or was just a fluke).
>
>
> -- Steve
>
> -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/
>
>
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/