bnx2x: ppc64le: Unable to set message level greater than 0x7fff

8 messages, 4 authors, 2022-03-16 · open the first message on its own page

bnx2x: ppc64le: Unable to set message level greater than 0x7fff

From: Paul Menzel <hidden>
Date: 2022-03-15 21:59:35

Dear Linux folks,


On the POWER8 server IBM S822LC (ppc64le), I am unable to set the message level for the network device to 0x0100000 but it fails.

    $ sudo ethtool -s enP1p1s0f2 msglvl 0x0100000
    netlink error: cannot modify bits past kernel bitset size (offset 56)
    netlink error: Invalid argument

Below is more information. 0x7fff is the largest value I am able to set.
$ sudo ethtool -i enP1p1s0f2
driver: bnx2x
version: 5.17.0-rc7+
firmware-version: bc 7.10.4
expansion-rom-version:
bus-info: 0001:01:00.2
supports-statistics: yes
supports-test: yes
supports-eeprom-access: yes
supports-register-dump: yes
supports-priv-flags: yes
$ sudo ethtool -s enP1p1s0f2 msglvl 0x7fff
$ sudo ethtool enP1p1s0f2
Settings for enP1p1s0f2:
        Supported ports: [ TP ]
        Supported link modes:   10baseT/Half 10baseT/Full
                                100baseT/Half 100baseT/Full
                                1000baseT/Full
        Supported pause frame use: Symmetric Receive-only
        Supports auto-negotiation: Yes
        Supported FEC modes: Not reported
        Advertised link modes:  10baseT/Half 10baseT/Full
                                100baseT/Half 100baseT/Full
                                1000baseT/Full
        Advertised pause frame use: Symmetric Receive-only
        Advertised auto-negotiation: Yes
        Advertised FEC modes: Not reported
        Speed: Unknown!
        Duplex: Unknown! (255)
        Auto-negotiation: on
        Port: Twisted Pair
        PHYAD: 17
        Transceiver: internal
        MDI-X: Unknown
        Supports Wake-on: g
        Wake-on: d
        Current message level: 0x00007fff (32767)
                               drv probe link timer ifdown ifup rx_err tx_err tx_queued intr tx_done rx_status pktdata hw wol
        Link detected: no
$ sudo ethtool -s enP1p1s0f2 msglvl 0x8000
netlink error: cannot modify bits past kernel bitset size (offset 56)
netlink error: Invalid argument

Kind regards,

Paul


PS: This is unrelated to the other problem.

Re: bnx2x: ppc64le: Unable to set message level greater than 0x7fff

From: Jakub Kicinski <kuba@kernel.org>
Date: 2022-03-16 01:36:15

On Tue, 15 Mar 2022 22:58:57 +0100 Paul Menzel wrote:
On the POWER8 server IBM S822LC (ppc64le), I am unable to set the 
message level for the network device to 0x0100000 but it fails.

     $ sudo ethtool -s enP1p1s0f2 msglvl 0x0100000
     netlink error: cannot modify bits past kernel bitset size (offset 56)
     netlink error: Invalid argument

Below is more information. 0x7fff is the largest value I am able to set.
$ sudo ethtool -i enP1p1s0f2
driver: bnx2x
version: 5.17.0-rc7+
firmware-version: bc 7.10.4
expansion-rom-version:
bus-info: 0001:01:00.2
supports-statistics: yes
supports-test: yes
supports-eeprom-access: yes
supports-register-dump: yes
supports-priv-flags: yes
$ sudo ethtool -s enP1p1s0f2 msglvl 0x7fff
$ sudo ethtool enP1p1s0f2
Settings for enP1p1s0f2:
         Supported ports: [ TP ]
         Supported link modes:   10baseT/Half 10baseT/Full
                                 100baseT/Half 100baseT/Full
                                 1000baseT/Full
         Supported pause frame use: Symmetric Receive-only
         Supports auto-negotiation: Yes
         Supported FEC modes: Not reported
         Advertised link modes:  10baseT/Half 10baseT/Full
                                 100baseT/Half 100baseT/Full
                                 1000baseT/Full
         Advertised pause frame use: Symmetric Receive-only
         Advertised auto-negotiation: Yes
         Advertised FEC modes: Not reported
         Speed: Unknown!
         Duplex: Unknown! (255)
         Auto-negotiation: on
         Port: Twisted Pair
         PHYAD: 17
         Transceiver: internal
         MDI-X: Unknown
         Supports Wake-on: g
         Wake-on: d
         Current message level: 0x00007fff (32767)
                                drv probe link timer ifdown ifup rx_err 
tx_err tx_queued intr tx_done rx_status pktdata hw wol
         Link detected: no
$ sudo ethtool -s enP1p1s0f2 msglvl 0x8000
netlink error: cannot modify bits past kernel bitset size (offset 56)
netlink error: Invalid argument
The new ethtool-over-netlink API limits the msg levels to the ones
officially defined by the kernel (NETIF_MSG_CLASS_COUNT).

CC: Michal

Re: bnx2x: ppc64le: Unable to set message level greater than 0x7fff

From: Paul Menzel <hidden>
Date: 2022-03-16 05:17:32

Dear Jakub,


Am 16.03.22 um 02:35 schrieb Jakub Kicinski:
On Tue, 15 Mar 2022 22:58:57 +0100 Paul Menzel wrote:
quoted
On the POWER8 server IBM S822LC (ppc64le), I am unable to set the
message level for the network device to 0x0100000 but it fails.

      $ sudo ethtool -s enP1p1s0f2 msglvl 0x0100000
      netlink error: cannot modify bits past kernel bitset size (offset 56)
      netlink error: Invalid argument

Below is more information. 0x7fff is the largest value I am able to set.
$ sudo ethtool -i enP1p1s0f2
driver: bnx2x
version: 5.17.0-rc7+
firmware-version: bc 7.10.4
expansion-rom-version:
bus-info: 0001:01:00.2
supports-statistics: yes
supports-test: yes
supports-eeprom-access: yes
supports-register-dump: yes
supports-priv-flags: yes
$ sudo ethtool -s enP1p1s0f2 msglvl 0x7fff
$ sudo ethtool enP1p1s0f2
Settings for enP1p1s0f2:
          Supported ports: [ TP ]
          Supported link modes:   10baseT/Half 10baseT/Full
                                  100baseT/Half 100baseT/Full
                                  1000baseT/Full
          Supported pause frame use: Symmetric Receive-only
          Supports auto-negotiation: Yes
          Supported FEC modes: Not reported
          Advertised link modes:  10baseT/Half 10baseT/Full
                                  100baseT/Half 100baseT/Full
                                  1000baseT/Full
          Advertised pause frame use: Symmetric Receive-only
          Advertised auto-negotiation: Yes
          Advertised FEC modes: Not reported
          Speed: Unknown!
          Duplex: Unknown! (255)
          Auto-negotiation: on
          Port: Twisted Pair
          PHYAD: 17
          Transceiver: internal
          MDI-X: Unknown
          Supports Wake-on: g
          Wake-on: d
          Current message level: 0x00007fff (32767)
                                 drv probe link timer ifdown ifup rx_err tx_err tx_queued intr tx_done rx_status pktdata hw wol
          Link detected: no
$ sudo ethtool -s enP1p1s0f2 msglvl 0x8000
netlink error: cannot modify bits past kernel bitset size (offset 56)
netlink error: Invalid argument
The new ethtool-over-netlink API limits the msg levels to the ones
officially defined by the kernel (NETIF_MSG_CLASS_COUNT).

CC: Michal
Thank you for the prompt reply. So, it’s unrelated to the architecture, and to the Linux kernel version, as it works on x86_64 with Linux 5.10.x.

Michal, how do I turn on certain bnx2x messages?

    $ git grep BNX2X_MSG_SP drivers/net/ethernet/broadcom/bnx2x/bnx2x.h
    drivers/net/ethernet/broadcom/bnx2x/bnx2x.h:#define BNX2X_MSG_SP                      0x0100000 /* was: NETIF_MSG_INTR */


Kind regards,

Paul

Re: bnx2x: ppc64le: Unable to set message level greater than 0x7fff

From: Paul Menzel <hidden>
Date: 2022-03-16 05:34:12

Dear Jakub,


Sorry, one more addition.

Am 16.03.22 um 06:16 schrieb Paul Menzel:
Am 16.03.22 um 02:35 schrieb Jakub Kicinski:
quoted
On Tue, 15 Mar 2022 22:58:57 +0100 Paul Menzel wrote:
quoted
On the POWER8 server IBM S822LC (ppc64le), I am unable to set the
message level for the network device to 0x0100000 but it fails.

      $ sudo ethtool -s enP1p1s0f2 msglvl 0x0100000
      netlink error: cannot modify bits past kernel bitset size (offset 56)
      netlink error: Invalid argument

Below is more information. 0x7fff is the largest value I am able to set.
$ sudo ethtool -i enP1p1s0f2
driver: bnx2x
version: 5.17.0-rc7+
firmware-version: bc 7.10.4
expansion-rom-version:
bus-info: 0001:01:00.2
supports-statistics: yes
supports-test: yes
supports-eeprom-access: yes
supports-register-dump: yes
supports-priv-flags: yes
$ sudo ethtool -s enP1p1s0f2 msglvl 0x7fff
$ sudo ethtool enP1p1s0f2
Settings for enP1p1s0f2:
          Supported ports: [ TP ]
          Supported link modes:   10baseT/Half 10baseT/Full
                                  100baseT/Half 100baseT/Full
                                  1000baseT/Full
          Supported pause frame use: Symmetric Receive-only
          Supports auto-negotiation: Yes
          Supported FEC modes: Not reported
          Advertised link modes:  10baseT/Half 10baseT/Full
                                  100baseT/Half 100baseT/Full
                                  1000baseT/Full
          Advertised pause frame use: Symmetric Receive-only
          Advertised auto-negotiation: Yes
          Advertised FEC modes: Not reported
          Speed: Unknown!
          Duplex: Unknown! (255)
          Auto-negotiation: on
          Port: Twisted Pair
          PHYAD: 17
          Transceiver: internal
          MDI-X: Unknown
          Supports Wake-on: g
          Wake-on: d
          Current message level: 0x00007fff (32767)
                                 drv probe link timer ifdown ifup rx_err tx_err tx_queued intr tx_done rx_status pktdata hw wol
          Link detected: no
$ sudo ethtool -s enP1p1s0f2 msglvl 0x8000
netlink error: cannot modify bits past kernel bitset size (offset 56)
netlink error: Invalid argument
The new ethtool-over-netlink API limits the msg levels to the ones
officially defined by the kernel (NETIF_MSG_CLASS_COUNT).

CC: Michal
Thank you for the prompt reply. So, it’s unrelated to the architecture, and to the Linux kernel version, as it works on x86_64 with Linux 5.10.x.

Michal, how do I turn on certain bnx2x messages?

     $ git grep BNX2X_MSG_SP drivers/net/ethernet/broadcom/bnx2x/bnx2x.h
     drivers/net/ethernet/broadcom/bnx2x/bnx2x.h:#define BNX2X_MSG_SP                       0x0100000 /* was: NETIF_MSG_INTR */
Testing this on the x86_64 Dell OptiPlex 5055 with a Broadcom NetXtreme BCM5762 Gigabit Ethernet PCIe [14e4:1687], it still works.
$ uname -a
Linux serotimor.molgen.mpg.de 5.17.0-rc5.mx64.428 #1 SMP PREEMPT Mon Feb 21 04:00:47 CET 2022 x86_64 GNU/Linux
$ sudo ethtool -s net00 msglvl 0x0100000
$ ethtool net00
Settings for net00:
	Supported ports: [ TP ]
	Supported link modes:   10baseT/Half 10baseT/Full
	                        100baseT/Half 100baseT/Full
	                        1000baseT/Half 1000baseT/Full
	Supported pause frame use: No
	Supports auto-negotiation: Yes
	Advertised link modes:  10baseT/Half 10baseT/Full
	                        100baseT/Half 100baseT/Full
	                        1000baseT/Half 1000baseT/Full
	Advertised pause frame use: Symmetric
	Advertised auto-negotiation: Yes
	Link partner advertised link modes:  10baseT/Half 10baseT/Full
	                                     100baseT/Half 100baseT/Full
	                                     1000baseT/Full
	Link partner advertised pause frame use: No
	Link partner advertised auto-negotiation: Yes
	Speed: 1000Mb/s
	Duplex: Full
	Port: Twisted Pair
	PHYAD: 1
	Transceiver: internal
	Auto-negotiation: on
	MDI-X: off
Cannot get wake-on-lan settings: Operation not permitted
	Current message level: 0x00100000 (1048576)
			       0x100000
	Link detected: yes
$ sudo ethtool -s net00 msglvl 0xfffffff
$ ethtool net00
Settings for net00:
	Supported ports: [ TP ]
	Supported link modes:   10baseT/Half 10baseT/Full
	                        100baseT/Half 100baseT/Full
	                        1000baseT/Half 1000baseT/Full
	Supported pause frame use: No
	Supports auto-negotiation: Yes
	Advertised link modes:  10baseT/Half 10baseT/Full
	                        100baseT/Half 100baseT/Full
	                        1000baseT/Half 1000baseT/Full
	Advertised pause frame use: Symmetric
	Advertised auto-negotiation: Yes
	Link partner advertised link modes:  10baseT/Half 10baseT/Full
	                                     100baseT/Half 100baseT/Full
	                                     1000baseT/Full
	Link partner advertised pause frame use: No
	Link partner advertised auto-negotiation: Yes
	Speed: 1000Mb/s
	Duplex: Full
	Port: Twisted Pair
	PHYAD: 1
	Transceiver: internal
	Auto-negotiation: on
	MDI-X: off
Cannot get wake-on-lan settings: Operation not permitted
	Current message level: 0x0fffffff (268435455)
			       drv probe link timer ifdown ifup rx_err tx_err tx_queued intr tx_done rx_status pktdata hw wol 0xfff8000
	Link detected: yes

Kind regards,

Paul

Re: [EXT] Re: bnx2x: ppc64le: Unable to set message level greater than 0x7fff

From: Jakub Kicinski <kuba@kernel.org>
Date: 2022-03-16 18:18:38

On Wed, 16 Mar 2022 11:49:39 +0000 Manish Chopra wrote:
As ethtool over netlink has some limitations of the size,
I believe you can configure ethtool with "--disable-netlink" and set those message levels fine
Yup, IIUC it works for Paul on a 5.17 system, that system likely has
old ethtool user space tool which uses ioctls instead of netlink.

What makes the netlink path somewhat non-trivial is that there is 
an expectation that the communication can be based on names (strings)
as well as bit positions. I think we'd need a complete parallel
attribute to carry vendor specific bits :S

Re: [EXT] Re: bnx2x: ppc64le: Unable to set message level greater than 0x7fff

From: Michal Kubecek <hidden>
Date: 2022-03-16 18:53:20

On Wed, Mar 16, 2022 at 11:17:54AM -0700, Jakub Kicinski wrote:
On Wed, 16 Mar 2022 11:49:39 +0000 Manish Chopra wrote:
quoted
As ethtool over netlink has some limitations of the size,
I believe you can configure ethtool with "--disable-netlink" and set those message levels fine
Yup, IIUC it works for Paul on a 5.17 system, that system likely has
old ethtool user space tool which uses ioctls instead of netlink.

What makes the netlink path somewhat non-trivial is that there is 
an expectation that the communication can be based on names (strings)
as well as bit positions. I think we'd need a complete parallel
attribute to carry vendor specific bits :S
Yes, that would be a way to go. However, in such case I would prefer
separating these driver/device specific message flags completely rather
then letting drivers grab currently unused flags (as is the case here,
IIUC) as those are likely to collide with future global ones.

Michal

Re: [EXT] Re: bnx2x: ppc64le: Unable to set message level greater than 0x7fff

From: Jakub Kicinski <kuba@kernel.org>
Date: 2022-03-16 19:19:12

On Wed, 16 Mar 2022 19:52:32 +0100 Michal Kubecek wrote:
quoted
Yup, IIUC it works for Paul on a 5.17 system, that system likely has
old ethtool user space tool which uses ioctls instead of netlink.

What makes the netlink path somewhat non-trivial is that there is 
an expectation that the communication can be based on names (strings)
as well as bit positions. I think we'd need a complete parallel
attribute to carry vendor specific bits :S  
Yes, that would be a way to go. However, in such case I would prefer
separating these driver/device specific message flags completely rather
then letting drivers grab currently unused flags (as is the case here,
IIUC) as those are likely to collide with future global ones.
I was thinking let the driver specify which flags it is squatting on in
a mask in ethtool_ops, and then make sure the generic vs non-generic
flags are routed appropriately in the user space <> core communication.
We can also split the private vs generic on the ethtool_op level.

User space would have to jump thru extra hoops to figure the separation
out (maybe we can expose the "private mask" in get?)

I agree that the more we can separate the private and generic flags,
the better, that's just what I could come up with.

RE: [EXT] Re: bnx2x: ppc64le: Unable to set message level greater than 0x7fff

From: Manish Chopra <manishc@marvell.com>
Date: 2022-03-16 22:21:11

Hi Paul,
-----Original Message-----
From: Paul Menzel <redacted>
Sent: Wednesday, March 16, 2022 11:04 AM
To: Jakub Kicinski <kuba@kernel.org>; Michal Kubecek <redacted>
Cc: Ariel Elior <redacted>; Sudarsana Reddy Kalluru
[off-list ref]; Manish Chopra [off-list ref];
netdev@vger.kernel.org; linuxppc-dev@lists.ozlabs.org;
it+netdev@molgen.mpg.de
Subject: [EXT] Re: bnx2x: ppc64le: Unable to set message level greater than
0x7fff

External Email

----------------------------------------------------------------------
Dear Jakub,


Sorry, one more addition.

Am 16.03.22 um 06:16 schrieb Paul Menzel:
quoted
Am 16.03.22 um 02:35 schrieb Jakub Kicinski:
quoted
On Tue, 15 Mar 2022 22:58:57 +0100 Paul Menzel wrote:
quoted
On the POWER8 server IBM S822LC (ppc64le), I am unable to set the
message level for the network device to 0x0100000 but it fails.

      $ sudo ethtool -s enP1p1s0f2 msglvl 0x0100000
      netlink error: cannot modify bits past kernel bitset size
(offset 56)
      netlink error: Invalid argument

Below is more information. 0x7fff is the largest value I am able to set.
$ sudo ethtool -i enP1p1s0f2
driver: bnx2x
version: 5.17.0-rc7+
firmware-version: bc 7.10.4
expansion-rom-version:
bus-info: 0001:01:00.2
supports-statistics: yes
supports-test: yes
supports-eeprom-access: yes
supports-register-dump: yes
supports-priv-flags: yes
$ sudo ethtool -s enP1p1s0f2 msglvl 0x7fff $ sudo ethtool enP1p1s0f2
Settings for enP1p1s0f2:
          Supported ports: [ TP ]
          Supported link modes:   10baseT/Half 10baseT/Full
                                  100baseT/Half 100baseT/Full
                                  1000baseT/Full
          Supported pause frame use: Symmetric Receive-only
          Supports auto-negotiation: Yes
          Supported FEC modes: Not reported
          Advertised link modes:  10baseT/Half 10baseT/Full
                                  100baseT/Half 100baseT/Full
                                  1000baseT/Full
          Advertised pause frame use: Symmetric Receive-only
          Advertised auto-negotiation: Yes
          Advertised FEC modes: Not reported
          Speed: Unknown!
          Duplex: Unknown! (255)
          Auto-negotiation: on
          Port: Twisted Pair
          PHYAD: 17
          Transceiver: internal
          MDI-X: Unknown
          Supports Wake-on: g
          Wake-on: d
          Current message level: 0x00007fff (32767)
                                 drv probe link timer ifdown ifup
rx_err tx_err tx_queued intr tx_done rx_status pktdata hw wol
          Link detected: no
$ sudo ethtool -s enP1p1s0f2 msglvl 0x8000 netlink error: cannot
modify bits past kernel bitset size (offset 56) netlink error:
Invalid argument ```
The new ethtool-over-netlink API limits the msg levels to the ones
officially defined by the kernel (NETIF_MSG_CLASS_COUNT).

CC: Michal
Thank you for the prompt reply. So, it’s unrelated to the
architecture, and to the Linux kernel version, as it works on x86_64 with
Linux 5.10.x.
quoted
Michal, how do I turn on certain bnx2x messages?

     $ git grep BNX2X_MSG_SP
drivers/net/ethernet/broadcom/bnx2x/bnx2x.h
     drivers/net/ethernet/broadcom/bnx2x/bnx2x.h:#define BNX2X_MSG_SP
                      0x0100000 /* was: NETIF_MSG_INTR */
Testing this on the x86_64 Dell OptiPlex 5055 with a Broadcom NetXtreme
BCM5762 Gigabit Ethernet PCIe [14e4:1687], it still works.
$ uname -a
Linux serotimor.molgen.mpg.de 5.17.0-rc5.mx64.428 #1 SMP PREEMPT Mon
Feb
21 04:00:47 CET 2022 x86_64 GNU/Linux
$ sudo ethtool -s net00 msglvl 0x0100000 $ ethtool net00 Settings for net00:
	Supported ports: [ TP ]
	Supported link modes:   10baseT/Half 10baseT/Full
	                        100baseT/Half 100baseT/Full
	                        1000baseT/Half 1000baseT/Full
	Supported pause frame use: No
	Supports auto-negotiation: Yes
	Advertised link modes:  10baseT/Half 10baseT/Full
	                        100baseT/Half 100baseT/Full
	                        1000baseT/Half 1000baseT/Full
	Advertised pause frame use: Symmetric
	Advertised auto-negotiation: Yes
	Link partner advertised link modes:  10baseT/Half 10baseT/Full
	                                     100baseT/Half 100baseT/Full
	                                     1000baseT/Full
	Link partner advertised pause frame use: No
	Link partner advertised auto-negotiation: Yes
	Speed: 1000Mb/s
	Duplex: Full
	Port: Twisted Pair
	PHYAD: 1
	Transceiver: internal
	Auto-negotiation: on
	MDI-X: off
Cannot get wake-on-lan settings: Operation not permitted
	Current message level: 0x00100000 (1048576)
			       0x100000
	Link detected: yes
$ sudo ethtool -s net00 msglvl 0xfffffff $ ethtool net00 Settings for net00:
	Supported ports: [ TP ]
	Supported link modes:   10baseT/Half 10baseT/Full
	                        100baseT/Half 100baseT/Full
	                        1000baseT/Half 1000baseT/Full
	Supported pause frame use: No
	Supports auto-negotiation: Yes
	Advertised link modes:  10baseT/Half 10baseT/Full
	                        100baseT/Half 100baseT/Full
	                        1000baseT/Half 1000baseT/Full
	Advertised pause frame use: Symmetric
	Advertised auto-negotiation: Yes
	Link partner advertised link modes:  10baseT/Half 10baseT/Full
	                                     100baseT/Half 100baseT/Full
	                                     1000baseT/Full
	Link partner advertised pause frame use: No
	Link partner advertised auto-negotiation: Yes
	Speed: 1000Mb/s
	Duplex: Full
	Port: Twisted Pair
	PHYAD: 1
	Transceiver: internal
	Auto-negotiation: on
	MDI-X: off
Cannot get wake-on-lan settings: Operation not permitted
	Current message level: 0x0fffffff (268435455)
			       drv probe link timer ifdown ifup rx_err tx_err
tx_queued intr tx_done rx_status pktdata hw wol 0xfff8000
	Link detected: yes
As ethtool over netlink has some limitations of the size,
I believe you can configure ethtool with "--disable-netlink" and set those message levels fine

Thanks.


Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help