RE: DSPBRIDGE+BRIDGE_DVFS: Crashes on multiple reload
> -Original Message- > From: Woodruff, Richard > Sent: Wednesday, March 11, 2009 6:40 PM > To: Menon, Nishanth; linux-omap@vger.kernel.org > Cc: ext Paul Walmsley; Nayak, Rajendra; Gupta, Ramesh > Subject: RE: DSPBRIDGE+BRIDGE_DVFS: Crashes on multiple reload > > > It does not make sense for clock notifier_registration to oops out.. it > has'nt > > come out of init even.. > > > > This looks like list_del missing in clock_notifier unregistration > function :(. > > I have a patch in place.. sending in a few mins > > Yes. Side issue I pointed out will come up later. If notifier doesn't > work there might be a few bugs its useable. Would this appear as the following crash (after 14-18 iterations now with my clk_notifer_unregister patch): Unable to handle kernel paging request at virtual address 80200800 pgd = c3eb8000 *pgd=[80200800] Internal error: Oops: 5 [#1] Modules linked in:Modules linked in: [last unloaded: bridgedriver] [last unloaded: bridgedriver] CPU: 0Not tainted (2.6.28-omap1-00211-gcb75442-dirty #6) PC is at vmap_page_range+0xe4/0x1c4 LR is at vmap_page_range+0x160/0x1c4 pc : []lr : []psr: 8013 Backtrace: Backtrace: [] [] (vmap_page_range+0x0/0x1c4) (vmap_page_range+0x0/0x1c4) from [] from [] (map_vm_area+0x28/0x40) (map_vm_area+0x28/0x40) [] [] (map_vm_area+0x0/0x40) (map_vm_area+0x0/0x40) from [] from [] (__vmalloc_area_node+0x104/0x130) (__vmalloc_area_node+0x104/0x130) r5:c39e1460 r5:c39e1460 r4:03a8 r4:03a8 [] [] (__vmalloc_area_node+0x0/0x130) (__vmalloc_area_node+0x0/0x130) from [] from [] (__vmalloc_node+0x90/0xa8) (__vmalloc_node+0x90/0xa8) [] [] (__vmalloc_node+0x0/0xa8) (__vmalloc_node+0x0/0xa8) from [] from [] (vmalloc+0x28/0x34) (vmalloc+0x28/0x34) r7: r7: r6:4023a000 r6:4023a000 r5:003a75f0 r5:003a75f0 r4:4023a000 r4:4023a000 [] [] (vmalloc+0x0/0x34) (vmalloc+0x0/0x34) from [] from [] (load_module+0x34/0x1468) (load_module+0x34/0x1468) [] [] (load_module+0x0/0x1468) (load_module+0x0/0x1468) from [] from [] (sys_init_module+0x54/0x188) (sys_init_module+0x54/0x188) [] [] (sys_init_module+0x0/0x188) (sys_init_module+0x0/0x188) from [] from [] (ret_fast_syscall+0x0/0x2c) (ret_fast_syscall+0x0/0x2c) r7:0080 r7:0080 r6: r6: r5:000b r5:000b r4: r4: Code: Code: 0a24 0a24 e51b1030 e51b1030 e51b303c e51b303c e0836101 e0836101 (e5952000) (e5952000) Regards, Nishanth Menon -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
RE: DSPBRIDGE+BRIDGE_DVFS: Crashes on multiple reload
> From: Menon, Nishanth > Sent: Wednesday, March 11, 2009 11:33 AM > > Does it need DVFS enabled to fail? Is voltage high enough (to current DM)? > > There were some issues there. > Yes, Rajendra's VDD change is merged in [1] pm branch. Ok. > It does not make sense for clock notifier_registration to oops out.. it has'nt > come out of init even.. > > This looks like list_del missing in clock_notifier unregistration function :(. > I have a patch in place.. sending in a few mins Yes. Side issue I pointed out will come up later. If notifier doesn't work there might be a few bugs its useable. Regards, Richard W. -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
RE: DSPBRIDGE+BRIDGE_DVFS: Crashes on multiple reload
Richard, > -Original Message- > From: Woodruff, Richard > Sent: Wednesday, March 11, 2009 5:28 PM > To: Menon, Nishanth; linux-omap@vger.kernel.org > Cc: ext Paul Walmsley; Nayak, Rajendra; Gupta, Ramesh > Subject: RE: DSPBRIDGE+BRIDGE_DVFS: Crashes on multiple reload > > > > driver as explained below. Looking for any advice to fix this issue :( > > Does it need DVFS enabled to fail? Is voltage high enough (to current DM)? > There were some issues there. Yes, Rajendra's VDD change is merged in [1] pm branch. > > A side and possibly related note is the below 0x800 is way too high and > will likely result in screen or other fifo related effects. The delay > target should be around 5uS (for 26Mhz sysclk) and half of that for 13MHz > sysclk. > > Given a value of 0xC8 with ARM at 125MHz, a vdd2-opp2 -> vdd2-opp3 takes > 105uS using current code. This it self is too high for some display > fifos. 0x800 is out of the park high. > > End note is needs tuning for DVFS. > > configure_core_dpll: > ldr r4, omap3_cm_clksel1_pll > ldr r5, [r4] > ldr r6, core_m2_mask_val@ modify m2 for core dpll > and r5, r5, r6 > orr r5, r5, r3, lsl #0x1B @ r3 contains the M2 val > str r5, [r4] > mov r5, #0x800 @ wait for the clock to stabilise > cmp r3, #2 > bne wait_clk_stable > bx lr It does not make sense for clock notifier_registration to oops out.. it has'nt come out of init even.. This looks like list_del missing in clock_notifier unregistration function :(. I have a patch in place.. sending in a few mins Regards, Nishanth Menon [1] http://git.kernel.org/?p=linux/kernel/git/tmlind/linux-omap-2.6.git;a=shortlog;h=pm -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
RE: DSPBRIDGE+BRIDGE_DVFS: Crashes on multiple reload
Rajendra, > -Original Message- > From: Nayak, Rajendra > Sent: Wednesday, March 11, 2009 9:25 PM > To: Menon, Nishanth; linux-omap@vger.kernel.org > Cc: ext Paul Walmsley; Gupta, Ramesh > Subject: RE: DSPBRIDGE+BRIDGE_DVFS: Crashes on multiple reload > > Does the bridge driver call a clk_notifier_unregister on the > exit path? Yes, it is called. > > > CPU: 0Not tainted (2.6.28-omap1-00211-gcb75442 #1) > > PC is at clk_notifier_register+0x68/0x108 LR is at > > kmem_cache_alloc+0x7c/0x84 > > Taking an objdump of clock.o shows me it probably is crashing > some place while trying to traverse through the existing list > of registered notifiers. It could very well be that one of > these is an old function pointer registered by the previous > insmod of the bridge driver. > > > -Original Message- > > From: Menon, Nishanth > > Sent: Wednesday, March 11, 2009 8:21 PM > > To: linux-omap@vger.kernel.org > > Cc: ext Paul Walmsley; Nayak, Rajendra; Gupta, Ramesh > > Subject: DSPBRIDGE+BRIDGE_DVFS: Crashes on multiple reload > > > > Hi Folks, > > > > With the latest linux-omap pm + gitorious bridge changes on > SDP3430, > > enabling BRIDGE_DVFS and SRF seems to cause an issue with clock > > notifier.. I am not entirely of the cause of the issue(don't have a > > debugger handy at the moment :( ): The condition is reproducible on > > exactly the third insmod of the driver as explained below. > Looking for > > any advice to fix this issue :( > > > > > > Codebase: > > git clone > > git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-oma > > p-2.6.git > > git checkout -b pm --track origin/pm > > git fetch git://gitorious.org/lk/mainline.git > > tidspbridge-pm:tidspbridge-pm > > git checkout tidspbridge-pm > > git merge pm > > > > defconfig: > > essentially omap_3430sdp_defconfig, enable SRF and > > bridge+bridge_dvfs. (diff b/w defconfig and .config attached). > > > > Bootargs: > > console=ttyS0,115200n8 noinitrd ip=dhcp root=/dev/nfs rw > > nfsroot=:,nolock,wsize=1024,rsize=1024 mem=64M > > > > The error: > > insmod ./bridgedriver.ko phys_mempool_base=0x8700 > > phys_mempool_size=0x60 rmmod bridgedriver insmod > > ./bridgedriver.ko phys_mempool_base=0x8700 > > phys_mempool_size=0x60 rmmod bridgedriver insmod > > ./bridgedriver.ko phys_mempool_base=0x8700 > > phys_mempool_size=0x60 > > > > Unable to handle kernel paging request at virtual address > 756e696c pgd > > = c3e0c000 *pgd=[756e696c] > > > > Internal error: Oops: 5 [#1] > > Modules linked in:Modules linked in: bridgedriver(+) > > bridgedriver(+) [last unloaded: bridgedriver] [last unloaded: > > bridgedriver] > > > > CPU: 0Not tainted (2.6.28-omap1-00211-gcb75442 #1) > > PC is at clk_notifier_register+0x68/0x108 LR is at > > kmem_cache_alloc+0x7c/0x84 > > pc : []lr : []psr: 0093 > > sp : c3e05da0 ip : c3e0b3e0 fp : c3e05dbc > > > > Backtrace: Backtrace: > > > > [] [] (clk_notifier_register+0x0/0x108) > > (clk_notifier_register+0x0/0x108) from [] from > [] > > (bridge_init+0x394/0x3ec [bridgedriver]) (bridge_init+0x394/0x3ec > > [bridgedriver]) r7: r7: r6:bf08ab88 r6:bf08ab88 > > r5:1dcd6500 r5:1dcd6500 r4:0ee6b280 r4:0ee6b280 > > > > [] [] (bridge_init+0x0/0x3ec > > [bridgedriver]) (bridge_init+0x0/0x3ec [bridgedriver]) from > > [] from [] (do_one_initcall+0x64/0x198) > > (do_one_initcall+0x64/0x198) > > r8:c002df28 r8:c002df28 r7: r7: r6:4023a000 > > r6:4023a000 r5:bf08a520 r5:bf08a520 r4:c03aa340 r4:c03aa340 > > > > [] [] (do_one_initcall+0x0/0x198) > > (do_one_initcall+0x0/0x198) from [] from [] > > (sys_init_module+0x98/0x188) > > (sys_init_module+0x98/0x188) > > [] [] (sys_init_module+0x0/0x188) > > (sys_init_module+0x0/0x188) from [] from [] > > (ret_fast_syscall+0x0/0x2c) > > (ret_fast_syscall+0x0/0x2c) > > r7:0080 r7:0080 r6: r6: r5:000b > > r5:000b r4: r4: > > > > Code: Code: e5943000 e5943000 e1530006 e1530006 0a05 > > 0a05 e2424008 e2424008 (e5942008) (e5942008) > > > > <4>---[ end trace c53b9e94a29571d4 ]--- ---[ end trace > > c53b9e94a29571d4 ]--- Segmentation fault > > > > > > Regards, > > Nishanth Menon > > Regards Ramesh Gupta G-- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
RE: DSPBRIDGE+BRIDGE_DVFS: Crashes on multiple reload
Does the bridge driver call a clk_notifier_unregister on the exit path? > CPU: 0Not tainted (2.6.28-omap1-00211-gcb75442 #1) > PC is at clk_notifier_register+0x68/0x108 > LR is at kmem_cache_alloc+0x7c/0x84 Taking an objdump of clock.o shows me it probably is crashing some place while trying to traverse through the existing list of registered notifiers. It could very well be that one of these is an old function pointer registered by the previous insmod of the bridge driver. > -Original Message- > From: Menon, Nishanth > Sent: Wednesday, March 11, 2009 8:21 PM > To: linux-omap@vger.kernel.org > Cc: ext Paul Walmsley; Nayak, Rajendra; Gupta, Ramesh > Subject: DSPBRIDGE+BRIDGE_DVFS: Crashes on multiple reload > > Hi Folks, > > With the latest linux-omap pm + gitorious bridge changes on > SDP3430, enabling BRIDGE_DVFS and SRF seems to cause an issue > with clock notifier.. I am not entirely of the cause of the > issue(don't have a debugger handy at the moment :( ): The > condition is reproducible on exactly the third insmod of the > driver as explained below. Looking for any advice to fix this issue :( > > > Codebase: > git clone > git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-oma > p-2.6.git > git checkout -b pm --track origin/pm > git fetch git://gitorious.org/lk/mainline.git > tidspbridge-pm:tidspbridge-pm > git checkout tidspbridge-pm > git merge pm > > defconfig: > essentially omap_3430sdp_defconfig, enable SRF and > bridge+bridge_dvfs. (diff b/w defconfig and .config attached). > > Bootargs: > console=ttyS0,115200n8 noinitrd ip=dhcp root=/dev/nfs rw > nfsroot=:,nolock,wsize=1024,rsize=1024 mem=64M > > The error: > insmod ./bridgedriver.ko phys_mempool_base=0x8700 > phys_mempool_size=0x60 > rmmod bridgedriver > insmod ./bridgedriver.ko phys_mempool_base=0x8700 > phys_mempool_size=0x60 > rmmod bridgedriver > insmod ./bridgedriver.ko phys_mempool_base=0x8700 > phys_mempool_size=0x60 > > Unable to handle kernel paging request at virtual address 756e696c > pgd = c3e0c000 > *pgd=[756e696c] > > Internal error: Oops: 5 [#1] > Modules linked in:Modules linked in: bridgedriver(+) > bridgedriver(+) [last unloaded: bridgedriver] [last unloaded: > bridgedriver] > > CPU: 0Not tainted (2.6.28-omap1-00211-gcb75442 #1) > PC is at clk_notifier_register+0x68/0x108 > LR is at kmem_cache_alloc+0x7c/0x84 > pc : []lr : []psr: 0093 > sp : c3e05da0 ip : c3e0b3e0 fp : c3e05dbc > > > Backtrace: Backtrace: > > [] [] (clk_notifier_register+0x0/0x108) > (clk_notifier_register+0x0/0x108) from [] from > [] (bridge_init+0x394/0x3ec [bridgedriver]) > (bridge_init+0x394/0x3ec [bridgedriver]) > r7: r7: r6:bf08ab88 r6:bf08ab88 r5:1dcd6500 > r5:1dcd6500 r4:0ee6b280 r4:0ee6b280 > > [] [] (bridge_init+0x0/0x3ec > [bridgedriver]) (bridge_init+0x0/0x3ec [bridgedriver]) from > [] from [] (do_one_initcall+0x64/0x198) > (do_one_initcall+0x64/0x198) > r8:c002df28 r8:c002df28 r7: r7: r6:4023a000 > r6:4023a000 r5:bf08a520 r5:bf08a520 r4:c03aa340 r4:c03aa340 > > [] [] (do_one_initcall+0x0/0x198) > (do_one_initcall+0x0/0x198) from [] from > [] (sys_init_module+0x98/0x188) > (sys_init_module+0x98/0x188) > [] [] (sys_init_module+0x0/0x188) > (sys_init_module+0x0/0x188) from [] from > [] (ret_fast_syscall+0x0/0x2c) > (ret_fast_syscall+0x0/0x2c) > r7:0080 r7:0080 r6: r6: r5:000b > r5:000b r4: r4: > > Code: Code: e5943000 e5943000 e1530006 e1530006 0a05 > 0a05 e2424008 e2424008 (e5942008) (e5942008) > > <4>---[ end trace c53b9e94a29571d4 ]--- > ---[ end trace c53b9e94a29571d4 ]--- > Segmentation fault > > > Regards, > Nishanth Menon > -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
RE: DSPBRIDGE+BRIDGE_DVFS: Crashes on multiple reload
> From: linux-omap-ow...@vger.kernel.org [mailto:linux-omap- > ow...@vger.kernel.org] On Behalf Of Menon, Nishanth > Sent: Wednesday, March 11, 2009 9:51 AM > With the latest linux-omap pm + gitorious bridge changes on SDP3430, enabling > BRIDGE_DVFS and SRF seems to cause an issue with clock notifier.. I am not > entirely of the cause of the issue(don't have a debugger handy at the > moment :( ): The condition is reproducible on exactly the third insmod of the > driver as explained below. Looking for any advice to fix this issue :( Does it need DVFS enabled to fail? Is voltage high enough (to current DM)? There were some issues there. Regards, Richard W. A side and possibly related note is the below 0x800 is way too high and will likely result in screen or other fifo related effects. The delay target should be around 5uS (for 26Mhz sysclk) and half of that for 13MHz sysclk. Given a value of 0xC8 with ARM at 125MHz, a vdd2-opp2 -> vdd2-opp3 takes 105uS using current code. This it self is too high for some display fifos. 0x800 is out of the park high. End note is needs tuning for DVFS. configure_core_dpll: ldr r4, omap3_cm_clksel1_pll ldr r5, [r4] ldr r6, core_m2_mask_val@ modify m2 for core dpll and r5, r5, r6 orr r5, r5, r3, lsl #0x1B @ r3 contains the M2 val str r5, [r4] mov r5, #0x800 @ wait for the clock to stabilise cmp r3, #2 bne wait_clk_stable bx lr -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
DSPBRIDGE+BRIDGE_DVFS: Crashes on multiple reload
Hi Folks, With the latest linux-omap pm + gitorious bridge changes on SDP3430, enabling BRIDGE_DVFS and SRF seems to cause an issue with clock notifier.. I am not entirely of the cause of the issue(don't have a debugger handy at the moment :( ): The condition is reproducible on exactly the third insmod of the driver as explained below. Looking for any advice to fix this issue :( Codebase: git clone git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap-2.6.git git checkout -b pm --track origin/pm git fetch git://gitorious.org/lk/mainline.git tidspbridge-pm:tidspbridge-pm git checkout tidspbridge-pm git merge pm defconfig: essentially omap_3430sdp_defconfig, enable SRF and bridge+bridge_dvfs. (diff b/w defconfig and .config attached). Bootargs: console=ttyS0,115200n8 noinitrd ip=dhcp root=/dev/nfs rw nfsroot=:,nolock,wsize=1024,rsize=1024 mem=64M The error: insmod ./bridgedriver.ko phys_mempool_base=0x8700 phys_mempool_size=0x60 rmmod bridgedriver insmod ./bridgedriver.ko phys_mempool_base=0x8700 phys_mempool_size=0x60 rmmod bridgedriver insmod ./bridgedriver.ko phys_mempool_base=0x8700 phys_mempool_size=0x60 Unable to handle kernel paging request at virtual address 756e696c pgd = c3e0c000 *pgd=[756e696c] Internal error: Oops: 5 [#1] Modules linked in:Modules linked in: bridgedriver(+) bridgedriver(+) [last unloaded: bridgedriver] [last unloaded: bridgedriver] CPU: 0Not tainted (2.6.28-omap1-00211-gcb75442 #1) PC is at clk_notifier_register+0x68/0x108 LR is at kmem_cache_alloc+0x7c/0x84 pc : []lr : []psr: 0093 sp : c3e05da0 ip : c3e0b3e0 fp : c3e05dbc Backtrace: Backtrace: [] [] (clk_notifier_register+0x0/0x108) (clk_notifier_register+0x0/0x108) from [] from [] (bridge_init+0x394/0x3ec [bridgedriver]) (bridge_init+0x394/0x3ec [bridgedriver]) r7: r7: r6:bf08ab88 r6:bf08ab88 r5:1dcd6500 r5:1dcd6500 r4:0ee6b280 r4:0ee6b280 [] [] (bridge_init+0x0/0x3ec [bridgedriver]) (bridge_init+0x0/0x3ec [bridgedriver]) from [] from [] (do_one_initcall+0x64/0x198) (do_one_initcall+0x64/0x198) r8:c002df28 r8:c002df28 r7: r7: r6:4023a000 r6:4023a000 r5:bf08a520 r5:bf08a520 r4:c03aa340 r4:c03aa340 [] [] (do_one_initcall+0x0/0x198) (do_one_initcall+0x0/0x198) from [] from [] (sys_init_module+0x98/0x188) (sys_init_module+0x98/0x188) [] [] (sys_init_module+0x0/0x188) (sys_init_module+0x0/0x188) from [] from [] (ret_fast_syscall+0x0/0x2c) (ret_fast_syscall+0x0/0x2c) r7:0080 r7:0080 r6: r6: r5:000b r5:000b r4: r4: Code: Code: e5943000 e5943000 e1530006 e1530006 0a05 0a05 e2424008 e2424008 (e5942008) (e5942008) <4>---[ end trace c53b9e94a29571d4 ]--- ---[ end trace c53b9e94a29571d4 ]--- Segmentation fault Regards, Nishanth Menon sdp3430.defconfig.diff Description: sdp3430.defconfig.diff