New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 798034 link

Starred by 2 users

Issue metadata

Status: Assigned
Owner:
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux
Pri: 3
Type: Bug



Sign in to add a comment

chromium using deprecated ethtool to get link settings

Reported by stephen....@gmail.com, Dec 29 2017

Issue description

Chrome Version       : 63.0.3239.84 (Developer Build) built on Debian 9.3, running on Debian 9.3 (64-bit)
URLs (if applicable) :
Other browsers tested:
  Add OK or FAIL, along with the version, after other browsers where you
have tested this issue:
     Safari:
    Firefox:
       Edge:

What steps will reproduce the problem?
(1) Start chrome on Debian with kernel >= 4.6
(2) Look at kernel log with dmesg


What is the expected result?

Chrome should be using trying new ethtool ETHTOOL_GLINKSETTING first
and only use ETHTOOL_GSET as fallback.

This would eliminate the kernel warning.


What happens instead?

Kernel warning confuses users, especially since task name is not chromium because it has set thread name

Upstream kernel commit 3f1ac7a700d0 ("net: ethtool: add new ETHTOOL_xLINKSETTINGS API")


Kernel log:
warning: `NetworkChangeNo' uses legacy ethtool link settings API, link modes are only partially reported

 
Cc: sc00335...@techmahindra.com
Labels: Needs-Triage-M63 Triaged-ET TE-NeedsTriageHelp
This issue is out of TE scope as this requires understanding of Kernel log. Adding TE-NeedsTriageHelp for further triaging from dev team.

Thanks!
Components: Internals>Network
Labels: OS-Linux
Components: -Internals>Network Internals>Network>Connectivity
Owner: pauljensen@chromium.org
Status: Untriaged (was: Unconfirmed)
Paul: Could you review for priority/assignment? Seems your wheelhouse :)
When ETHTOOL_GLINKSETTING fails I need a way to determine if it's due to the device not being an ethernet interface versus ETHTOOL_GLINKSETTING not being supported.  I see EPERM and EOPNOTSUPP on older kernels that don't support ETHTOOL_GLINKSETTING, but I don't have a >=4.6 kernel sitting around to try.
The method used by ethtool git://
git.kernel.org/pub/scm/network/ethtool/ethtool.git is to try the new
ETHTOOL_GLINKSETTING first and fall back to ETHTOOL_GET if that fails.

link_usettings = do_ioctl_glinksettings(ctx);
if (link_usettings == NULL)
link_usettings = do_ioctl_gset(ctx);
if (link_usettings == NULL) {
perror("Cannot get current device settings");
err = -1;
I think ethtool is specifically for operating on Ethernet devices, while Chromium's use of SIOCETHTOOL is for the purpose of determining if a network interface is an Ethernet device.  If Chromium uses ETHTOOL_GLINKSETTINGS and it fails, we don't know if that's due to the network interface not being an Ethernet device, or due to the kernel not supporting ETHTOOL_GLINKSETTINGS.  If we simply try ETHTOOL_GSET whenever ETHTOOL_GLINKSETTINGS fails, we'll continue to see the the kernel warnings on newer kernels when we query on WiFi devices.
Status: Assigned (was: Untriaged)

Sign in to add a comment