[pvrusb2] Random hang during 'modprobe -r pvrusb2'

devsk funtoos at yahoo.com
Fri Sep 3 16:32:40 CDT 2010


Hey Mike,

Did you make in headway into reproducing this yet?

Thanks,
-devsk





________________________________
From: Mike Isely <isely at isely.net>
To: Communications nexus for pvrusb2 driver <pvrusb2 at isely.net>
Sent: Mon, July 26, 2010 9:06:48 PM
Subject: Re: [pvrusb2] Random hang during 'modprobe -r pvrusb2'

On Sat, 24 Jul 2010, devsk wrote:

> Mike,
> 
> It got stuck again today. This is with 2.6.34.1. Let me know what information 
>to 
>
> collect if I hit it again.
> 
> -devsk

devsk:

Given what you've described I think I might be able to trap it here.  
Honestly I haven't seen this sort of problem since the round of bug 
fixes last Spring, but I haven't really beat on it enough either.  So 
let's see if I can cause this sort of hang.

  -Mike



> 
> 
> 
> 
> ________________________________
> From: devsk <funtoos at yahoo.com>
> To: Communications nexus for pvrusb2 driver <pvrusb2 at isely.net>
> Sent: Sat, July 24, 2010 11:08:40 AM
> Subject: Re: [pvrusb2] Random hang during 'modprobe -r pvrusb2'
> 
> Mike,
> 
> Unfortunately, I had to reboot the system. I did take the task dump with 'echo 
>t 
>
> 
> > sysrq-trigger'. Do you want the whole of it or just pvrusb2 related? Let's 
> start with all pvrusb2 tasks, I can paste the whole thing if needed.
> 
> And yes, its hard to reproduce but once it happens, the only option is to 
>reboot 
>
> 
> the box. The device becomes unusable when this happens. Unplugging doesn't 
>help.
> 
> The only process which accesses this device continuously is mythbackend. It was 
>
> down when this happened.
> 
> It has happened in kernels earlier than 2.6.34 as well. Its just that I was 
> thinking recent fixes for races would have gotten rid of it but apparently 
>there 
>
> 
> is still a race lurking in there. Its definitely taken a long time (many 
>months) 
>
> 
> to make a comeback. But then, I hardly ever remove the module manually.
> 
> Thanks,
> -devsk
> 
> Jul 22 23:33:35 localhost kernel: [72916.826000] pvrusb2-conte S 
> 0000000101e5dec7     0  7391      2 0x00000000
> Jul 22 23:33:35 localhost kernel: [72916.826000]  ffff88035f49b4e0 
> 0000000000000046 ffff88035e6be090 ffffffff8155e020
> Jul 22 23:33:35 localhost kernel: [72916.826000]  ffff880300000000 
> 0000000000012000 0000000000012000 ffff8802167cbfd8
> Jul 22 23:33:35 localhost kernel: [72916.826000]  ffff88035f49b4e0 
> ffff8802167cbfd8 0000000000000000 0000000100000282
> Jul 22 23:33:35 localhost kernel: [72916.826000] Call Trace:
> Jul 22 23:33:35 localhost kernel: [72916.826000]  [<ffffffffa0b842e3>] ? 
> pvr2_context_thread_func+0x1cd/0x31a [pvrusb2]
> Jul 22 23:33:35 localhost kernel: [72916.826000]  [<ffffffff81045cd7>] ? 
> autoremove_wake_function+0x0/0x2a
> Jul 22 23:33:35 localhost kernel: [72916.826000]  [<ffffffffa0b84116>] ? 
> pvr2_context_thread_func+0x0/0x31a [pvrusb2]
> Jul 22 23:33:35 localhost kernel: [72916.826000]  [<ffffffff8104591d>] ? 
> kthread+0x75/0x7d
> Jul 22 23:33:35 localhost kernel: [72916.826000]  [<ffffffff81002c54>] ? 
> kernel_thread_helper+0x4/0x10
> Jul 22 23:33:35 localhost kernel: [72916.826000]  [<ffffffff810458a8>] ? 
> kthread+0x0/0x7d
> Jul 22 23:33:35 localhost kernel: [72916.826000]  [<ffffffff81002c50>] ? 
> kernel_thread_helper+0x0/0x10
> Jul 22 23:33:35 localhost kernel: [72916.826000] pvrusb2_a     S 
> ffff88035f49af00     0  7392      2 0x00000000
> Jul 22 23:33:35 localhost kernel: [72916.826000]  ffff88035f49af00 
> 0000000000000046 ffffffffa0b7d21d ffff88035f49b4e0
> Jul 22 23:33:35 localhost kernel: [72916.826000]  ffff88035e6be090 
> 0000000000012000 0000000000012000 ffff880215989fd8
> Jul 22 23:33:35 localhost kernel: [72916.826000]  ffff88035f49af00 
> ffff880215989fd8 0000000000000282 ffffffff813bce26
> Jul 22 23:33:35 localhost kernel: [72916.826000] Call Trace:
> Jul 22 23:33:35 localhost kernel: [72916.826000]  [<ffffffffa0b7d21d>] ? 
> pvr2_hdw_worker_poll+0x0/0x359 [pvrusb2]
> Jul 22 23:33:35 localhost kernel: [72916.826000]  [<ffffffff813bce26>] ? 
> mutex_lock+0xd/0x32
> Jul 22 23:33:35 localhost kernel: [72916.826000]  [<ffffffffa0b7d21d>] ? 
> pvr2_hdw_worker_poll+0x0/0x359 [pvrusb2]
> Jul 22 23:33:35 localhost kernel: [72916.826000]  [<ffffffff810427a1>] ? 
> worker_thread+0xc3/0x1c2
> Jul 22 23:33:35 localhost kernel: [72916.826000]  [<ffffffff81045cd7>] ? 
> autoremove_wake_function+0x0/0x2a
> Jul 22 23:33:35 localhost kernel: [72916.826000]  [<ffffffff810426de>] ? 
> worker_thread+0x0/0x1c2
> Jul 22 23:33:35 localhost kernel: [72916.826000]  [<ffffffff8104591d>] ? 
> kthread+0x75/0x7d
> Jul 22 23:33:35 localhost kernel: [72916.826000]  [<ffffffff81002c54>] ? 
> kernel_thread_helper+0x4/0x10
> Jul 22 23:33:35 localhost kernel: [72916.826000]  [<ffffffff810458a8>] ? 
> kthread+0x0/0x7d
> Jul 22 23:33:35 localhost kernel: [72916.826000]  [<ffffffff81002c50>] ? 
> kernel_thread_helper+0x0/0x10
> Jul 22 23:33:35 localhost kernel: [72916.826000] modprobe      D 
> 0000000101e5deef     0 23597   3845 0x00000004
> Jul 22 23:33:35 localhost kernel: [72916.826000]  ffff88035dcc5820 
> 0000000000000082 0000000000000004 ffff88035fc6d820
> Jul 22 23:33:35 localhost kernel: [72916.826000]  0000000000000000 
> 0000000000012000 0000000000012000 ffff880215451fd8
> Jul 22 23:33:35 localhost kernel: [72916.826000]  ffff88035dcc5820 
> ffff880215451fd8 ffff880215451e54 0000000100000000
> Jul 22 23:33:35 localhost kernel: [72916.826000] Call Trace:
> Jul 22 23:33:35 localhost kernel: [72916.826000]  [<ffffffff813bc85c>] ? 
> schedule_timeout+0x1d/0xb2
> Jul 22 23:33:35 localhost kernel: [72916.826000]  [<ffffffff8102bdd0>] ? 
> enqueue_task_fair+0x160/0x174
> Jul 22 23:33:35 localhost kernel: [72916.826000]  [<ffffffff813bc6f6>] ? 
> wait_for_common+0xca/0x140
> Jul 22 23:33:35 localhost kernel: [72916.826000]  [<ffffffff81030040>] ? 
> default_wake_function+0x0/0xf
> Jul 22 23:33:35 localhost kernel: [72916.826000]  [<ffffffff81030032>] ? 
> try_to_wake_up+0x213/0x221
> Jul 22 23:33:35 localhost kernel: [72916.826000]  [<ffffffff81045a43>] ? 
> kthread_stop+0x32/0x51
> Jul 22 23:33:35 localhost kernel: [72916.826000]  [<ffffffffa0b840d2>] ? 
> pvr2_context_global_done+0xb1/0xb8 [pvrusb2]
> Jul 22 23:33:35 localhost kernel: [72916.826000]  [<ffffffff81045cd7>] ? 
> autoremove_wake_function+0x0/0x2a
> Jul 22 23:33:35 localhost kernel: [72916.826000]  [<ffffffff8125f34f>] ? 
> bus_remove_driver+0x94/0xa6
> Jul 22 23:33:35 localhost kernel: [72916.826000]  [<ffffffffa0b87f2c>] ? 
> pvr_exit+0x2c/0x52 [pvrusb2]
> Jul 22 23:33:35 localhost kernel: [72916.826000]  [<ffffffff81056e39>] ? 
> sys_delete_module+0x1d0/0x243
> Jul 22 23:33:35 localhost kernel: [72916.826000]  [<ffffffff81082f30>] ? 
> do_munmap+0x2f6/0x318
> Jul 22 23:33:35 localhost kernel: [72916.826000]  [<ffffffff81082f96>] ? 
> sys_munmap+0x44/0x50
> Jul 22 23:33:35 localhost kernel: [72916.826000]  [<ffffffff81001f2b>] ? 
> system_call_fastpath+0x16/0x1b
> 
> 
> 
> 
> ________________________________
> From: Mike Isely <isely at isely.net>
> To: Communications nexus for pvrusb2 driver <pvrusb2 at isely.net>
> Sent: Fri, July 23, 2010 8:58:23 AM
> Subject: Re: [pvrusb2] Random hang during 'modprobe -r pvrusb2'
> 
> On Thu, 22 Jul 2010, devsk wrote:
> 
> > Mike,
> > 
> > This is with 2.6.34.1 and latest driver snapshot:
> > 
> > [18693.055000] pvrusb2: 20100708 (from www.isely.net):Hauppauge 
>WinTV-PVR-USB2 
>
> 
> 
> > MPEG2 Encoder/Tuner
> > 
> > I did modprobe -r pvrusb2 and it hung.
> > 
> > This is what it shows in dmesg:
> > 
> > [32118.444000] usbcore: deregistering interface driver pvrusb2
> > [32118.444000] pvrusb2: Device being rendered inoperable
> > 
> > Its still hung here. How can I collect more information for you to debug this 
>
> > issue. Its very intermittent. So, since we have it hung there, this is our 
> > chance to nail this bugger.
> 
> Getting that to always work correctly is not easy.  Lots of opportunity 
> for race conditions, and I have seen some issues with this.  There were 
> a round of bug fixes a few months ago that address race conditions on 
> removal.
> 
> Given the sporadic nature of an issue like this it's going to be hard to 
> nail down.  Some things that will help:
> 
> 1. Being able to demonstrate that the problem is affected by kernel 
> version, i.e. if it only happens under 2.6.34.1 or if you can also get 
> it to fail under an earlier kernel.  Either way the answer to that may 
> help narrow the search.
> 
> 2. Did an application have the device node open at the time?  That's a 
> big factor?
> 
> 3. If after it jams, can you unplug the device and does that unjam the 
> removal process?
> 
> Another fun race to try is to run an application which talks to the 
> driver and then unplug the device WHILE this is running.  This should 
> also work out OK.
> 
>   -Mike
> 
> 

-- 

Mike Isely
isely @ isely (dot) net
PGP: 03 54 43 4D 75 E5 CC 92 71 16 01 E2 B5 F5 C1 E8
_______________________________________________
pvrusb2 mailing list
pvrusb2 at isely.net
http://www.isely.net/cgi-bin/mailman/listinfo/pvrusb2



      


More information about the pvrusb2 mailing list