WORKAROUND: misc: fastrpc: flush IOMMU TLB after releasing DSP process#1164
WORKAROUND: misc: fastrpc: flush IOMMU TLB after releasing DSP process#1164ajainp01 wants to merge 1 commit into
Conversation
When a FastRPC session is closed, an INIT_RELEASE is sent to the DSP which begins an asynchronous ASID teardown. If a new INIT_CREATE arrives before teardown completes, the DSP returns AEE_EQURTBADASID (0x8000054f) because the ASID entry is still being torn down. This is likely a DSP firmware issue where the ASID teardown is not completed synchronously before acknowledging the INIT_RELEASE. As a workaround, flush the IOMMU TLB for the session's SMMU context bank immediately after sending INIT_RELEASE. The SMMU hardware TLB invalidation broadcast acts as a synchronization point that causes the DSP firmware to complete its ASID teardown synchronously before the flush returns, eliminating the reuse race. Workaround will be reverted once the fix is provided in Fastrpc driver/ Dsp Firmware side. Signed-off-by: Anvesh Jain P <anvesh.p@oss.qualcomm.com>
🔨 Build Failure Analysis — PR #1164PR: #1164
Verdict1 of 1 failure is introduced by this PR: the PR's changes to 📎 Detailed analysis: Full report |
🔨 Build Failure Analysis — PR #1164PR: #1164
VerdictBoth failures are caused by the CI pipeline attempting to merge the PR's own branch ( 📎 Detailed analysis: Full report |
PR #1164 — validate-patchPR: #1164
|
PR #1164 — checker-log-analyzerPR: #1164
Detailed report: Full report
|
When a FastRPC session is closed, an INIT_RELEASE is sent to the DSP which begins an asynchronous ASID teardown. If a new INIT_CREATE arrives before teardown completes, the DSP returns AEE_EQURTBADASID (0x8000054f) because the ASID entry is still being torn down.
This is likely a DSP firmware issue where the ASID teardown is not completed synchronously before acknowledging the INIT_RELEASE. As a workaround, flush the IOMMU TLB for the session's SMMU context bank immediately after sending INIT_RELEASE. The SMMU hardware TLB invalidation broadcast acts as a synchronization point that causes the DSP firmware to complete its ASID teardown synchronously before the flush returns, eliminating the reuse race.
Workaround will be reverted once the fix is provided in Fastrpc driver/ Dsp Firmware side.