Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751357AbeABSe6 (ORCPT + 1 other); Tue, 2 Jan 2018 13:34:58 -0500 Received: from smtp.codeaurora.org ([198.145.29.96]:59358 "EHLO smtp.codeaurora.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751029AbeABSe4 (ORCPT ); Tue, 2 Jan 2018 13:34:56 -0500 DMARC-Filter: OpenDMARC Filter v1.3.2 smtp.codeaurora.org A46EE60285 Authentication-Results: pdx-caf-mail.web.codeaurora.org; dmarc=none (p=none dis=none) header.from=codeaurora.org Authentication-Results: pdx-caf-mail.web.codeaurora.org; spf=none smtp.mailfrom=okaya@codeaurora.org Subject: Re: [PATCH v2 2/4] PCI/DPC/AER: Address Concurrency between AER and DPC To: Keith Busch Cc: Oza Pawandeep , Bjorn Helgaas , Philippe Ombredanne , Thomas Gleixner , Greg Kroah-Hartman , Kate Stewart , linux-pci@vger.kernel.org, linux-kernel@vger.kernel.org, Dongdong Liu , Gabriele Paoloni , Wei Zhang , Timur Tabi References: <1514532259-19383-1-git-send-email-poza@codeaurora.org> <1514532259-19383-3-git-send-email-poza@codeaurora.org> <20171229172324.GF16407@localhost.localdomain> <5e9ffecf-2da7-0014-9a62-e2ae10323ce3@codeaurora.org> <20180102171238.GB24386@localhost.localdomain> From: Sinan Kaya Message-ID: Date: Tue, 2 Jan 2018 13:34:52 -0500 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.5.0 MIME-Version: 1.0 In-Reply-To: <20180102171238.GB24386@localhost.localdomain> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Return-Path: On 1/2/2018 12:12 PM, Keith Busch wrote: > On Tue, Jan 02, 2018 at 08:25:08AM -0500, Sinan Kaya wrote: >>> 2. A DPC event suppresses the error message required for the Linux >>> AER driver to run. How can AER and DPC run concurrently? >>> >> >> As we briefly discussed in previous email exchanges, I think you are >> looking at a use case with a switch that supports DPC functionality. > > No, I'm interested in DPC in a general. > >> Oza and I are looking at a root port functionality with DPC feature. >> >> As you already know, AER errors are logged to AER capability register >> independent of the DPC driver presence. > > The error is noted in the Uncorrectable Error Status Register if that's > what triggered the DPC event. This register has nothing to do with the > Root Error Status Register, which is required to have received an error > Message in order to have a status for the AER driver. > >> A root port is also allowed to share the MSI interrupts across DPC and >> AER. >> >> Therefore, when a DPC interrupt fires; both AER driver and DPC driver >> starts recovery work. This is the issue we are trying to deal with. > > If DPC is implemented correctly, the AER Root Status can't have an > uncorrectable status for the driver to deal with. The only thing the AER > driver could possibly see is a correctable error if DPC ERR_COR Enable > is set. > >> In the end, the driver needs to work for both root port and switches. >> I think you verified it against a switch. We are doing the same for a >> root port and submitting the plumbing code. > > I think we need to consider the possibility you are enabling a platform > that implemented DPC incorrectly. There's nothing in the specification > that says that DPC enabled root ports are not to discard the error message > if it came from downstream, or skip signalling the message for root port > detected errors. > I'll circle this with the HW team. The current code still doesn't handle outstanding transactions properly. We can probably split the patch into two and deal with this aspect later. -- Sinan Kaya Qualcomm Datacenter Technologies, Inc. as an affiliate of Qualcomm Technologies, Inc. Qualcomm Technologies, Inc. is a member of the Code Aurora Forum, a Linux Foundation Collaborative Project.