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.
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.
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.
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
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.
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.
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
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
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.
-----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.
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.
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.