[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <B7133967-23A7-46AF-9013-417BD282E005@sandisk.com>
Date: Wed, 22 Jun 2016 14:08:32 +0000
From: Alex Lemberg <Alex.Lemberg@...disk.com>
To: Shawn Lin <shawn.lin@...k-chips.com>,
Ulf Hansson <ulf.hansson@...aro.org>
CC: Adrian Hunter <adrian.hunter@...el.com>,
Jaehoon Chung <jh80.chung@...sung.com>,
"linux-mmc@...r.kernel.org" <linux-mmc@...r.kernel.org>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
Doug Anderson <dianders@...omium.org>,
"linux-rockchip@...ts.infradead.org"
<linux-rockchip@...ts.infradead.org>
Subject: Re: [PATCH] mmc: core: add auto bkops support
HI Shawn,
On 6/21/16, 4:44 AM, "Shawn Lin" <shawn.lin@...k-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
>
Powered by blists - more mailing lists