From: Chen-Yu Tsai <wens@kernel.org>
To: Vinod Koul <vkoul@kernel.org>
Cc: p.zabel@pengutronix.de, Bumyong Lee <bumyong.lee@samsung.com>,
dmaengine@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH] dmaengine: pl330: issue_pending waits until WFP state
Date: Sun, 24 Dec 2023 23:40:11 +0800 [thread overview]
Message-ID: <ZYhQ2-OnjDgoqjvt@wens.tw> (raw)
In-Reply-To: <170317622670.683420.3881501030324253538.b4-ty@kernel.org>
Hi,
On Thu, Dec 21, 2023 at 10:00:26PM +0530, Vinod Koul wrote:
>
> On Tue, 19 Dec 2023 14:50:26 +0900, Bumyong Lee wrote:
> > According to DMA-330 errata notice[1] 71930, DMAKILL
> > cannot clear internal signal, named pipeline_req_active.
> > it makes that pl330 would wait forever in WFP state
> > although dma already send dma request if pl330 gets
> > dma request before entering WFP state.
> >
> > The errata suggests that polling until entering WFP state
> > as workaround and then peripherals allows to issue dma request.
> >
> > [...]
>
> Applied, thanks!
>
> [1/1] dmaengine: pl330: issue_pending waits until WFP state
> commit: d114d3a096194fb2a9c3bedd7be6587b97610625
This seems to cause a stall on my Quartz 64 model B (RK3566) once
Bluetooth over UART is initialized, when combined with a patch of mine
that enables DMA on UARTs [1]. Reverting this patch gets everything
running again.
The following are RCU stalls detected, followed by stack traces
produced with pseudo-NMI. Without pseudo-NMIs no stack traces are
produced.
rcu: INFO: rcu_sched detected stalls on CPUs/tasks:
rcu: 0-...0: (0 ticks this GP) idle=80fc/1/0x4000000000000000 softirq=693/693 fqs=31498
rcu: 3-...0: (3 ticks this GP) idle=2b44/1/0x4000000000000000 softirq=553/556 fqs=31498
rcu: (detected by 1, t=162830 jiffies, g=-307, q=32 ncpus=4)
Sending NMI from CPU 1 to CPUs 0:
NMI backtrace for cpu 0
CPU: 0 PID: 1200 Comm: (udev-worker) Not tainted 6.7.0-rc6-next-20231222-10300-g8b07e3811bc7 #17
Hardware name: Pine64 RK3566 Quartz64-B Board (DT)
pstate: 00400009 (nzcv daif +PAN -UAO -TCO -DIT -SSBS BTYPE=--)
pc : queued_spin_lock_slowpath+0x50/0x330
lr : pl330_irq_handler+0x2f8/0x5a0
sp : ffffffc080003ec0
pmr_save: 00000060
x29: ffffffc080003ec0 x28: ffffff80017c7000 x27: ffffff8001a58d80
x26: 0000000000000060 x25: ffffff80017d0338 x24: ffffff800161ae38
x23: ffffff8001597c00 x22: ffffffc081960000 x21: 0000000000000000
x20: ffffff800161ac80 x19: ffffff80010c5180 x18: 0000000000000000
x17: ffffffc06e724000 x16: ffffffc080000000 x15: 0000000000000000
x14: 0000000000000000 x13: ffffff80042f102f x12: ffffffc083ad3cc4
x11: 0000000000000040 x10: ffffff800022a0a8 x9 : ffffff800022a0a0
x8 : ffffff8000400270 x7 : 0000000000000000 x6 : 0000000000000000
x5 : ffffff8000400248 x4 : ffffffc06e724000 x3 : ffffffc080003fa0
x2 : 0000000000000000 x1 : 0000000000000001 x0 : ffffff800161ae38
Call trace:
queued_spin_lock_slowpath+0x50/0x330
__handle_irq_event_percpu+0x38/0x16c
handle_irq_event+0x44/0xf8
handle_fasteoi_irq+0xb0/0x28c
generic_handle_domain_irq+0x2c/0x44
gic_handle_irq+0x10c/0x240
call_on_irq_stack+0x24/0x4c
do_interrupt_handler+0x80/0x8c
el1_interrupt+0x44/0x98
el1h_64_irq_handler+0x18/0x24
el1h_64_irq+0x78/0x7c
__d_rehash+0x0/0x94
d_add+0x40/0x80
simple_lookup+0x4c/0x78
path_openat+0x5ec/0xed0
do_filp_open+0x80/0x12c
do_sys_openat2+0xb4/0xe8
__arm64_sys_openat+0x64/0xa4
invoke_syscall+0x48/0x114
el0_svc_common.constprop.0+0x40/0xe0
do_el0_svc+0x1c/0x28
el0_svc+0x34/0xd4
el0t_64_sync_handler+0x100/0x12c
el0t_64_sync+0x1a4/0x1a8
Sending NMI from CPU 1 to CPUs 3:
NMI backtrace for cpu 3
CPU: 3 PID: 31 Comm: kworker/3:0 Not tainted 6.7.0-rc6-next-20231222-10300-g8b07e3811bc7 #17
Hardware name: Pine64 RK3566 Quartz64-B Board (DT)
Workqueue: events hci_uart_write_work [hci_uart]
pstate: 80400009 (Nzcv daif +PAN -UAO -TCO -DIT -SSBS BTYPE=--)
pc : _state+0x2c/0x138
lr : pl330_start_thread.isra.0+0x2e0/0x32c
sp : ffffffc08157bb20
pmr_save: 00000060
x29: ffffffc08157bb20 x28: 0000000000000000 x27: 0000000000000060
x26: ffffffc080c4e658 x25: 0000000000000060 x24: 0000000001a20000
x23: ffffff8001555000 x22: ffffffc081960020 x21: ffffff800161b068
x20: 0000000000000000 x19: ffffff800161b050 x18: ffffffffffffffff
x17: 0000000000000000 x16: 0000000000000000 x15: 0000000000000001
x14: 0000000000000004 x13: 0000000000000009 x12: 0000000000000005
x11: 0000000000000027 x10: 000000000000002b x9 : 0000000000000032
x8 : ffffffc08154521d x7 : 0000000000000005 x6 : 0000000000000010
x5 : 0000000000000001 x4 : ffffffc081960d04 x3 : ffffff800161b280
x2 : ffffff800161b050 x1 : 0000000000204000 x0 : 0000000000000108
Call trace:
_state+0x2c/0x138
pl330_tasklet+0x1f8/0x818
pl330_issue_pending+0x150/0x178
serial8250_tx_dma+0x150/0x21c
serial8250_start_tx+0x9c/0x1c0
__uart_start+0x74/0xfc
uart_write+0xfc/0x2f0
ttyport_write_buf+0x4c/0x90
serdev_device_write_buf+0x24/0x38
hci_uart_write_work+0x54/0x164 [hci_uart]
process_one_work+0x13c/0x2bc
worker_thread+0x2a0/0x52c
kthread+0xe0/0xe4
ret_from_fork+0x10/0x20
[1] https://lore.kernel.org/linux-arm-kernel/20221106161443.4104-1-wens@kernel.org/
next prev parent reply other threads:[~2023-12-24 15:40 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <CGME20231219055052epcas2p4bb1d8210f650ab18370711db2194e8e3@epcas2p4.samsung.com>
2023-12-19 5:50 ` [PATCH] dmaengine: pl330: issue_pending waits until WFP state Bumyong Lee
2023-12-21 16:30 ` Vinod Koul
2023-12-24 15:40 ` Chen-Yu Tsai [this message]
2023-12-27 2:09 ` bumyong.lee
2024-01-08 16:51 ` Chen-Yu Tsai
2024-01-09 1:18 ` bumyong.lee
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=ZYhQ2-OnjDgoqjvt@wens.tw \
--to=wens@kernel.org \
--cc=bumyong.lee@samsung.com \
--cc=dmaengine@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=p.zabel@pengutronix.de \
--cc=vkoul@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.