On 07/26/2018 10:45 AM, jianchao.wang wrote:
> Hi Bart
>
> On 07/26/2018 06:26 AM, Bart Van Assche wrote:
>> @@ -102,9 +109,11 @@ int blk_pre_runtime_suspend(struct request_queue *q)
>> return ret;
>>
>> blk_pm_runtime_lock(q);
>> + blk_set_preempt_only(q);
>
> We only stop non-RQF_PM request entering when RPM_SUSPENDING and RPM_RESUMING.
> blk_pre_runtime_suspend should only _check_ whether runtime suspend is
> allowed.
> So we should not set preempt_only here.
>
>
>> + percpu_ref_switch_to_atomic_sync(&q->q_usage_counter);
In addition, .runtime_suspend is invoked under spinlock and irq-disabled.
So sleep is forbidden here.
Please refer to rpm_suspend
* This function must be called under dev->power.lock with interrupts disabled
Thanks
Jianchao
>>
>> spin_lock_irq(q->queue_lock);
>> - if (q->nr_pending) {
>> + if (!percpu_ref_is_zero(&q->q_usage_counter)) {
>> ret = -EBUSY;
>> pm_runtime_mark_last_busy(q->dev);
>> } else {
>> @@ -112,6 +121,7 @@ int blk_pre_runtime_suspend(struct request_queue *q)
>> }
>> spin_unlock_irq(q->queue_lock);
>>
>> + percpu_ref_switch_to_percpu(&q->q_usage_counter);
>> blk_pm_runtime_unlock(q);
>
- [PATCH v2 0/5] blk-mq: Enable runtime power management Bart Van Assche
- [PATCH v2 1/5] block: Fix a comment in a header file Bart Van Assche
- [PATCH v2 3/5] block: Serialize queue freezing and bl... Bart Van Assche
- Re: [PATCH v2 3/5] block: Serialize queue freezin... jianchao.wang
- Re: [PATCH v2 3/5] block: Serialize queue fre... Bart Van Assche
- [PATCH v2 5/5] blk-mq: Enable support for runtime pow... Bart Van Assche
- [PATCH v2 4/5] block, scsi: Rework runtime power mana... Bart Van Assche
- Re: [PATCH v2 4/5] block, scsi: Rework runtime po... jianchao.wang
- Re: [PATCH v2 4/5] block, scsi: Rework runtim... jianchao.wang
- Re: [PATCH v2 4/5] block, scsi: Rework ru... jianchao.wang
- Re: [PATCH v2 4/5] block, scsi: Rework runtim... Bart Van Assche
- Re: [PATCH v2 4/5] block, scsi: Rework ru... jianchao.wang
- Re: [PATCH v2 4/5] block, scsi: Rewo... Bart Van Assche
- Re: [PATCH v2 4/5] block, scsi: ... jianchao.wang
- Re: [PATCH v2 4/5] block, sc... Bart Van Assche
- Re: [PATCH v2 4/5] block, scsi: Rewo... Bart Van Assche
- Re: [PATCH v2 4/5] block, scsi: ... jianchao.wang
- [PATCH v2 2/5] block: Move power management functions... Bart Van Assche
