[PATCH] mmc: core: add auto bkops support

Alex Lemberg Alex.Lemberg at sandisk.com
Wed Jun 22 07:08:32 PDT 2016


HI Shawn,

On 6/21/16, 4:44 AM, "Shawn Lin" <shawn.lin at rock-chips.com> 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
>



More information about the Linux-rockchip mailing list