1), looks not possbile in scsi request submit path
- preempt is disabled for arm64 vivid
- the timer is always added just before submitting to hardware
- once it can't be submitted to hardware, the timer is disabled
2), another possibility is in ata's completion path
- block request is always completed in softirq(scsi_done()->blk_complete_request())
- the softirq may be run from another CPU, which is triggered by IPI
- but one atomic complete flag is used to monitor the request completion status
(blk_mark_rq_complete()), so looks the timeout can't be caused by softirq delay schedule.
Some static code analysis:
1), looks not possbile in scsi request submit path
- preempt is disabled for arm64 vivid
- the timer is always added just before submitting to hardware
- once it can't be submitted to hardware, the timer is disabled
2), another possibility is in ata's completion path scsi_done( )->blk_ complete_ request( )) rq_complete( )), so looks the timeout can't be caused by softirq delay schedule.
- block request is always completed in softirq(
- the softirq may be run from another CPU, which is triggered by IPI
- but one atomic complete flag is used to monitor the request completion status
(blk_mark_