linux-arm-msm.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH RFT v3 0/3] ufs: core: cleanup and threaded irq handler
@ 2025-04-07 10:17 Neil Armstrong
  2025-04-07 10:17 ` [PATCH RFT v3 1/3] ufs: core: drop last_intr_status/ts stats Neil Armstrong
                   ` (3 more replies)
  0 siblings, 4 replies; 13+ messages in thread
From: Neil Armstrong @ 2025-04-07 10:17 UTC (permalink / raw)
  To: Alim Akhtar, Avri Altman, Bart Van Assche, James E.J. Bottomley,
	Martin K. Petersen
  Cc: Manivannan Sadhasivam, linux-arm-msm, linux-scsi, linux-kernel,
	Neil Armstrong

On systems with a large number request slots and unavailable MCQ,
the current design of the interrupt handler can delay handling of
other subsystems interrupts causing display artifacts, GPU stalls
or system firmware requests timeouts.

Example of errors reported on a loaded system:
 [drm:dpu_encoder_frame_done_timeout:2706] [dpu error]enc32 frame done timeout
 msm_dpu ae01000.display-controller: [drm:hangcheck_handler [msm]] *ERROR* 67.5.20.1: hangcheck detected gpu lockup rb 2!
 msm_dpu ae01000.display-controller: [drm:hangcheck_handler [msm]] *ERROR* 67.5.20.1:     completed fence: 74285
 msm_dpu ae01000.display-controller: [drm:hangcheck_handler [msm]] *ERROR* 67.5.20.1:     submitted fence: 74286
 Error sending AMC RPMH requests (-110)

Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
---
Changes in v3:
- reword patch 1 commit message, add review tag
- add intermediate patch to track the ESI state
- use the ESI state instead of ufshcd_is_intr_aggr_allowed()
- reword commit message to explain why in mcq + esi mode we bypass threaded irq
- Link to v2: https://lore.kernel.org/r/20250326-topic-ufs-use-threaded-irq-v2-0-7b3e8a5037e6@linaro.org

Changes in v2:
- Removed last_intr_status/last_intr_ts stats
- Handle irq in prinmary handler for MCQ case
- Stop touching REG_INTERRUPT_ENABLE register
- Link to v1: https://lore.kernel.org/r/20250321-topic-ufs-use-threaded-irq-v1-1-7a55816a4b1d@linaro.org

---
Neil Armstrong (3):
      ufs: core: drop last_intr_status/ts stats
      ufs: core: track when MCQ ESI is enabled
      ufs: core: delegate the interrupt service routine to a threaded irq handler

 drivers/ufs/core/ufshcd.c | 42 +++++++++++++++++++++++++++++++-----------
 include/ufs/ufshcd.h      |  7 ++-----
 2 files changed, 33 insertions(+), 16 deletions(-)
---
base-commit: ff7f9b199e3f4cc7d61df5a9a26a7cbb5c1492e6
change-id: 20250321-topic-ufs-use-threaded-irq-53af30f2529f

Best regards,
-- 
Neil Armstrong <neil.armstrong@linaro.org>


^ permalink raw reply	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2025-07-28 23:11 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-04-07 10:17 [PATCH RFT v3 0/3] ufs: core: cleanup and threaded irq handler Neil Armstrong
2025-04-07 10:17 ` [PATCH RFT v3 1/3] ufs: core: drop last_intr_status/ts stats Neil Armstrong
2025-04-07 10:17 ` [PATCH RFT v3 2/3] ufs: core: track when MCQ ESI is enabled Neil Armstrong
2025-04-07 19:36   ` Bart Van Assche
2025-04-07 10:17 ` [PATCH RFT v3 3/3] ufs: core: delegate the interrupt service routine to a threaded irq handler Neil Armstrong
2025-04-07 19:44   ` Bart Van Assche
2025-07-21 12:04   ` André Draszik
2025-07-21 12:10     ` André Draszik
2025-07-21 15:28     ` Bart Van Assche
2025-07-22  9:22       ` André Draszik
2025-07-24  9:55         ` André Draszik
2025-07-28 23:11   ` Nitin Rawat
2025-04-12  1:25 ` [PATCH RFT v3 0/3] ufs: core: cleanup and " Martin K. Petersen

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).