RE: [PATH for-next] RDMA/siw: Fix setting active_{speed, width} attributes

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



-----"Kamal Heib" <kamalheib1@xxxxxxxxx> wrote: -----

>To: "Bernard Metzler" <BMT@xxxxxxxxxxxxxx>
>From: "Kamal Heib" <kamalheib1@xxxxxxxxx>
>Date: 02/16/2020 02:43PM
>Cc: linux-rdma@xxxxxxxxxxxxxxx, "Jason Gunthorpe" <jgg@xxxxxxxx>,
>"Doug Ledford" <dledford@xxxxxxxxxx>
>Subject: [EXTERNAL] Re: [PATH for-next] RDMA/siw: Fix setting
>active_{speed, width} attributes
>
>On Thu, Feb 13, 2020 at 01:59:30PM +0000, Bernard Metzler wrote:
>> -----"Kamal Heib" <kamalheib1@xxxxxxxxx> wrote: -----
>> 
>> >To: linux-rdma@xxxxxxxxxxxxxxx
>> >From: "Kamal Heib" <kamalheib1@xxxxxxxxx>
>> >Date: 02/13/2020 02:07PM
>> >Cc: "Jason Gunthorpe" <jgg@xxxxxxxx>, "Doug Ledford"
>> ><dledford@xxxxxxxxxx>, "Bernard Metzler" <bmt@xxxxxxxxxxxxxx>,
>"Kamal
>> >Heib" <kamalheib1@xxxxxxxxx>
>> >Subject: [EXTERNAL] [PATH for-next] RDMA/siw: Fix setting
>> >active_{speed, width} attributes
>> >
>> >Make sure to set the active_{speed, width} attributes to avoid
>> >reporting
>> >the same values regardless of the underlying device.
>> >
>> >Fixes: 303ae1cdfdf7 ("rdma/siw: application interface")
>> >Signed-off-by: Kamal Heib <kamalheib1@xxxxxxxxx>
>> >---
>> > drivers/infiniband/sw/siw/siw_verbs.c | 7 ++++---
>> > 1 file changed, 4 insertions(+), 3 deletions(-)
>> >
>> >diff --git a/drivers/infiniband/sw/siw/siw_verbs.c
>> >b/drivers/infiniband/sw/siw/siw_verbs.c
>> >index 73485d0da907..b1aaec912edb 100644
>> >--- a/drivers/infiniband/sw/siw/siw_verbs.c
>> >+++ b/drivers/infiniband/sw/siw/siw_verbs.c
>> >@@ -165,11 +165,12 @@ int siw_query_port(struct ib_device
>*base_dev,
>> >u8 port,
>> > 		   struct ib_port_attr *attr)
>> > {
>> > 	struct siw_device *sdev = to_siw_dev(base_dev);
>> >+	int rc;
>> > 
>> > 	memset(attr, 0, sizeof(*attr));
>> > 
>> >-	attr->active_speed = 2;
>> >-	attr->active_width = 2;
>> >+	rc = ib_get_eth_speed(base_dev, port, &attr->active_speed,
>> >+			 &attr->active_width);
>> > 	attr->gid_tbl_len = 1;
>> > 	attr->max_msg_sz = -1;
>> > 	attr->max_mtu = ib_mtu_int_to_enum(sdev->netdev->mtu);
>> >@@ -192,7 +193,7 @@ int siw_query_port(struct ib_device *base_dev,
>u8
>> >port,
>> > 	 * attr->subnet_timeout = 0;
>> > 	 * attr->init_type_repy = 0;
>> > 	 */
>> >-	return 0;
>> >+	return rc;
>> > }
>> > 
>> > int siw_get_port_immutable(struct ib_device *base_dev, u8 port,
>> >-- 
>> >2.21.1
>> >
>> >
>> Hi Kamal, 
>
>Hi Bernard,
>
>> Many thanks for looking after this! So there definitely seem to 
>> be applications which are taking care of those values. So, good
>> to get my obvious laziness fixed.
>> 
>
>Sure :)
>
>> I tried your patch on a 40Gbs Ethernet link (Chelsio cxgb4 driver).
>> Works in principle, but reported numbers are off. I am not saying
>> I would get right numbers when using Chelsio HW iWarp (iw_cxgb4),
>> but it's closer to reality (using ibv_devinfo <ibname> -vv)
>> 
>> iw_cxgb4 driver:
>> ...
>>    active_width:           4X (2)
>>    active_speed:           25.0 Gbps (32)
>> 
>> siw driver with your patch:
>> ...
>>    active_width:           4X (2)
>>    active_speed:           10.0 Gbps (8)
>> 
>> Any idea how we can improve that, maybe coming even
>> close to reality (40Gbs)?
>
>Could you please share the output of ethtool <if_name> for the
>underlying
>net device that used for both iw_cxgb4 and siw?
>
H Kamal,

Sure! Speed looks correct, and its also what I get
at maximum:

[bmt@spoke ~]$ ethtool enp1s0f4 
Settings for enp1s0f4:
        Supported ports: [ FIBRE ]
        Supported link modes:   40000baseSR4/Full 
        Supported pause frame use: Symmetric
        Supports auto-negotiation: Yes
        Supported FEC modes: None
        Advertised link modes:  40000baseSR4/Full 
        Advertised pause frame use: Symmetric
        Advertised auto-negotiation: Yes
        Advertised FEC modes: None
        Link partner advertised link modes:  40000baseSR4/Full 
        Link partner advertised pause frame use: Symmetric
        Link partner advertised auto-negotiation: Yes
        Link partner advertised FEC modes: None
        Speed: 40000Mb/s
        Duplex: Full
        Port: Direct Attach Copper
        PHYAD: 255
        Transceiver: internal
        Auto-negotiation: on
Cannot get wake-on-lan settings: Operation not permitted
        Current message level: 0x000000ff (255)
                               drv probe link timer ifdown ifup rx_err tx_err
        Link detected: yes




[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Photo]     [Yosemite News]     [Yosemite Photos]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux