diff options
| author | Huisong Li <lihuisong@huawei.com> | 2026-07-23 15:39:28 +0100 |
|---|---|---|
| committer | Jassi Brar <jassisinghbrar@gmail.com> | 2026-08-15 15:41:12 -0500 |
| commit | 3360b088175dc5d5c9166685836158470d00571e (patch) | |
| tree | 0f0d4a1e8d364ab563550dba92a4c8d7e199754f /tools/perf/scripts/python/stackcollapse.py | |
| parent | 0ffc8ef661224fe3338b1dc1e5341f03624dc3e5 (diff) | |
mailbox: pcc: Fix command timeout due to missed interrupt
PCC command execution can time out when a fast platform completes a
transaction and signals the platform interrupt before pcc_send_data()
marks the channel as in use. For shared platform interrupts, the type 3
handler uses chan_in_use to decide whether the interrupt belongs to the
channel. If it observes false, it ignores the completion and the caller
waits until timeout.
Publish chan_in_use before ringing the doorbell. Use WRITE_ONCE() for
the lockless flag updates and READ_ONCE() in the interrupt handler. The
following ordered I/O accessor orders the flag store before the platform
is notified.
Clear chan_in_use if ringing the doorbell fails. Otherwise, leave it set
until the interrupt handler completes the transaction, clearing it before
the mailbox core can submit another transfer.
Fixes: 3db174e478cb ("mailbox: pcc: Support shared interrupt for multiple subspaces")
Signed-off-by: Huisong Li <lihuisong@huawei.com>
Signed-off-by: Sudeep Holla <sudeep.holla@kernel.org>
Tested-by: Adam Young <admiyo@os.amperecomputing.com>
Signed-off-by: Jassi Brar <jassisinghbrar@gmail.com>
Diffstat (limited to 'tools/perf/scripts/python/stackcollapse.py')
0 files changed, 0 insertions, 0 deletions
