From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id BB1FCA046B for ; Mon, 22 Jul 2019 07:52:53 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id BA0F31B945; Mon, 22 Jul 2019 07:52:52 +0200 (CEST) Received: from EUR03-VE1-obe.outbound.protection.outlook.com (mail-eopbgr50069.outbound.protection.outlook.com [40.107.5.69]) by dpdk.org (Postfix) with ESMTP id E930558C6 for ; Mon, 22 Jul 2019 07:52:50 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=L7CCuhxmWbtcj4znKQ4+9KbxpKWeHVfCC+7EEeXqWGH7Uhf5ouz0cRXw/+hBqFTRJZDcT0BYE3IkI0F0bbeL2Zinous1o82VeV8Z+GpgszQQRagZmfcbrYF6ZML/WVTsldiIBikF0VSgxM6F6Ep8gp/2ZdB9fg6QPvWNysZjFSx0xJiuzpxP1yhPSxB0rSiqiMAmDueplLx17qPWRFo6r9FAZH+WjLuyL+T7To/94+3txJ1Uuu1zOgGHnqMjWtIpsG7rX9hFjGk34B8jSMWaq6xYrHZB+cG9wVm3VvOFPIEj33cINPE05oPzdOBe8DpBUsWsukoSnGrvvzfcTkIC2Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=bFkvsD2WvS2N9kflQHYd4PQYX/nE+i0sADsGCBLvzeo=; b=oV4sUlqpotUtdywnmyRV/aNXTA8s8dtw4ErPuQRlnhlNWcj5+gGQjuXLfywUyGeZ2/S3xW79jgx4p+6iPtXW4CwHU6mA/ZU/LvCqdVPgdGOu9Yqy+gSlk3Jzrlqb5k8er4OnheauKqAiFpWZbq9EujtYV8mOylMdi7x22v7F7kEGU0NhnHDeEbTQSs2+8BoFiUziRCfvIFxZesr8HlkalDz/oIJBxHmLNbkVro/dYMirLFeEuyBQy8/L01VvF9wP3hTblxtBaKuYNO9ttjTJUuaSNvM1Z90wKOglCMNfHQibimr0s65lMxsQ4KaJE1S9YdT+3aYDnqaSYoygw3GGHg== ARC-Authentication-Results: i=1; mx.microsoft.com 1;spf=pass smtp.mailfrom=mellanox.com;dmarc=pass action=none header.from=mellanox.com;dkim=pass header.d=mellanox.com;arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Mellanox.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=bFkvsD2WvS2N9kflQHYd4PQYX/nE+i0sADsGCBLvzeo=; b=nWJuwxIQhvLEXUIzb0qM7H36L74oE2OZuLOut2a6f/cw9EX4lhToBL/6XKeqv8vf+1YSugC8QQjun0vXxJbzBeGbghn8593UxU6XEtn6b03QOI0e5QYAbGAHLnSzoXp/i6D3Gu+Dj6POS9kgSDdnwWgdd+sEAL2f7Xw4gwhGW0k= Received: from DB3PR0502MB3980.eurprd05.prod.outlook.com (52.134.72.27) by DB3PR0502MB3946.eurprd05.prod.outlook.com (52.134.71.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2094.15; Mon, 22 Jul 2019 05:52:49 +0000 Received: from DB3PR0502MB3980.eurprd05.prod.outlook.com ([fe80::69c1:c0d7:1fa1:f89f]) by DB3PR0502MB3980.eurprd05.prod.outlook.com ([fe80::69c1:c0d7:1fa1:f89f%6]) with mapi id 15.20.2094.013; Mon, 22 Jul 2019 05:52:49 +0000 From: Yongseok Koh To: Slava Ovsiienko CC: dev , Shahaf Shuler , "stephen@networkplumber.org" Thread-Topic: [PATCH v2 1/2] net/mlx5: cache the associated network device ifindex Thread-Index: AQHVP9SSACGYQKRZvkGm1Nsfpxu2MqbWI7eA Date: Mon, 22 Jul 2019 05:52:49 +0000 Message-ID: <99FCF885-1DC9-4EF0-942A-2B7E0BACDADF@mellanox.com> References: <1563514305-27405-1-git-send-email-viacheslavo@mellanox.com> <1563721001-3730-1-git-send-email-viacheslavo@mellanox.com> <1563721001-3730-2-git-send-email-viacheslavo@mellanox.com> In-Reply-To: <1563721001-3730-2-git-send-email-viacheslavo@mellanox.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: spf=none (sender IP is ) smtp.mailfrom=yskoh@mellanox.com; x-originating-ip: [69.181.245.183] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 817d56cd-d17f-4b73-4047-08d70e68d407 x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600148)(711020)(4605104)(1401327)(4618075)(2017052603328)(7193020); SRVR:DB3PR0502MB3946; x-ms-traffictypediagnostic: DB3PR0502MB3946: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:4941; x-forefront-prvs: 01068D0A20 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(4636009)(396003)(136003)(376002)(366004)(346002)(39860400002)(199004)(189003)(81166006)(81156014)(99286004)(8936002)(66066001)(64756008)(316002)(66446008)(54906003)(37006003)(68736007)(53546011)(76176011)(102836004)(6506007)(3846002)(6116002)(2906002)(4326008)(86362001)(36756003)(5660300002)(486006)(71190400001)(6486002)(14454004)(256004)(6436002)(6512007)(14444005)(6636002)(229853002)(305945005)(7736002)(33656002)(6862004)(8676002)(6246003)(53936002)(25786009)(91956017)(478600001)(476003)(76116006)(66946007)(66556008)(66476007)(26005)(2616005)(11346002)(71200400001)(186003)(446003); DIR:OUT; SFP:1101; SCL:1; SRVR:DB3PR0502MB3946; H:DB3PR0502MB3980.eurprd05.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; received-spf: None (protection.outlook.com: mellanox.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: 4pTK1af0tl99d5/2ErrS3cepSKZ48YLntbdT1DSQOM5Ox2m7Jio7VwYnThEmnbqqSv1auTZ4S0ui4ZC5cxkuJCPgBe9y2UOB4Sl0Zzh/QEFhTU8c5NWKWxzUbCYHtI4p5r9xcqUbgivpoBhJA6eUJdo6o5f+q46kZX8x4WjDUJlIMQEo7CE2aJ3+N6XuUNE8e1QL/Fg0rJuf4zJ87eiSO4lSgDRcKRe1CjoHZxKSjM2UyD5i8hHO8TzshEKKgkJ1C5yCyqVx2IMChNE6t1UBMDy4fhP4JTwm+NpB1LrPDvzV9+NJOlFgQE1HvimS5z8ZMxg8b0FHWU4gRmXCZBK1MmjpsRbuJa/xMT3SsxXWaeBCVI8bN3oJRDdMhljEx+XZkfwHxhTW6Y3xE2TA1Jb+yHHQUuUI3QrpbpoTSafmoSo= Content-Type: text/plain; charset="us-ascii" Content-ID: Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-Network-Message-Id: 817d56cd-d17f-4b73-4047-08d70e68d407 X-MS-Exchange-CrossTenant-originalarrivaltime: 22 Jul 2019 05:52:49.1318 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: yskoh@mellanox.com X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB3PR0502MB3946 Subject: Re: [dpdk-dev] [PATCH v2 1/2] net/mlx5: cache the associated network device ifindex X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" > On Jul 21, 2019, at 7:56 AM, Viacheslav Ovsiienko wrote: >=20 > The associated device index is retrieved via Netlink request to > underlying Infiniband device driver. This network device index > is permanent throughout the lifetime of device. We do not > spawn the rte_eth_dev ports without associated network device, and > if network device is being unbound we get the remove notification > message and rte_eth_dev port is also detached. So, we may store > the ifindex in mlx5_device_spawn() routine at rte_eth_dev port > creation and initialization time and use the cached value further > instead of doing actual Netlink request. >=20 > Reported-by: Stephen Hemminger > Signed-off-by: Viacheslav Ovsiienko > --- Acked-by: Yongseok Koh > drivers/net/mlx5/mlx5.c | 7 +++++++ > drivers/net/mlx5/mlx5.h | 1 + > drivers/net/mlx5/mlx5_ethdev.c | 19 +++++++------------ > 3 files changed, 15 insertions(+), 12 deletions(-) >=20 > diff --git a/drivers/net/mlx5/mlx5.c b/drivers/net/mlx5/mlx5.c > index 608daed..2f6254b 100644 > --- a/drivers/net/mlx5/mlx5.c > +++ b/drivers/net/mlx5/mlx5.c > @@ -1630,6 +1630,13 @@ struct mlx5_dev_spawn_data { > eth_dev->data->dev_flags |=3D RTE_ETH_DEV_REPRESENTOR; > eth_dev->data->representor_id =3D priv->representor_id; > } > + /* > + * Store associated network device interface index. This index > + * is permanent throughout the lifetime of device. So, we may store > + * the ifindex here and use the cached value further. > + */ > + assert(spawn->ifindex); > + priv->if_index =3D spawn->ifindex; > eth_dev->data->dev_private =3D priv; > priv->dev_data =3D eth_dev->data; > eth_dev->data->mac_addrs =3D priv->mac; > diff --git a/drivers/net/mlx5/mlx5.h b/drivers/net/mlx5/mlx5.h > index a73375a..1011dcc 100644 > --- a/drivers/net/mlx5/mlx5.h > +++ b/drivers/net/mlx5/mlx5.h > @@ -465,6 +465,7 @@ struct mlx5_priv { > uint16_t domain_id; /* Switch domain identifier. */ > uint16_t vport_id; /* Associated VF vport index (if any). */ > int32_t representor_id; /* Port representor identifier. */ > + unsigned int if_index; /* Associated kernel network device index. */ > /* RX/TX queues. */ > unsigned int rxqs_n; /* RX queues array size. */ > unsigned int txqs_n; /* TX queues array size. */ > diff --git a/drivers/net/mlx5/mlx5_ethdev.c b/drivers/net/mlx5/mlx5_ethde= v.c > index 6c9bcf1..dfd9e97 100644 > --- a/drivers/net/mlx5/mlx5_ethdev.c > +++ b/drivers/net/mlx5/mlx5_ethdev.c > @@ -225,10 +225,7 @@ struct ethtool_link_settings { >=20 > assert(priv); > assert(priv->sh); > - ifindex =3D priv->nl_socket_rdma >=3D 0 ? > - mlx5_nl_ifindex(priv->nl_socket_rdma, > - priv->sh->ibdev_name, > - priv->ibv_port) : 0; > + ifindex =3D mlx5_ifindex(dev); > if (!ifindex) { > if (!priv->representor) > return mlx5_get_master_ifname(priv->sh->ibdev_path, > @@ -299,14 +296,14 @@ struct ethtool_link_settings { > unsigned int > mlx5_ifindex(const struct rte_eth_dev *dev) > { > - char ifname[IF_NAMESIZE]; > + struct mlx5_priv *priv =3D dev->data->dev_private; > unsigned int ifindex; >=20 > - if (mlx5_get_ifname(dev, &ifname)) > - return 0; > - ifindex =3D if_nametoindex(ifname); > + assert(priv); > + assert(priv->if_index); > + ifindex =3D priv->if_index; > if (!ifindex) > - rte_errno =3D errno; > + rte_errno =3D ENXIO; > return ifindex; > } >=20 > @@ -641,7 +638,6 @@ struct ethtool_link_settings { > struct mlx5_priv *priv =3D dev->data->dev_private; > struct mlx5_dev_config *config =3D &priv->config; > unsigned int max; > - char ifname[IF_NAMESIZE]; >=20 > /* FIXME: we should ask the device for these values. */ > info->min_rx_bufsize =3D 32; > @@ -662,8 +658,7 @@ struct ethtool_link_settings { > info->rx_offload_capa =3D (mlx5_get_rx_port_offloads() | > info->rx_queue_offload_capa); > info->tx_offload_capa =3D mlx5_get_tx_port_offloads(dev); > - if (mlx5_get_ifname(dev, &ifname) =3D=3D 0) > - info->if_index =3D if_nametoindex(ifname); > + info->if_index =3D mlx5_ifindex(dev); > info->reta_size =3D priv->reta_idx_n ? > priv->reta_idx_n : config->ind_table_max_size; > info->hash_key_size =3D MLX5_RSS_HASH_KEY_LEN; > --=20 > 1.8.3.1 >=20