[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <e13eec965ab1473823faf65b7a0a2d7d@walle.cc>
Date: Thu, 04 Feb 2021 14:51:41 +0100
From: Michael Walle <michael@...le.cc>
To: Vladimir Oltean <vladimir.oltean@....com>
Cc: "David S . Miller" <davem@...emloft.net>,
Jakub Kicinski <kuba@...nel.org>, netdev@...r.kernel.org,
Claudiu Manoil <claudiu.manoil@....com>,
Alexandru Marginean <alexandru.marginean@....com>
Subject: Re: [PATCH net] net: enetc: initialize the RFS and RSS memories
Am 2021-02-04 14:45, schrieb Vladimir Oltean:
> Michael tried to enable Advanced Error Reporting through the ENETC's
> Root Complex Event Collector, and the system started spitting out
> single
> bit correctable ECC errors coming from the ENETC interfaces:
>
> pcieport 0000:00:1f.0: AER: Multiple Corrected error received:
> 0000:00:00.0
> fsl_enetc 0000:00:00.0: PCIe Bus Error: severity=Corrected,
> type=Transaction Layer, (Receiver ID)
> fsl_enetc 0000:00:00.0: device [1957:e100] error
> status/mask=00004000/00000000
> fsl_enetc 0000:00:00.0: [14] CorrIntErr
> fsl_enetc 0000:00:00.1: PCIe Bus Error: severity=Corrected,
> type=Transaction Layer, (Receiver ID)
> fsl_enetc 0000:00:00.1: device [1957:e100] error
> status/mask=00004000/00000000
> fsl_enetc 0000:00:00.1: [14] CorrIntErr
>
> Further investigating the port correctable memory error detect register
> (PCMEDR) shows that these AER errors have an associated SOURCE_ID of 6
> (RFS/RSS):
>
> $ devmem 0x1f8010e10 32
> 0xC0000006
> $ devmem 0x1f8050e10 32
> 0xC0000006
>
> Discussion with the hardware design engineers reveals that on LS1028A,
> the hardware does not do initialization of that RFS/RSS memory, and
> that
> software should clear/initialize the entire table before starting to
> operate. That comes as a bit of a surprise, since the driver does not
> do
> initialization of the RFS memory. Also, the initialization of the
> Receive Side Scaling is done only partially.
>
> Even though the entire ENETC IP has a single shared flow steering
> memory, the flow steering service should returns matches only for TCAM
> entries that are within the range of the Station Interface that is
> doing
> the search. Therefore, it should be sufficient for a Station Interface
> to initialize all of its own entries in order to avoid any ECC errors,
> and only the Station Interfaces in use should need initialization.
>
> There are Physical Station Interfaces associated with PCIe PFs and
> Virtual Station Interfaces associated with PCIe VFs. We let the PF
> driver initialize the entire port's memory, which includes the RFS
> entries which are going to be used by the VF.
>
> Reported-by: Michael Walle <michael@...le.cc>
> Fixes: d4fd0404c1c9 ("enetc: Introduce basic PF and VF ENETC ethernet
> drivers")
> Signed-off-by: Vladimir Oltean <vladimir.oltean@....com>
Tested-by: Michael Walle <michael@...le.cc>
Thanks Vladimir!
-michael
Powered by blists - more mailing lists