diff options
| author | Manorit Chawdhry <m-chawdhry@ti.com> | 2026-05-27 12:09:27 +0530 |
|---|---|---|
| committer | Manorit Chawdhry <m-chawdhry@ti.com> | 2026-07-20 16:31:40 +0000 |
| commit | 29681cdf948e9e5e047cc9c85d18cd98dad24104 (patch) | |
| tree | 3ba2ffed2cac0bae4784cfa61aa48f33d6009903 /drivers | |
| parent | 3cdec2d200b74622c1640feba8e336800b3ea1e6 (diff) | |
| download | arm-trusted-firmware-29681cdf948e9e5e047cc9c85d18cd98dad24104.tar.gz arm-trusted-firmware-29681cdf948e9e5e047cc9c85d18cd98dad24104.zip | |
fix(ti): use low priority thread in secure proxy
TF-A does not distinguish between high and low priority threads. However,
low priority threads provide a larger queue depth, which can mitigate
edge cases during parallel core power-down sequences. In such scenarios,
if firmware processing delays prevent the secure proxy queue from
getting flushed in time, other cores might begin executing their own
messages after lock release, leading to potential contention.
Worst case with today's k3_psci code, there are around 2 messages per
core shutdown and around 9 messages per cluster shutdown with an J784s4
( with cluster shutdown doing a blocking call to take the reference for
the cluster device ), this brings us to around worst case 12 message ( 6
cores * 2 cpu off calls ) that can be queued to the firmware.
With high priority threads having a queue depth of 10 messages, there is
a possibility of things having some backpressure. To avoid these corner
cases, switch the secure proxy to use a low priority thread which gives
a queue depth of 20 messages.
Change-Id: I650ec9bd631872aa49561ba3c19fdfe61369dc87
Signed-off-by: Manorit Chawdhry <m-chawdhry@ti.com>
Diffstat (limited to 'drivers')
| -rw-r--r-- | drivers/ti/ti_sci/ti_sci_transport.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/ti/ti_sci/ti_sci_transport.h b/drivers/ti/ti_sci/ti_sci_transport.h index 13d0fb51a..fd3835cfd 100644 --- a/drivers/ti/ti_sci/ti_sci_transport.h +++ b/drivers/ti/ti_sci/ti_sci_transport.h @@ -19,7 +19,7 @@ enum ti_sci_transport_chan_id { #if !K3_SEC_PROXY_LITE RX_SECURE_TRANSPORT_CHANNEL_ID = 1, - TX_SECURE_TRANSPORT_CHANNEL_ID, + TX_SECURE_TRANSPORT_CHANNEL_ID = 3, #else RX_SECURE_TRANSPORT_CHANNEL_ID = 8, /* |
