From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752425AbcCAHwO (ORCPT ); Tue, 1 Mar 2016 02:52:14 -0500 Received: from mx2.suse.de ([195.135.220.15]:36082 "EHLO mx2.suse.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751168AbcCAHwM (ORCPT ); Tue, 1 Mar 2016 02:52:12 -0500 Subject: Re: [PATCH v5 09/15] scsi: ufs: add error recovery after DL NAC error To: Yaniv Gardi , James.Bottomley@HansenPartnership.com References: <1456666367-11418-1-git-send-email-ygardi@codeaurora.org> <1456666367-11418-10-git-send-email-ygardi@codeaurora.org> Cc: linux-kernel@vger.kernel.org, linux-scsi@vger.kernel.org, linux-arm-msm@vger.kernel.org, santoshsy@gmail.com, linux-scsi-owner@vger.kernel.org, Subhash Jadavani , Vinayak Holikatti , "James E.J. Bottomley" , "Martin K. Petersen" From: Hannes Reinecke Message-ID: <56D54A1B.8080008@suse.de> Date: Tue, 1 Mar 2016 15:51:55 +0800 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.6.0 MIME-Version: 1.0 In-Reply-To: <1456666367-11418-10-git-send-email-ygardi@codeaurora.org> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 02/28/2016 09:32 PM, Yaniv Gardi wrote: > Some vendor's UFS device sends back to back NACs for the DL data frames > causing the host controller to raise the DFES error status. Sometimes > such UFS devices send back to back NAC without waiting for new > retransmitted DL frame from the host and in such cases it might be > possible the Host UniPro goes into bad state without raising the DFES > error interrupt. If this happens then all the pending commands would > timeout only after respective SW command (which is generally too > large). > > This change workarounds such device behaviour like this: > - As soon as SW sees the DL NAC error, it would schedule the error > handler > - Error handler would sleep for 50ms to see if there any fatal errors > raised by UFS controller. > - If there are fatal errors then SW does normal error recovery. > - If there are no fatal errors then SW sends the NOP command to > device to check if link is alive. > - If NOP command times out, SW does normal error recovery > - If NOP command succeed, skip the error handling. > > If DL NAC error is seen multiple times with some vendor's UFS devices > then enable this quirk to initiate quick error recovery and also > silence related error logs to reduce spamming of kernel logs. > > Signed-off-by: Subhash Jadavani > Signed-off-by: Yaniv Gardi > > --- > drivers/scsi/ufs/ufshcd.c | 93 +++++++++++++++++++++++++++++++++++++++++++++++ > drivers/scsi/ufs/ufshci.h | 2 + > 2 files changed, 95 insertions(+) > Reviewed-by: Hannes Reinecke Cheers, Hannes -- Dr. Hannes Reinecke zSeries & Storage hare@suse.de +49 911 74053 688 SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg GF: J. Hawn, J. Guild, F. Imendörffer, HRB 16746 (AG Nürnberg)