2013-03-08 09:05:38

by Qian Cai

[permalink] [raw]
Subject: be2net failed to initialize regression

Emulex CNA card failed to initialize using 3.8 and the latest upstream kernel,

[ 87.479859] be2net 0000:04:00.0: POST timeout; stage=0xc911
[ 87.515978] be2net 0000:04:00.0: Emulex OneConnect initialization failed
[ 87.557130] be2net: probe of 0000:04:00.0 failed with error -1

lspci output,

04:00.0 Ethernet controller: Emulex Corporation OneConnect 10Gb NIC (rev 02)
04:00.1 Ethernet controller: Emulex Corporation OneConnect 10Gb NIC (rev 02)

04:00.1 Ethernet controller: Emulex Corporation OneConnect 10Gb NIC (rev 02)
Subsystem: Hewlett-Packard Company NC551i Dual Port FlexFabric 10Gb Adapter

Confirmed no such problem using 3.7 kernel. Reproduced every time and still
bisecting. Just want to give an early head-up to see if anyone saw sometime
obvious.

CAI Qian


2013-03-08 10:22:38

by Sathya Perla

[permalink] [raw]
Subject: RE: be2net failed to initialize regression

> -----Original Message-----
> From: [email protected] [mailto:[email protected]]
> On Behalf Of CAI Qian
>
> Emulex CNA card failed to initialize using 3.8 and the latest upstream kernel,
>
> [ 87.479859] be2net 0000:04:00.0: POST timeout; stage=0xc911
> [ 87.515978] be2net 0000:04:00.0: Emulex OneConnect initialization failed
> [ 87.557130] be2net: probe of 0000:04:00.0 failed with error -1
>
> lspci output,
>
> 04:00.0 Ethernet controller: Emulex Corporation OneConnect 10Gb NIC (rev 02)
> 04:00.1 Ethernet controller: Emulex Corporation OneConnect 10Gb NIC (rev 02)
>
> 04:00.1 Ethernet controller: Emulex Corporation OneConnect 10Gb NIC (rev 02)
> Subsystem: Hewlett-Packard Company NC551i Dual Port FlexFabric 10Gb
> Adapter
>
> Confirmed no such problem using 3.7 kernel. Reproduced every time and still
> bisecting. Just want to give an early head-up to see if anyone saw sometime
> obvious.

Could you give me the FW version (ethtool -i) of the adapter (after be2net successfully
probes in a 3.7 kernel.)

If the FW version is as old as 2.x, then the culprit commit that broke compatibility with old FW versions
on some (BE2) chips I is:
commit 1bc8e7e4f36c0c19dd7dea29e7c248b7c6ef3a15
be2net: fix access to SEMAPHORE reg

The fix for this is (still on David's net tree I guess):
commit c5b3ad4c67989c778e4753be4f91dc7193a04d21
be2net: use CSR-BAR SEMAPHORE reg for BE2/BE3

Dave, can these 2 commits be queued for stable too:
commit1: c5b3ad4c67989c778e4753be4f91dc7193a04d21
commit2: 1bc8e7e4f36c0c19dd7dea29e7c248b7c6ef3a15

thanks,
-Sathya
????{.n?+???????+%?????ݶ??w??{.n?+????{??G?????{ay?ʇڙ?,j??f???h?????????z_??(?階?ݢj"???m??????G????????????&???~???iO???z??v?^?m???? ????????I?

2013-03-11 02:07:51

by Qian Cai

[permalink] [raw]
Subject: Re: be2net failed to initialize regression



----- Original Message -----
> From: "Sathya Perla" <[email protected]>
> To: "CAI Qian" <[email protected]>, [email protected]
> Cc: "Ivan Vecera" <[email protected]>, "LKML" <[email protected]>
> Sent: Friday, March 8, 2013 6:22:24 PM
> Subject: RE: be2net failed to initialize regression
>
> > -----Original Message-----
> > From: [email protected]
> > [mailto:[email protected]]
> > On Behalf Of CAI Qian
> >
> > Emulex CNA card failed to initialize using 3.8 and the latest
> > upstream kernel,
> >
> > [ 87.479859] be2net 0000:04:00.0: POST timeout; stage=0xc911
> > [ 87.515978] be2net 0000:04:00.0: Emulex OneConnect
> > initialization failed
> > [ 87.557130] be2net: probe of 0000:04:00.0 failed with error -1
> >
> > lspci output,
> >
> > 04:00.0 Ethernet controller: Emulex Corporation OneConnect 10Gb NIC
> > (rev 02)
> > 04:00.1 Ethernet controller: Emulex Corporation OneConnect 10Gb NIC
> > (rev 02)
> >
> > 04:00.1 Ethernet controller: Emulex Corporation OneConnect 10Gb NIC
> > (rev 02)
> > Subsystem: Hewlett-Packard Company NC551i Dual Port
> > FlexFabric 10Gb
> > Adapter
> >
> > Confirmed no such problem using 3.7 kernel. Reproduced every time
> > and still
> > bisecting. Just want to give an early head-up to see if anyone saw
> > sometime
> > obvious.
>
> Could you give me the FW version (ethtool -i) of the adapter (after
> be2net successfully
> probes in a 3.7 kernel.)
firmware-version: 2.104.281.0
>
> If the FW version is as old as 2.x, then the culprit commit that
> broke compatibility with old FW versions
> on some (BE2) chips I is:
> commit 1bc8e7e4f36c0c19dd7dea29e7c248b7c6ef3a15
> be2net: fix access to SEMAPHORE reg
>
> The fix for this is (still on David's net tree I guess):
> commit c5b3ad4c67989c778e4753be4f91dc7193a04d21
> be2net: use CSR-BAR SEMAPHORE reg for BE2/BE3
>
> Dave, can these 2 commits be queued for stable too:
> commit1: c5b3ad4c67989c778e4753be4f91dc7193a04d21
> commit2: 1bc8e7e4f36c0c19dd7dea29e7c248b7c6ef3a15
>
> thanks,
> -Sathya
>

2013-03-11 11:07:52

by Sathya Perla

[permalink] [raw]
Subject: RE: be2net failed to initialize regression

> -----Original Message-----
> From: Gavin Shan [mailto:[email protected]]
> >>
> >> Could you give me the FW version (ethtool -i) of the adapter (after
> >> be2net successfully probes in a 3.7 kernel.)
> >firmware-version: 2.104.281.0
> >>
> >> If the FW version is as old as 2.x, then the culprit commit that
> >> broke compatibility with old FW versions on some (BE2) chips I is:
> >> commit 1bc8e7e4f36c0c19dd7dea29e7c248b7c6ef3a15
> >> be2net: fix access to SEMAPHORE reg
> >>
> >> The fix for this is (still on David's net tree I guess):
> >> commit c5b3ad4c67989c778e4753be4f91dc7193a04d21
> >> be2net: use CSR-BAR SEMAPHORE reg for BE2/BE3
>
> Sathya, the fix introduced to the following patch wouldn't be safe enough
> because it possiblly causes race condition: the f/w is resetted after detecting
> EEH errors and the f/w is far from ready yet. At that point, accessing CSR-BAR
> register would incur additional EEH error.
> Unfortunately, the corresponding PE (Partitioning Endpoint), to which the
> problematic adapter belongs, has been marked as frozen state. So the additional
> EEH error won't be recoverred at all. Eventually, it will lead to failure on
> resuming the adapter :-)

Gavin, the SEMAPHORE register is read/polled-on only in be_eeh_reset(), which
is called only after the adapter is reset. Why will this read incur an additional EEH error?

>
>
> be2net: use CSR-BAR SEMAPHORE reg for BE2/BE3
>
> I'm thinking that we would still check POST status through PCI-CFG register and
> then ensure CSR-BAR on the problematic adapter is ready while resuming the
> adapter. That's just like what the patches I send do :-)

On BE2/BE3 chips, the PCI-CFG register cannot be relied on. As I mentioned in my
previous mails, it returns the wrong FW ready state.