[...]

>>
>> Depending if you have SD/(e)MMC card slot(s), the below patch might
>> affect your results. So it might be a good idea to re-run your test to
>> get some fresh data.
>>
>> [PATCH 1/2] mmc: core: Make runtime resume default behavior for MMC/SD [3]
> I didn't find this patch in mainline kernel, where is this patch?

It's queued for 4.5 on my next branch via my mmc git. Thus also
available in linux-next.

One should know that it's affecting MMC/SD cards and not SDIO.

Future wise I was hoping we could do something similar for SDIO, but I
need to think that through a bit more.

>>
>>>>> Signed-off-by: Zhonghui Fu <zhonghui...@linux.intel.com>
>>>> I think this is an interesting change, but I wonder if you really
>>>> understand how this affects the order of how devices may be
>>>> suspended/resumed?
>>>>
>>>> Also, I believe you didn't answer my question for the earlier version
>>>> of the patch, so let me try again.
>>>>
>>>> There are a strict dependency chain when suspending/resuming devices
>>>> that must be maintained. Currently this is controlled via device
>>>> registration/probe order.
>>>>
>>>> An SDIO func driver/device must always be suspended *before* the SDIO
>>>> card device. Additionally the corresponding MMC host, must be
>>>> suspended after the SDIO card device. Vice verse applies to the resume
>>>> sequence.
>>>>
>>>> As this patch enables asynchronous suspend, I am worried that it will
>>>> break this dependency chain. What do you think?
>>> After enabling asynchronous suspend/resume, PM core still ensures the 
>>> strict suspend/resume dependency between child and parent devices - child 
>>> must be suspended before its parent, and parent must be resumed before its 
>>> child. SDIO function is child of SDIO card, and SDIO card is child of MMC 
>>> host, and MMC host is child of MMC controller. So the dependency chain is 
>>> not broken. Actually,  many devices have been using asynchronous 
>>> suspend/resume mode now.
>>
>> I believe your view of how the PM core works for devices that *don't*
>> use async suspend is wrong! The PM core doesn't respect parent/child
>> relations during the device system PM phase for these devices.
> I agree with you for the following description. But, I never described how PM 
> core works for devices that don't use async mode. Where did you get my view 
> about this?  I just said that PM core still ensure the dependency between 
> child and parent devices after using async mode, I never said that the method 
> ensuring dependency is the same for sync devices and async devices.

You said it again. "PM core *still* ensures the dependency... after
using async mode". I guess it depends what you mean by "still". :-)

Anyway, it doesn't matter as I think we have sorted it out now.

[...]

>> This change will also affect SDIO combo cards. That means the when
>> there is a mmc blk device driver bound to the mmc card, its
>> ->suspend() methods will be called asynchronously.
>>
>> Have you considered that? Especially since there are nothing being
>> mentioned about it in the change-log?
> I have considered this, this patch still work for SDIO combo cards.
>>
>> Also, within this context I am wondering why you *only* enable async
>> suspend for SDIO cards and not all cards (SD/MMC)? Is there a problem
>> with doing that?
> I am optimizing suspend/resume speed for some Intel's tablet platforms and 
> focusing only on the most time-consuming device path now. I will deliver 
> similar patch for SD/MMC card.

Okay, thanks for sharing you plans!

I would prefer if we instead enables async suspend for all types of
card devices and the sdio func devices within one patch. I suggest we
use mmc_add_card() and sdio_add_func(), to where we enable async
suspend for the devices.

[...]

Kind regards
Uffe
--
To unsubscribe from this list: send the line "unsubscribe linux-mmc" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to