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