-
Notifications
You must be signed in to change notification settings - Fork 113
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Need Help: VisionFive not boot up with this kernel #96
Comments
hal-feng
pushed a commit
that referenced
this issue
Jun 13, 2023
The ice driver caches next_to_clean value at the beginning of ice_clean_rx_irq() in order to remember the first buffer that has to be freed/recycled after main Rx processing loop. The end boundary is indicated by first descriptor of frame that Rx processing loop has ended its duties. Note that if mentioned loop ended in the middle of gathering multi-buffer frame, next_to_clean would be pointing to the descriptor in the middle of the frame BUT freeing/recycling stage will stop at the first descriptor. This means that next iteration of ice_clean_rx_irq() will miss the (first_desc, next_to_clean - 1) entries. When running various 9K MTU workloads, such splats were observed: [ 540.780716] BUG: kernel NULL pointer dereference, address: 0000000000000000 [ 540.787787] #PF: supervisor read access in kernel mode [ 540.793002] #PF: error_code(0x0000) - not-present page [ 540.798218] PGD 0 P4D 0 [ 540.800801] Oops: 0000 [#1] PREEMPT SMP NOPTI [ 540.805231] CPU: 18 PID: 3984 Comm: xskxceiver Tainted: G W 6.3.0-rc7+ #96 [ 540.813619] Hardware name: Intel Corporation S2600WFT/S2600WFT, BIOS SE5C620.86B.02.01.0008.031920191559 03/19/2019 [ 540.824209] RIP: 0010:ice_clean_rx_irq+0x2b6/0xf00 [ice] [ 540.829678] Code: 74 24 10 e9 aa 00 00 00 8b 55 78 41 31 57 10 41 09 c4 4d 85 ff 0f 84 83 00 00 00 49 8b 57 08 41 8b 4f 1c 65 8b 35 1a fa 4b 3f <48> 8b 02 48 c1 e8 3a 39 c6 0f 85 a2 00 00 00 f6 42 08 02 0f 85 98 [ 540.848717] RSP: 0018:ffffc9000f42fc50 EFLAGS: 00010282 [ 540.854029] RAX: 0000000000000004 RBX: 0000000000000002 RCX: 000000000000fffe [ 540.861272] RDX: 0000000000000000 RSI: 0000000000000001 RDI: 00000000ffffffff [ 540.868519] RBP: ffff88984a05ac00 R08: 0000000000000000 R09: dead000000000100 [ 540.875760] R10: ffff88983fffcd00 R11: 000000000010f2b8 R12: 0000000000000004 [ 540.883008] R13: 0000000000000003 R14: 0000000000000800 R15: ffff889847a10040 [ 540.890253] FS: 00007f6ddf7fe640(0000) GS:ffff88afdf800000(0000) knlGS:0000000000000000 [ 540.898465] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [ 540.904299] CR2: 0000000000000000 CR3: 000000010d3da001 CR4: 00000000007706e0 [ 540.911542] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 [ 540.918789] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400 [ 540.926032] PKRU: 55555554 [ 540.928790] Call Trace: [ 540.931276] <TASK> [ 540.933418] ice_napi_poll+0x4ca/0x6d0 [ice] [ 540.937804] ? __pfx_ice_napi_poll+0x10/0x10 [ice] [ 540.942716] napi_busy_loop+0xd7/0x320 [ 540.946537] xsk_recvmsg+0x143/0x170 [ 540.950178] sock_recvmsg+0x99/0xa0 [ 540.953729] __sys_recvfrom+0xa8/0x120 [ 540.957543] ? do_futex+0xbd/0x1d0 [ 540.961008] ? __x64_sys_futex+0x73/0x1d0 [ 540.965083] __x64_sys_recvfrom+0x20/0x30 [ 540.969155] do_syscall_64+0x38/0x90 [ 540.972796] entry_SYSCALL_64_after_hwframe+0x72/0xdc [ 540.977934] RIP: 0033:0x7f6de5f27934 To fix this, set cached_ntc to first_desc so that at the end, when freeing/recycling buffers, descriptors from first to ntc are not missed. Fixes: 2fba7dc ("ice: Add support for XDP multi-buffer on Rx side") Signed-off-by: Maciej Fijalkowski <[email protected]> Reviewed-by: Simon Horman <[email protected]> Tested-by: Chandan Kumar Rout <[email protected]> (A Contingent Worker at Intel) Signed-off-by: Tony Nguyen <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Jakub Kicinski <[email protected]>
orangecms
pushed a commit
to orangecms/linux-starfive
that referenced
this issue
Jun 26, 2024
[ Upstream commit be3f304 ] We must always register the DRM bridge, since zynqmp_dp_hpd_work_func calls drm_bridge_hpd_notify, which in turn expects hpd_mutex to be initialized. We do this before zynqmp_dpsub_drm_init since that calls drm_bridge_attach. This fixes the following lockdep warning: [ 19.217084] ------------[ cut here ]------------ [ 19.227530] DEBUG_LOCKS_WARN_ON(lock->magic != lock) [ 19.227768] WARNING: CPU: 0 PID: 140 at kernel/locking/mutex.c:582 __mutex_lock+0x4bc/0x550 [ 19.241696] Modules linked in: [ 19.244937] CPU: 0 PID: 140 Comm: kworker/0:4 Not tainted 6.6.20+ starfive-tech#96 [ 19.252046] Hardware name: xlnx,zynqmp (DT) [ 19.256421] Workqueue: events zynqmp_dp_hpd_work_func [ 19.261795] pstate: 60000005 (nZCv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--) [ 19.269104] pc : __mutex_lock+0x4bc/0x550 [ 19.273364] lr : __mutex_lock+0x4bc/0x550 [ 19.277592] sp : ffffffc085c5bbe0 [ 19.281066] x29: ffffffc085c5bbe0 x28: 0000000000000000 x27: ffffff88009417f8 [ 19.288624] x26: ffffff8800941788 x25: ffffff8800020008 x24: ffffffc082aa3000 [ 19.296227] x23: ffffffc080d90e3c x22: 0000000000000002 x21: 0000000000000000 [ 19.303744] x20: 0000000000000000 x19: ffffff88002f5210 x18: 0000000000000000 [ 19.311295] x17: 6c707369642e3030 x16: 3030613464662072 x15: 0720072007200720 [ 19.318922] x14: 0000000000000000 x13: 284e4f5f4e524157 x12: 0000000000000001 [ 19.326442] x11: 0001ffc085c5b940 x10: 0001ff88003f388b x9 : 0001ff88003f3888 [ 19.334003] x8 : 0001ff88003f3888 x7 : 0000000000000000 x6 : 0000000000000000 [ 19.341537] x5 : 0000000000000000 x4 : 0000000000001668 x3 : 0000000000000000 [ 19.349054] x2 : 0000000000000000 x1 : 0000000000000000 x0 : ffffff88003f3880 [ 19.356581] Call trace: [ 19.359160] __mutex_lock+0x4bc/0x550 [ 19.363032] mutex_lock_nested+0x24/0x30 [ 19.367187] drm_bridge_hpd_notify+0x2c/0x6c [ 19.371698] zynqmp_dp_hpd_work_func+0x44/0x54 [ 19.376364] process_one_work+0x3ac/0x988 [ 19.380660] worker_thread+0x398/0x694 [ 19.384736] kthread+0x1bc/0x1c0 [ 19.388241] ret_from_fork+0x10/0x20 [ 19.392031] irq event stamp: 183 [ 19.395450] hardirqs last enabled at (183): [<ffffffc0800b9278>] finish_task_switch.isra.0+0xa8/0x2d4 [ 19.405140] hardirqs last disabled at (182): [<ffffffc081ad3754>] __schedule+0x714/0xd04 [ 19.413612] softirqs last enabled at (114): [<ffffffc080133de8>] srcu_invoke_callbacks+0x158/0x23c [ 19.423128] softirqs last disabled at (110): [<ffffffc080133de8>] srcu_invoke_callbacks+0x158/0x23c [ 19.432614] ---[ end trace 0000000000000000 ]--- Fixes: eb2d64b ("drm: xlnx: zynqmp_dpsub: Report HPD through the bridge") Signed-off-by: Sean Anderson <[email protected]> Reviewed-by: Laurent Pinchart <[email protected]> Reviewed-by: Tomi Valkeinen <[email protected]> Signed-off-by: Tomi Valkeinen <[email protected]> Link: https://patchwork.freedesktop.org/patch/msgid/[email protected] (cherry picked from commit 61ba791) Signed-off-by: Maarten Lankhorst <[email protected]> Signed-off-by: Sasha Levin <[email protected]>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
I have issue where the visionfive v1 not booting up after installing this kernel. On this kernel i have patch preempt_rt patch to enable the RT on make menuconfig. i really need Preempt_rt enabled for my project on this board. Before it stuck there is some sort of error on Teraterm output. I'm a newbie on this kernel installing. need help ASAP
TeraTerm:
[ 4.089037] i2c_designware 118b0000.i2c: controller timed out
[ 4.089057] tps65086 0-005e: Failed to read revision register
[ 4.089239] tps65086: probe of 0-005e failed with error -110
[ 4.089528] i2c 0-0070: Fixing up cyclic dependency with soc:display-encoder
[ 5.129054] i2c_designware 118b0000.i2c: controller timed out
[ 5.129067] tda998x 0-0070: Error -110 writing to cec:0xff
[ 6.169034] i2c_designware 118b0000.i2c: controller timed out
[ 6.169047] tda998x 0-0070: set_page 000a err -110
[ 7.289033] i2c_designware 118b0000.i2c: controller timed out
[ 7.289045] tda998x 0-0070: set_page 000a err -110
[ 8.409050] i2c_designware 118b0000.i2c: controller timed out
[ 8.409063] tda998x 0-0070: set_page 0001 err -110
[ 9.449027] i2c_designware 118b0000.i2c: controller timed out
[ 9.449040] tda998x 0-0070: set_page 0001 err -110
[ 10.489056] i2c_designware 118b0000.i2c: controller timed out
[ 10.489068] tda998x 0-0070: set_page 0200 err -110
[ 11.529055] i2c_designware 118b0000.i2c: controller timed out
[ 11.529067] tda998x 0-0070: set_page 0201 err -110
[ 12.569055] i2c_designware 118b0000.i2c: controller timed out
[ 12.569067] tda998x 0-0070: set_page 0202 err -110
[ 13.609054] i2c_designware 118b0000.i2c: controller timed out
[ 13.609067] tda998x 0-0070: set_page 0203 err -110
[ 14.649056] i2c_designware 118b0000.i2c: controller timed out
[ 14.649067] tda998x 0-0070: set_page 0204 err -110
[ 15.689055] i2c_designware 118b0000.i2c: controller timed out
[ 15.689067] tda998x 0-0070: set_page 0205 err -110
[ 16.729055] i2c_designware 118b0000.i2c: controller timed out
[ 16.729067] tda998x 0-0070: set_page 020e err -110
[ 17.769055] i2c_designware 118b0000.i2c: controller timed out
[ 17.769067] tda998x 0-0070: set_page 0211 err -110
[ 18.809054] i2c_designware 118b0000.i2c: controller timed out
[ 18.809067] tda998x 0-0070: set_page 0207 err -110
[ 19.849055] i2c_designware 118b0000.i2c: controller timed out
[ 19.849066] tda998x 0-0070: set_page 0208 err -110
[ 20.889056] i2c_designware 118b0000.i2c: controller timed out
[ 20.889068] tda998x 0-0070: set_page 0209 err -110
[ 21.929055] i2c_designware 118b0000.i2c: controller timed out
[ 21.929067] tda998x 0-0070: set_page 020a err -110
[ 22.969055] i2c_designware 118b0000.i2c: controller timed out
[ 22.969067] tda998x 0-0070: set_page 0206 err -110
[ 24.009054] i2c_designware 118b0000.i2c: controller timed out
[ 24.009066] tda998x 0-0070: set_page 0027 err -110
[ 25.049055] i2c_designware 118b0000.i2c: controller timed out
[ 25.049067] tda998x 0-0070: set_page 0000 err -110
[ 25.049076] tda998x 0-0070: failed to read version: -110
[ 25.049088] tda998x: probe of 0-0070 failed with error -110
[ 25.049467] i2c_designware 118c0000.i2c: coherent device 0 dev->dma_coherent 0
[ 25.050524] i2c_designware 12450000.i2c: coherent device 0 dev->dma_coherent 0
[ 25.051519] display-encoder soc:display-encoder: coherent device 0 dev->dma_c oherent 0
[ 25.052771] starfive-drm soc:display-subsystem: bound 12000000.crtc (ops star five_crtc_component_ops)
[ 25.052848] display-encoder soc:display-encoder: endpoint returns -517
[ 25.052865] starfive-drm soc:display-subsystem: failed to bind soc:display-en coder (ops starfive_encoder_component_ops): -22
[ 25.053066] Oops - Oops - store (or AMO) address misaligned [#1]
[ 25.129561] Modules linked in:
[ 25.132614] CPU: 1 PID: 115 Comm: kworker/u4:3 Not tainted 5.15.0-rc3-rt6 #1
[ 25.139711] Hardware name: BeagleV Starlight Beta A1 (DT)
[ 25.145093] Workqueue: events_unbound deferred_probe_work_func
[ 25.150952] epc : reset_control_bulk_put+0x76/0xf4
[ 25.155733] ra : reset_control_bulk_put+0x3e/0xf4
[ 25.160524] epc : ffffffff805cc838 ra : ffffffff805cc800 sp : ffffffd00495b9d 0
[ 25.167717] gp : ffffffff81e53b38 tp : ffffffe080738000 t0 : 000000000000004 0
[ 25.174923] t1 : 000000ff00000000 t2 : ffffffff810bf6f0 s0 : ffffffd00495ba3 0
[ 25.182128] s1 : ffffffff8067049a a0 : ffffffff806704b6 a1 : ffffffd00495ba2 0
[ 25.189360] a2 : ffffffff8132c038 a3 : ffffffff81f0b0f8 a4 : 000000000000000 0
[ 25.196553] a5 : ffffffd00495ba30 a6 : 000000000000ff00 a7 : 000000000000000 0
[ 25.203761] s2 : 0000000000000001 s3 : ffffffffffffffff s4 : ffffffd00495ba2 0
[ 25.210968] s5 : ffffffffffffffff s6 : fffffffffffff000 s7 : 000000000000000 1
[ 25.218160] s8 : 0000000000000122 s9 : 0000000000000100 s10: ffffffff81da57b 0
[ 25.225388] s11: ffffffe08079b440 t3 : 0000000000000174 t4 : 00000000000003f f
[ 25.232596] t5 : 000000000000004f t6 : ffffffff81c29db8
[ 25.237886] status: 0000000200000120 badaddr: ffffffff806704b6 cause: 0000000 000000006
[ 25.245850] [] reset_control_bulk_put+0x76/0xf4
[ 25.246253] printk: console [ttyS0]: printing thread stopped
[ 25.251968] [] devm_reset_control_bulk_release+0x26/0x2e
[ 25.264414] [] devres_release_group+0xbc/0x106
[ 25.270424] [] component_unbind+0x40/0x4e
[ 25.275979] [] component_bind_all+0x14c/0x20a
[ 25.281892] [] starfive_drm_bind+0xc0/0x160
[ 25.287627] [] try_to_bring_up_master+0x184/0x23a
[ 25.293884] [] __component_add+0xba/0x17a
[ 25.299451] [] component_add+0x22/0x2a
[ 25.304745] [] starfive_encoder_probe+0x2a/0x32
[ 25.310859] [] platform_probe+0x52/0x82
[ 25.316241] [] really_probe+0xa0/0x38c
[ 25.321550] [] __driver_probe_device+0xc2/0x110
[ 25.327622] [] driver_probe_device+0x40/0xcc
[ 25.333447] [] __device_attach_driver+0x86/0xea
[ 25.339531] [] bus_for_each_drv+0x5a/0x8c
[ 25.345093] [] __device_attach+0xbc/0x120
[ 25.350657] [] device_initial_probe+0x22/0x2a
[ 25.356555] [] bus_probe_device+0x90/0x96
[ 25.362123] [] deferred_probe_work_func+0xca/0x11c
[ 25.368453] [] process_one_work+0x188/0x362
[ 25.374233] [] worker_thread+0x1ba/0x36e
[ 25.379720] [] kthread+0x154/0x182
[ 25.384677] [] ret_from_exception+0x0/0xc
[ 25.390272] ---[ end trace 0000000000000002 ]---
[ 26.790993] printk: enabled sync mode
The text was updated successfully, but these errors were encountered: