Skip to content
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

Kernel 4.4.114 DRM stopped after the first frame #71

Closed
zillevdr opened this issue Feb 26, 2018 · 3 comments
Closed

Kernel 4.4.114 DRM stopped after the first frame #71

zillevdr opened this issue Feb 26, 2018 · 3 comments

Comments

@zillevdr
Copy link

Last weckend i had updated the kernel from 4.4.103 to 4.4.114. When I play video DRM stopped after the first frame is on the screen. The config is rockchip_linux_defconfig. With kernel 4.4.103-rockchip it work fine.

dmesg with 4.4.103-rockchip:
[ 47.354088] [drm:hdmi_config_hdr_infoframe] ERROR Not support DRM Infoframe

dmesg with 4.4.114-rockchip:
[ 161.600251] rockchip-vop ff930000.vop: [drm:vop_crtc_enable] Update mode to 1920*1080, close all win
[ 161.622797] [drm:hdmi_config_hdr_infoframe] ERROR Not support DRM Infoframe
[ 179.940407] rockchip-vop ff930000.vop: wait win close timeout

Best regards
zille

@wzyy2
Copy link
Contributor

wzyy2 commented Mar 9, 2018

which userspace do you use to play video? gstreamer?

@zillevdr
Copy link
Author

zillevdr commented Mar 9, 2018

No, I have written an plugin for vdr: https://github.com/zillevdr/vdr-plugin-softhddevice/tree/drm
With kernel 4.4.103-rockchip run perfect, with kernel 4.4.114-rockchip it stops after the first frame is on screen.

@zillevdr
Copy link
Author

The issue was on the audio path here. Sorry for trouble.
Best regards zille

rkchrome pushed a commit that referenced this issue Aug 31, 2018
BUG: sleeping function called from invalid context at kernel/locking/rtmutex.c:996
in_atomic(): 1, irqs_disabled(): 0, pid: 248, name: kworker/3:1H
4 locks held by kworker/3:1H/248:
 #0:  ("dhd_eventd"){++++..}, at: [<ffffff80080c1740>] process_one_work+0x1c4/0x6c4
 #1:  ((&cfg->event_work)){+.+...}, at: [<ffffff80080c1740>] process_one_work+0x1c4/0x6c4
 #2:  (&cfg->if_sync){+.+.+.}, at: [<ffffff8008691d7c>] wl_event_handler+0x134/0x270
 #3:  (&cfg->usr_sync){+.+.+.}, at: [<ffffff8008698504>] wl_escan_handler+0xac/0x11f8
Preemption disabled at:[<ffffff8008694cf4>] wl_inform_bss+0x5c/0x164

CPU: 3 PID: 248 Comm: kworker/3:1H Not tainted 4.4.115-rt130 #71
Hardware name: Rockchip RK3399 Evaluation Board v3 (RT) (DT)
Workqueue: dhd_eventd wl_event_handler
Call trace:
[<ffffff800808ac78>] dump_backtrace+0x0/0x1e0
[<ffffff800808ae6c>] show_stack+0x14/0x1c
[<ffffff80083fa070>] dump_stack+0xa8/0xe8
[<ffffff80080d24fc>] ___might_sleep+0x1f8/0x1fc
[<ffffff8008db32a0>] rt_spin_lock+0x28/0x64
[<ffffff8008cf1aac>] cfg80211_bss_update+0x54/0x648
[<ffffff8008cf276c>] cfg80211_inform_bss_frame_data+0x340/0x544
[<ffffff8008694aa8>] wl_inform_single_bss+0x594/0x784
[<ffffff8008694dc0>] wl_inform_bss+0x128/0x164
[<ffffff80086991a8>] wl_escan_handler+0xd50/0x11f8
[<ffffff8008691e84>] wl_event_handler+0x23c/0x270
[<ffffff80080c1948>] process_one_work+0x3cc/0x6c4
[<ffffff80080c2e8c>] worker_thread+0x304/0x3d0
[<ffffff80080c8304>] kthread+0xf4/0x104
[<ffffff80080832c0>] ret_from_fork+0x10/0x50

Change-Id: Ifb740cb469fb399c0395c01a3d8e9c7fc17d3149
Signed-off-by: Tao Huang <huangtao@rock-chips.com>
rkchrome pushed a commit that referenced this issue Feb 18, 2019
BUG: sleeping function called from invalid context at kernel/locking/rtmutex.c:996
in_atomic(): 1, irqs_disabled(): 0, pid: 248, name: kworker/3:1H
4 locks held by kworker/3:1H/248:
 #0:  ("dhd_eventd"){++++..}, at: [<ffffff80080c1740>] process_one_work+0x1c4/0x6c4
 #1:  ((&cfg->event_work)){+.+...}, at: [<ffffff80080c1740>] process_one_work+0x1c4/0x6c4
 #2:  (&cfg->if_sync){+.+.+.}, at: [<ffffff8008691d7c>] wl_event_handler+0x134/0x270
 #3:  (&cfg->usr_sync){+.+.+.}, at: [<ffffff8008698504>] wl_escan_handler+0xac/0x11f8
Preemption disabled at:[<ffffff8008694cf4>] wl_inform_bss+0x5c/0x164

CPU: 3 PID: 248 Comm: kworker/3:1H Not tainted 4.4.115-rt130 #71
Hardware name: Rockchip RK3399 Evaluation Board v3 (RT) (DT)
Workqueue: dhd_eventd wl_event_handler
Call trace:
[<ffffff800808ac78>] dump_backtrace+0x0/0x1e0
[<ffffff800808ae6c>] show_stack+0x14/0x1c
[<ffffff80083fa070>] dump_stack+0xa8/0xe8
[<ffffff80080d24fc>] ___might_sleep+0x1f8/0x1fc
[<ffffff8008db32a0>] rt_spin_lock+0x28/0x64
[<ffffff8008cf1aac>] cfg80211_bss_update+0x54/0x648
[<ffffff8008cf276c>] cfg80211_inform_bss_frame_data+0x340/0x544
[<ffffff8008694aa8>] wl_inform_single_bss+0x594/0x784
[<ffffff8008694dc0>] wl_inform_bss+0x128/0x164
[<ffffff80086991a8>] wl_escan_handler+0xd50/0x11f8
[<ffffff8008691e84>] wl_event_handler+0x23c/0x270
[<ffffff80080c1948>] process_one_work+0x3cc/0x6c4
[<ffffff80080c2e8c>] worker_thread+0x304/0x3d0
[<ffffff80080c8304>] kthread+0xf4/0x104
[<ffffff80080832c0>] ret_from_fork+0x10/0x50

Change-Id: Ifb740cb469fb399c0395c01a3d8e9c7fc17d3149
Signed-off-by: Tao Huang <huangtao@rock-chips.com>
rkchrome pushed a commit that referenced this issue Jul 3, 2019
…le warning

Fix this warning when DEBUG_PREEMPT is selected:
BUG: using smp_processor_id() in preemptible [00000000] code: devfreq_wq/46
caller is debug_smp_processor_id+0x1c/0x24
CPU: 4 PID: 46 Comm: devfreq_wq Tainted: G           O    4.4.179-gaa55fe4a4414 #71
Hardware name: Rockchip RK3399 Excavator Board (Linux Opensource) (DT)
Workqueue: devfreq_wq devfreq_monitor
Call trace:
[<ffffff800808866c>] dump_backtrace+0x0/0x228
[<ffffff80080888b8>] show_stack+0x24/0x30
[<ffffff80083c91a0>] dump_stack+0x88/0xb0
[<ffffff80083e11f0>] check_preemption_disabled+0xd4/0xfc
[<ffffff80083e1234>] debug_smp_processor_id+0x1c/0x24
[<ffffff80087a8ce0>] rockchip_dmcfreq_target+0x114/0x340
[<ffffff80087a5ff0>] update_devfreq+0x120/0x1b4
[<ffffff80087a60b8>] devfreq_monitor+0x34/0x8c
[<ffffff80080b3164>] process_one_work+0x23c/0x3d8
[<ffffff80080b3340>] process_scheduled_works+0x40/0x44
[<ffffff80080b3c8c>] rescuer_thread+0x174/0x26c
[<ffffff80080b9020>] kthread+0xdc/0xec
[<ffffff8008082ef0>] ret_from_fork+0x10/0x20
BUG: using smp_processor_id() in preemptible [00000000] code: kworker/u12:1/720
caller is debug_smp_processor_id+0x1c/0x24
CPU: 0 PID: 720 Comm: kworker/u12:1 Tainted: G           O    4.4.179-gaa55fe4a4414 #71
Hardware name: Rockchip RK3399 Excavator Board (Linux Opensource) (DT)
Workqueue: devfreq_wq devfreq_monitor
Call trace:
[<ffffff800808866c>] dump_backtrace+0x0/0x228
[<ffffff80080888b8>] show_stack+0x24/0x30
[<ffffff80083c91a0>] dump_stack+0x88/0xb0
[<ffffff80083e11f0>] check_preemption_disabled+0xd4/0xfc
[<ffffff80083e1234>] debug_smp_processor_id+0x1c/0x24
[<ffffff80087a8ce0>] rockchip_dmcfreq_target+0x114/0x340
[<ffffff80087a5ff0>] update_devfreq+0x120/0x1b4
[<ffffff80087a60b8>] devfreq_monitor+0x34/0x8c
[<ffffff80080b3164>] process_one_work+0x23c/0x3d8
[<ffffff80080b4064>] worker_thread+0x2e0/0x3a0
[<ffffff80080b9020>] kthread+0xdc/0xec
[<ffffff8008082ef0>] ret_from_fork+0x10/0x20

Change-Id: I11a2d4684cb3306124470692649c0041d7615f77
Signed-off-by: Finley Xiao <finley.xiao@rock-chips.com>
rkchrome pushed a commit that referenced this issue Jul 10, 2019
Fix this warning when DEBUG_PREEMPT is selected:
BUG: using smp_processor_id() in preemptible [00000000] code: devfreq_wq/46
caller is debug_smp_processor_id+0x1c/0x24
CPU: 4 PID: 46 Comm: devfreq_wq Tainted: G           O    4.4.179-gaa55fe4a4414 #71
Hardware name: Rockchip RK3399 Excavator Board (Linux Opensource) (DT)
Workqueue: devfreq_wq devfreq_monitor
Call trace:
[<ffffff800808866c>] dump_backtrace+0x0/0x228
[<ffffff80080888b8>] show_stack+0x24/0x30
[<ffffff80083c91a0>] dump_stack+0x88/0xb0
[<ffffff80083e11f0>] check_preemption_disabled+0xd4/0xfc
[<ffffff80083e1234>] debug_smp_processor_id+0x1c/0x24
[<ffffff80087a8ce0>] rockchip_dmcfreq_target+0x114/0x340
[<ffffff80087a5ff0>] update_devfreq+0x120/0x1b4
[<ffffff80087a60b8>] devfreq_monitor+0x34/0x8c
[<ffffff80080b3164>] process_one_work+0x23c/0x3d8
[<ffffff80080b3340>] process_scheduled_works+0x40/0x44
[<ffffff80080b3c8c>] rescuer_thread+0x174/0x26c
[<ffffff80080b9020>] kthread+0xdc/0xec
[<ffffff8008082ef0>] ret_from_fork+0x10/0x20

Change-Id: Idc05e25403de04108f597e69643e91868728b873
Signed-off-by: Finley Xiao <finley.xiao@rock-chips.com>
0lvin pushed a commit to free-z4u/roc-rk3328-cc-official that referenced this issue Aug 3, 2019
Fixes the following false warning among others for LLIST_HEAD and
PLIST_HEAD:

    WARNING: Missing a blank line after declarations
    rockchip-linux#71: FILE: drivers/s390/scsi/zfcp_fsf.c:422:
    +	struct hlist_node *tmp;
    +	HLIST_HEAD(remove_queue);

Link: http://lkml.kernel.org/r/20170614133512.89425-1-maier@linux.vnet.ibm.com
Signed-off-by: Steffen Maier <maier@linux.vnet.ibm.com>
Acked-by: Joe Perches <joe@perches.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Kwiboo pushed a commit to Kwiboo/linux-rockchip that referenced this issue Nov 29, 2020
[ Upstream commit 3c3751f ]

When target side trace in turned on and flush command is issued from the
host it results in the following Oops.

[  856.789724] BUG: kernel NULL pointer dereference, address: 0000000000000068
[  856.790686] #PF: supervisor read access in kernel mode
[  856.791262] #PF: error_code(0x0000) - not-present page
[  856.791863] PGD 6d7110067 P4D 6d7110067 PUD 66f0ad067 PMD 0
[  856.792527] Oops: 0000 [#1] SMP NOPTI
[  856.792950] CPU: 15 PID: 7034 Comm: nvme Tainted: G           OE     5.9.0nvme-5.9+ rockchip-linux#71
[  856.793790] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.12.0-59-gc9ba5276e3214
[  856.794956] RIP: 0010:trace_event_raw_event_nvmet_req_init+0x13e/0x170 [nvmet]
[  856.795734] Code: 41 5c 41 5d c3 31 d2 31 f6 e8 4e 9b b8 e0 e9 0e ff ff ff 49 8b 55 00 48 8b 38 8b 0
[  856.797740] RSP: 0018:ffffc90001be3a60 EFLAGS: 00010246
[  856.798375] RAX: 0000000000000000 RBX: ffff8887e7d2c01c RCX: 0000000000000000
[  856.799234] RDX: 0000000000000020 RSI: 0000000057e70ea2 RDI: ffff8887e7d2c034
[  856.800088] RBP: ffff88869f710578 R08: ffff888807500d40 R09: 00000000fffffffe
[  856.800951] R10: 0000000064c66670 R11: 00000000ef955201 R12: ffff8887e7d2c034
[  856.801807] R13: ffff88869f7105c8 R14: 0000000000000040 R15: ffff88869f710440
[  856.802667] FS:  00007f6a22bd8780(0000) GS:ffff888813a00000(0000) knlGS:0000000000000000
[  856.803635] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[  856.804367] CR2: 0000000000000068 CR3: 00000006d73e0000 CR4: 00000000003506e0
[  856.805283] Call Trace:
[  856.805613]  nvmet_req_init+0x27c/0x480 [nvmet]
[  856.806200]  nvme_loop_queue_rq+0xcb/0x1d0 [nvme_loop]
[  856.806862]  blk_mq_dispatch_rq_list+0x123/0x7b0
[  856.807459]  ? kvm_sched_clock_read+0x14/0x30
[  856.808025]  __blk_mq_sched_dispatch_requests+0xc7/0x170
[  856.808708]  blk_mq_sched_dispatch_requests+0x30/0x60
[  856.809372]  __blk_mq_run_hw_queue+0x70/0x100
[  856.809935]  __blk_mq_delay_run_hw_queue+0x156/0x170
[  856.810574]  blk_mq_run_hw_queue+0x86/0xe0
[  856.811104]  blk_mq_sched_insert_request+0xef/0x160
[  856.811733]  blk_execute_rq+0x69/0xc0
[  856.812212]  ? blk_mq_rq_ctx_init+0xd0/0x230
[  856.812784]  nvme_execute_passthru_rq+0x57/0x130 [nvme_core]
[  856.813461]  nvme_submit_user_cmd+0xeb/0x300 [nvme_core]
[  856.814099]  nvme_user_cmd.isra.82+0x11e/0x1a0 [nvme_core]
[  856.814752]  blkdev_ioctl+0x1dc/0x2c0
[  856.815197]  block_ioctl+0x3f/0x50
[  856.815606]  __x64_sys_ioctl+0x84/0xc0
[  856.816074]  do_syscall_64+0x33/0x40
[  856.816533]  entry_SYSCALL_64_after_hwframe+0x44/0xa9
[  856.817168] RIP: 0033:0x7f6a222ed107
[  856.817617] Code: 44 00 00 48 8b 05 81 cd 2c 00 64 c7 00 26 00 00 00 48 c7 c0 ff ff ff ff c3 66 2e 8
[  856.819901] RSP: 002b:00007ffca848f058 EFLAGS: 00000202 ORIG_RAX: 0000000000000010
[  856.820846] RAX: ffffffffffffffda RBX: 0000000000000003 RCX: 00007f6a222ed107
[  856.821726] RDX: 00007ffca848f060 RSI: 00000000c0484e43 RDI: 0000000000000003
[  856.822603] RBP: 0000000000000003 R08: 000000000000003f R09: 0000000000000005
[  856.823478] R10: 00007ffca848ece0 R11: 0000000000000202 R12: 00007ffca84912d3
[  856.824359] R13: 00007ffca848f4d0 R14: 0000000000000002 R15: 000000000067e900
[  856.825236] Modules linked in: nvme_loop(OE) nvmet(OE) nvme_fabrics(OE) null_blk nvme(OE) nvme_corel

Move the nvmet_req_init() tracepoint after we parse the command in
nvmet_req_init() so that we can get rid of the duplicate
nvmet_find_namespace() call.
Rename __assign_disk_name() ->  __assign_req_name(). Now that we call
tracepoint after parsing the command simplify the newly added
__assign_req_name() which fixes this bug.

Signed-off-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Sasha Levin <sashal@kernel.org>
scpcom pushed a commit to scpcom/linux that referenced this issue Dec 1, 2020
[ Upstream commit 3c3751f ]

When target side trace in turned on and flush command is issued from the
host it results in the following Oops.

[  856.789724] BUG: kernel NULL pointer dereference, address: 0000000000000068
[  856.790686] #PF: supervisor read access in kernel mode
[  856.791262] #PF: error_code(0x0000) - not-present page
[  856.791863] PGD 6d7110067 P4D 6d7110067 PUD 66f0ad067 PMD 0
[  856.792527] Oops: 0000 [#1] SMP NOPTI
[  856.792950] CPU: 15 PID: 7034 Comm: nvme Tainted: G           OE     5.9.0nvme-5.9+ rockchip-linux#71
[  856.793790] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.12.0-59-gc9ba5276e3214
[  856.794956] RIP: 0010:trace_event_raw_event_nvmet_req_init+0x13e/0x170 [nvmet]
[  856.795734] Code: 41 5c 41 5d c3 31 d2 31 f6 e8 4e 9b b8 e0 e9 0e ff ff ff 49 8b 55 00 48 8b 38 8b 0
[  856.797740] RSP: 0018:ffffc90001be3a60 EFLAGS: 00010246
[  856.798375] RAX: 0000000000000000 RBX: ffff8887e7d2c01c RCX: 0000000000000000
[  856.799234] RDX: 0000000000000020 RSI: 0000000057e70ea2 RDI: ffff8887e7d2c034
[  856.800088] RBP: ffff88869f710578 R08: ffff888807500d40 R09: 00000000fffffffe
[  856.800951] R10: 0000000064c66670 R11: 00000000ef955201 R12: ffff8887e7d2c034
[  856.801807] R13: ffff88869f7105c8 R14: 0000000000000040 R15: ffff88869f710440
[  856.802667] FS:  00007f6a22bd8780(0000) GS:ffff888813a00000(0000) knlGS:0000000000000000
[  856.803635] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[  856.804367] CR2: 0000000000000068 CR3: 00000006d73e0000 CR4: 00000000003506e0
[  856.805283] Call Trace:
[  856.805613]  nvmet_req_init+0x27c/0x480 [nvmet]
[  856.806200]  nvme_loop_queue_rq+0xcb/0x1d0 [nvme_loop]
[  856.806862]  blk_mq_dispatch_rq_list+0x123/0x7b0
[  856.807459]  ? kvm_sched_clock_read+0x14/0x30
[  856.808025]  __blk_mq_sched_dispatch_requests+0xc7/0x170
[  856.808708]  blk_mq_sched_dispatch_requests+0x30/0x60
[  856.809372]  __blk_mq_run_hw_queue+0x70/0x100
[  856.809935]  __blk_mq_delay_run_hw_queue+0x156/0x170
[  856.810574]  blk_mq_run_hw_queue+0x86/0xe0
[  856.811104]  blk_mq_sched_insert_request+0xef/0x160
[  856.811733]  blk_execute_rq+0x69/0xc0
[  856.812212]  ? blk_mq_rq_ctx_init+0xd0/0x230
[  856.812784]  nvme_execute_passthru_rq+0x57/0x130 [nvme_core]
[  856.813461]  nvme_submit_user_cmd+0xeb/0x300 [nvme_core]
[  856.814099]  nvme_user_cmd.isra.82+0x11e/0x1a0 [nvme_core]
[  856.814752]  blkdev_ioctl+0x1dc/0x2c0
[  856.815197]  block_ioctl+0x3f/0x50
[  856.815606]  __x64_sys_ioctl+0x84/0xc0
[  856.816074]  do_syscall_64+0x33/0x40
[  856.816533]  entry_SYSCALL_64_after_hwframe+0x44/0xa9
[  856.817168] RIP: 0033:0x7f6a222ed107
[  856.817617] Code: 44 00 00 48 8b 05 81 cd 2c 00 64 c7 00 26 00 00 00 48 c7 c0 ff ff ff ff c3 66 2e 8
[  856.819901] RSP: 002b:00007ffca848f058 EFLAGS: 00000202 ORIG_RAX: 0000000000000010
[  856.820846] RAX: ffffffffffffffda RBX: 0000000000000003 RCX: 00007f6a222ed107
[  856.821726] RDX: 00007ffca848f060 RSI: 00000000c0484e43 RDI: 0000000000000003
[  856.822603] RBP: 0000000000000003 R08: 000000000000003f R09: 0000000000000005
[  856.823478] R10: 00007ffca848ece0 R11: 0000000000000202 R12: 00007ffca84912d3
[  856.824359] R13: 00007ffca848f4d0 R14: 0000000000000002 R15: 000000000067e900
[  856.825236] Modules linked in: nvme_loop(OE) nvmet(OE) nvme_fabrics(OE) null_blk nvme(OE) nvme_corel

Move the nvmet_req_init() tracepoint after we parse the command in
nvmet_req_init() so that we can get rid of the duplicate
nvmet_find_namespace() call.
Rename __assign_disk_name() ->  __assign_req_name(). Now that we call
tracepoint after parsing the command simplify the newly added
__assign_req_name() which fixes this bug.

Signed-off-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Sasha Levin <sashal@kernel.org>
stvhay referenced this issue in stvhay/kernel Jan 21, 2023
…v1.0.0

Khadas edges 5.10.y release v1.0.0
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants