Re: Enabling MMC BKOPs in kernel based on host caps

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 12 October 2016 at 09:09, Adrian Hunter <adrian.hunter@xxxxxxxxx> wrote:
> On 05/10/16 14:55, Ravikumar wrote:
>> Hi Shawn,
>>
>>
>> On Wednesday 05 October 2016 03:07 PM, Shawn Lin wrote:
>>> Hi Ravikumar,
>>>
>>> + Alex,
>>>
>>> 在 2016/10/3 18:43, Ravikumar Kattekola 写道:
>>>> Hi all,
>>>>     I’ve seen an eMMC failure due to pending background operations on a
>>>> certain OMAP device since bkops enable bit was not set.
>
> It is not clear what you are talking about. BKOPS_EN is
> one-time-programmable so you can just set when the device is provisioned.
>
> However BKOPS_EN does not really enable background operations.  It is an
> indication from the host to the card about whether the card may delay
> maintenance operations.  The definition is:
>
> "This field allows the host to indicate to the device if it is expected to
> periodically manually start background operations by writing to the
> BKOPS_START field."
>
> Currently the kernel does not do periodic background operations, so having
> the kernel set BKOPS_EN would not make sense - even if it wasn't
> one-time-programmable.

Agree!

However, in cases when the BKOPS_EN bit has been set (in one way or
the other), this do becomes a problem as we currently only supports
urgent background operations.
Perhaps we should print a warning when BKOPS_EN is set during card
initialization, as this isn't currently supported.

>
>>>> Further investigation showed me that someone already posted patch to
>>>> enable Background operations in kernel  based on a host capability check
>>>> (Caps2 & BK_OPS_EN)
>>>> but was turned down quoting that it should be enabled from user space
>>>> using mmc-utils.
>>>>
>>>> Enabling this would add one additional check for exception event in the
>>>> response R1 or R1B (only on hosts that explicitly set BK_OPS_EN in caps2).
>>>> But not enabling this could lead to a system failure especially when the
>>>> Filesystem is on eMMC and the card stops responding due to pending
>>>> critical bkops.
>
> Yes the kernel only does urgent background operations if BKOPS_EN is set.
> You seem to be suggesting that the cards are violating the specification by
> delaying maintenance operations even though they are not allowed to because
> BKOPS_EN is not set.  Is that the case?
>

If this is the case, the solution would probably be to actually set
the BKOPS_EN bit from the kernel, perhaps via using a card quirk.

Although, to do that, we first need to add proper background
operations support. I guess that is what Alex intends to do here [1].

[...]

[1]
http://www.spinics.net/lists/linux-mmc/msg38952.html

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




[Index of Archives]     [Linux USB Devel]     [Linux Media]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux