Re: [PATCH] mmc: core: add auto bkops support

From: Alex Lemberg
Date: Wed Jun 22 2016 - 10:23:30 EST


HI Shawn,

On 6/21/16, 4:44 AM, "Shawn Lin" <shawn.lin@xxxxxxxxxxxxxx> wrote:

>On 2016/6/20 21:33, Alex Lemberg wrote:
>> Hi Shawn,
>>
>> [â]
>>
>>>>> +
>>>>> +static int mmc_stop_auto_bkops(struct mmc_card *card)
>>>>> +{
>>>>> + int err = 0;
>>>>> +
>>>>> + if (!card->ext_csd.auto_bkops_en)
>>>>> + return 0;
>>>>> +
>>>>
>>>> Shouldnât the BKOPS_STATUS be checked prior to disabling the BKOPS activity of the device?
>>>>
>>>
>>> Hrmm.. I read the whole section of spec for it, and I did find this
>>> requirement for manul bkops but not for the auto one. So what should we
>>> do if using the auto one?
>>>
>>
>> In case of AUTO BKOPS, the eMMC Device should perform internal GC
>> in the same way as in case of MANUAL BKOPS.
>> The only difference is a host awareness.
>
>agree.
>
>> Although there is no requirement in the spec, I think the driver can
>> give some time to the device to perform/complete its internal GC during the idle time.
>> Thus I think we can check the BKOPS_STATUS on Runtime suspend.
>
>We shouldn't diable bkops on *runtime* suspend as it's just the right
>time for firmware to do GC. We could consider to check and wait for
>the status when doing poweroff, although it seems firmware should be
>able to accept the disable cmd and deal the on-going work perfectly
>when doing bkops without host's awareness, just the same way as suddent
>power loss cases.

If I am not wrong, in current implementation of runtime suspend,
the driver stops BKOPS (send HPI) just before sending sleep command,
see _mmc_suspend(), depends on âMMC_CAP_AGGRESSIVE_PMâ flag.
In this case, the eMMC device will not have enough time to perform internal
BKOPS in both â Manual and Auto BKOPS configurations.

For the poweroff, it should be OK with a current implementation of
PON (mmc_poweroff_notify())

>
>Also I don't know whether the firmware will reflect its status on
>BKOPS_STATUS or not when enabling the auto one. I will do more test.
>
>Anyway, thanks for sharing your thought.
>Also Adrian point out that currently we trigger manual bkosp from
>userspace via mmc-utils, and I agreed we shouldn't force kernel stack
>to enable it defaultly. So I'm prone not to update this $SUBJECT and
>migrate it to mmc-utils later.
>
>>
>> [â]
>>
>> Thanks,
>> Alex
>>
>
>
>--
>Best Regards
>Shawn Lin
>