lkml.org 
[lkml]   [2021]   [Sep]   [20]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.14 119/217] PCI: aardvark: Increase polling delay to 1.5s while waiting for PIO response
    Date
    From: Pali Rohár <pali@kernel.org>

    commit 02bcec3ea5591720114f586960490b04b093a09e upstream.

    Measurements in different conditions showed that aardvark hardware PIO
    response can take up to 1.44s. Increase wait timeout from 1ms to 1.5s to
    ensure that we do not miss responses from hardware. After 1.44s hardware
    returns errors (e.g. Completer abort).

    The previous two patches fixed checking for PIO status, so now we can use
    it to also catch errors which are reported by hardware after 1.44s.

    After applying this patch, kernel can detect and print PIO errors to dmesg:

    [ 6.879999] advk-pcie d0070000.pcie: Non-posted PIO Response Status: CA, 0xe00 @ 0x100004
    [ 6.896436] advk-pcie d0070000.pcie: Posted PIO Response Status: COMP_ERR, 0x804 @ 0x100004
    [ 6.913049] advk-pcie d0070000.pcie: Posted PIO Response Status: COMP_ERR, 0x804 @ 0x100010
    [ 6.929663] advk-pcie d0070000.pcie: Non-posted PIO Response Status: CA, 0xe00 @ 0x100010
    [ 6.953558] advk-pcie d0070000.pcie: Posted PIO Response Status: COMP_ERR, 0x804 @ 0x100014
    [ 6.970170] advk-pcie d0070000.pcie: Non-posted PIO Response Status: CA, 0xe00 @ 0x100014
    [ 6.994328] advk-pcie d0070000.pcie: Posted PIO Response Status: COMP_ERR, 0x804 @ 0x100004

    Without this patch kernel prints only a generic error to dmesg:

    [ 5.246847] advk-pcie d0070000.pcie: config read/write timed out

    Link: https://lore.kernel.org/r/20210722144041.12661-3-pali@kernel.org
    Signed-off-by: Pali Rohár <pali@kernel.org>
    Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
    Reviewed-by: Marek Behún <kabel@kernel.org>
    Cc: stable@vger.kernel.org # 7fbcb5da811b ("PCI: aardvark: Don't rely on jiffies while holding spinlock")
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    ---
    drivers/pci/host/pci-aardvark.c | 2 +-
    1 file changed, 1 insertion(+), 1 deletion(-)

    --- a/drivers/pci/host/pci-aardvark.c
    +++ b/drivers/pci/host/pci-aardvark.c
    @@ -185,7 +185,7 @@
    (PCIE_CONF_BUS(bus) | PCIE_CONF_DEV(PCI_SLOT(devfn)) | \
    PCIE_CONF_FUNC(PCI_FUNC(devfn)) | PCIE_CONF_REG(where))

    -#define PIO_RETRY_CNT 500
    +#define PIO_RETRY_CNT 750000 /* 1.5 s */
    #define PIO_RETRY_DELAY 2 /* 2 us*/

    #define LINK_WAIT_MAX_RETRIES 10

    \
     
     \ /
      Last update: 2021-09-20 19:37    [W:6.707 / U:0.008 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site