Message ID | 54b537c6-aca4-45be-9df0-53c80a046930@dan.merillat.org (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | ethtool fails to read some QSFP+ modules. | expand |
Context | Check | Description |
---|---|---|
netdev/tree_selection | success | Not a local patch |
On Sun, Jun 30, 2024 at 01:27:07PM -0400, Dan Merillat wrote: > > I was testing an older Kaiam XQX2502 40G-LR4 and ethtool -m failed with netlink error. It's treating a failure to read > the optional page3 data as a hard failure. > > This patch allows ethtool to read qsfp modules that don't implement the voltage/temperature alarm data. Thanks for the report and the patch. Krzysztof Olędzki reported the same issue earlier this year: https://lore.kernel.org/netdev/9e757616-0396-4573-9ea9-3cb5ef5c901a@ans.pl/ Krzysztof, are you going to submit the ethtool and mlx4 patches? > From 3144fbfc08fbfb90ecda4848fc9356bde8933d4a Mon Sep 17 00:00:00 2001 > From: Dan Merillat <git@dan.eginity.com> > Date: Sun, 30 Jun 2024 13:11:51 -0400 > Subject: [PATCH] Some qsfp modules do not support page 3 > > Tested on an older Kaiam XQX2502 40G-LR4 module. > ethtool -m aborts with netlink error due to page 3 > not existing on the module. Ignore the error and > leave map->page_03h NULL. User space only tries to read this page because the module advertised it as supported. It is more likely that the NIC driver does not return all the pages. Which driver is it?
Forgot to add Krzysztof :p On Mon, Jul 01, 2024 at 10:28:39AM +0300, Ido Schimmel wrote: > On Sun, Jun 30, 2024 at 01:27:07PM -0400, Dan Merillat wrote: > > > > I was testing an older Kaiam XQX2502 40G-LR4 and ethtool -m failed with netlink error. It's treating a failure to read > > the optional page3 data as a hard failure. > > > > This patch allows ethtool to read qsfp modules that don't implement the voltage/temperature alarm data. > > Thanks for the report and the patch. Krzysztof Olędzki reported the same > issue earlier this year: > https://lore.kernel.org/netdev/9e757616-0396-4573-9ea9-3cb5ef5c901a@ans.pl/ > > Krzysztof, are you going to submit the ethtool and mlx4 patches? > > > From 3144fbfc08fbfb90ecda4848fc9356bde8933d4a Mon Sep 17 00:00:00 2001 > > From: Dan Merillat <git@dan.eginity.com> > > Date: Sun, 30 Jun 2024 13:11:51 -0400 > > Subject: [PATCH] Some qsfp modules do not support page 3 > > > > Tested on an older Kaiam XQX2502 40G-LR4 module. > > ethtool -m aborts with netlink error due to page 3 > > not existing on the module. Ignore the error and > > leave map->page_03h NULL. > > User space only tries to read this page because the module advertised it > as supported. It is more likely that the NIC driver does not return all > the pages. Which driver is it?
From 3144fbfc08fbfb90ecda4848fc9356bde8933d4a Mon Sep 17 00:00:00 2001 From: Dan Merillat <git@dan.eginity.com> Date: Sun, 30 Jun 2024 13:11:51 -0400 Subject: [PATCH] Some qsfp modules do not support page 3 Tested on an older Kaiam XQX2502 40G-LR4 module. ethtool -m aborts with netlink error due to page 3 not existing on the module. Ignore the error and leave map->page_03h NULL. --- qsfp.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/qsfp.c b/qsfp.c index a2921fb..0a16b42 100644 --- a/qsfp.c +++ b/qsfp.c @@ -1037,9 +1037,15 @@ sff8636_memory_map_init_pages(struct cmd_context *ctx, return 0; sff8636_request_init(&request, 0x3, SFF8636_PAGE_SIZE); + + /* Some modules are paged but do not have page 03h. This + * is a non-fatal error, and sff8636_dom_parse() handles this + * correctly. + */ ret = nl_get_eeprom_page(ctx, &request); if (ret < 0) - return ret; + return 0; + map->page_03h = request.data - SFF8636_PAGE_SIZE; return 0; -- 2.45.1