lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20210811133006.1c9aa6db@kicinski-fedora-pc1c0hjn.dhcp.thefacebook.com>
Date:   Wed, 11 Aug 2021 13:30:06 -0700
From:   Jakub Kicinski <kuba@...nel.org>
To:     Ido Schimmel <idosch@...sch.org>
Cc:     Andrew Lunn <andrew@...n.ch>,
        "Keller, Jacob E" <jacob.e.keller@...el.com>,
        netdev@...r.kernel.org, davem@...emloft.net, mkubecek@...e.cz,
        pali@...nel.org, vadimp@...dia.com, mlxsw@...dia.com,
        Ido Schimmel <idosch@...dia.com>
Subject: Re: [RFC PATCH net-next 1/8] ethtool: Add ability to control
 transceiver modules' low power mode

On Wed, 11 Aug 2021 22:37:53 +0300 Ido Schimmel wrote:
> On Wed, Aug 11, 2021 at 04:36:13PM +0200, Andrew Lunn wrote:
> > On Wed, Aug 11, 2021 at 06:03:43AM -0700, Jakub Kicinski wrote:  
> > > Oh, so if we set low-power true the carrier will never show up?
> > > I thought Andrew suggested the setting is only taken into account 
> > > when netdev is down.  
> > 
> > Yes, that was my intention. If this low power mode also applies when
> > the interface is admin up, it sounds like a foot gun. ip link show
> > gives you no idea why the carrier is down, and people will assume the
> > cable or peer is broken. We at least need a new flag, LOWER_DISABLED
> > or similar to give the poor user some chance to figure out what is
> > going on.  
> 
> The canonical way to report such errors is via LINKSTATE_GET and I will
> add an extended sub-state describing the problem.
>  
> > To me, this setting should only apply when the link is admin down.  
> 
> I don't want to bake such an assumption into the kernel, but I have a
> suggestion that resolves the issue.
> 
> We currently have a single attribute that encodes the desired state on
> SET messages and the operational state on GET_REPLY messages
> (ETHTOOL_A_MODULE_LOW_POWER_ENABLED):
> 
> $ ethtool --show-module swp11
> Module parameters for swp11:
> low-power true
> 
> It is not defined very well when a module is not connected despite being
> a very interesting use case. We really need to have two attributes. The
> first one describing the power mode policy and the second one describing
> the operational power mode which is only reported when a module is
> plugged in.
> 
> For the policy we can have these values:
> 
> 1. low: Always transition the module to low power mode
> 2. high: Always transition the module to high power mode
> 3. high-on-up: Transition the module to high power mode when a port
> using it is administratively up. Otherwise, low
> 
> A different policy for up/down seems like an overkill for me.
> 
> See example usage below.
> 
> No module connected:
> 
> $ ethtool --show-module swp11
> Module parameters for swp11:
> power-mode-policy high
> 
> Like I mentioned before, this is the default on Mellanox systems so this
> new attribute allows user space to query the default policy.
> 
> Change to a different policy:
> 
> # ethtool --set-module swp11 power-mode-policy high-on-up
> 
> $ ethtool --show-module swp11
> Module parameters for swp11:
> power-mode-policy high-on-up
> 
> After a module was connected:
> 
> $ ethtool --show-module swp11
> Module parameters for swp11:
> power-mode-policy high-on-up
> power-mode low
> 
> # ip link set dev swp11 up
> 
> $ ethtool --show-module swp11
> Module parameters for swp11:
> power-mode-policy high-on-up
> low-power high
> 
> # ip link set dev swp11 down
> 
> # ethtool --set-module swp11 power-mode-policy low
> 
> # ip link set dev swp11 up
> 
> $ ethtool swp11
> ...
> Link detected: no (Cable issue, Module is in low power mode)
> 
> I'm quite happy with the above. Might change a few things as I implement
> it, but you get the gist. WDYT?

Isn't the "low-power" attr just duplicating the relevant bits from -m?

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ