From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR01-VE1-obe.outbound.protection.outlook.com (mail-eopbgr140081.outbound.protection.outlook.com [40.107.14.81]) by dpdk.org (Postfix) with ESMTP id 3F0341BB83 for ; Fri, 11 Jan 2019 12:58:52 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=uSwBuXjk3na+n0SgLfzsARRrOsYo9c63bFTscD+wjCY=; b=rro0xqL7Q0au9Sl5/cESKotI026H7PPgyKV6VcOjExzaBnajiPIaejRnvG5kDbM4kesJ2ACHsvis7rwG1v90k4j5Ze1DsAS0JMKSqYYBWyg0tpwpVqi3xnnoO36LhSh63uv221b63Dq0Utpb557UAv7Z2iuwVYZW3hAMHBsVy5Y= Received: from VI1PR04MB4688.eurprd04.prod.outlook.com (20.177.56.80) by VI1PR04MB2109.eurprd04.prod.outlook.com (10.166.43.25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1516.14; Fri, 11 Jan 2019 11:58:50 +0000 Received: from VI1PR04MB4688.eurprd04.prod.outlook.com ([fe80::b1eb:7e7e:7b90:7b4]) by VI1PR04MB4688.eurprd04.prod.outlook.com ([fe80::b1eb:7e7e:7b90:7b4%4]) with mapi id 15.20.1516.016; Fri, 11 Jan 2019 11:58:50 +0000 From: Shreyansh Jain To: "dev@dpdk.org" CC: "ferruh.yigit@intel.com" , Shreyansh Jain Thread-Topic: [PATCH v2 18/20] net/dpaa2: change reference to private device Thread-Index: AQHUqaUEzxJ7EVoHN0CL/MXgZRX/OA== Date: Fri, 11 Jan 2019 11:58:50 +0000 Message-ID: <20190111115712.6482-19-shreyansh.jain@nxp.com> References: <20181227062233.30781-1-hemant.agrawal@nxp.com> <20190111115712.6482-1-shreyansh.jain@nxp.com> In-Reply-To: <20190111115712.6482-1-shreyansh.jain@nxp.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [14.143.254.130] x-mailer: git-send-email 2.17.1 x-clientproxiedby: TY2PR01CA0030.jpnprd01.prod.outlook.com (2603:1096:404:ce::18) To VI1PR04MB4688.eurprd04.prod.outlook.com (2603:10a6:803:71::16) authentication-results: spf=none (sender IP is ) smtp.mailfrom=shreyansh.jain@nxp.com; x-ms-exchange-messagesentrepresentingtype: 1 x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; VI1PR04MB2109; 6:3PjyU+9rWzB4yt5fqeoyVimY9Thw/lCcTErTYlSI53lS/teXkbQ1cSRNxQS50He7YiVEv8uA1tb3R7QOdWmxcogKuuFeLIviWZ34AnPMAwBTfF1Y2bsjIMlwmTc78pL8tjV4wyOY8nUc+uVk5U46Y5mVdQ/DfLbN57JdOKrFQVxVN9iLo4ph/Qnk2kDQUm9+lhyDjzH6fNGu0bSHSxIHpZnrNfwiJUTG5x70StTdraL45N+GBMIB2y8U1iEZu9Yh4AmXbOsHAaLBEMs/G4KYCweWB84OkWrAm0aXthtcRp8U6st2Kf8t8kuntZ7uZX6rH3fkpevQYcqJN/wGOC8Pv6sk+a8CPF2XzPpaAiZAGEZ1w4bq2lY4FDGgzMz9cj3iXdm68K1Xbmqdt/vsbAseOMaIbrijfR9jeKXgnnJ45KJ51W3B5/Rtsqz0GphAzzBoav+EsjNICnvUlcwd2zBbSQ==; 5:dQxK2TzxLsOTsdjxq0CqLfTYdoko7hGuLXuUeMa5NRcNpsoOka4LYznheh9hIHPQWjytsaUU6idNo347aRfKxxZYKqN/VZHbYwDrmjRy8OLndBobIQQQRyIt6o4mhxsTtvM1Gv/xkEDgDci9U98yd8+OOzJQstDI+D0Q8GFlDeECxKXEfXdAeI2Ke5kQaN9Gl/aLYmjEYmCYOrPJCy4acg==; 7:jvNGiaN7S9xwiCHRtSiYKWKWiOTEtJd+Ex9w/AFbGJX1kzdyI9+Hl/Qs29A1DahuqUrf43CMKUTOtiPjNYMVEFc13BoeUpiluWqTUVNbyn7WABNfadVEEsfFdT/88iaP7ivnoUKTLPIQ7sKKFgMBaw== x-ms-office365-filtering-correlation-id: 9ed898c9-9d4e-4f2d-cb41-08d677bc264d x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(7168020)(4627221)(201703031133081)(201702281549075)(8990200)(5600109)(711020)(4618075)(2017052603328)(7153060)(7193020); SRVR:VI1PR04MB2109; x-ms-traffictypediagnostic: VI1PR04MB2109: x-microsoft-antispam-prvs: x-forefront-prvs: 09144DB0F7 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(366004)(346002)(136003)(396003)(376002)(39860400002)(189003)(199004)(99286004)(2501003)(78486014)(6512007)(26005)(316002)(68736007)(186003)(25786009)(36756003)(478600001)(305945005)(14454004)(71200400001)(6916009)(6486002)(71190400001)(2351001)(6436002)(81156014)(81166006)(1730700003)(52116002)(53936002)(76176011)(1076003)(14444005)(256004)(105586002)(8936002)(476003)(54906003)(5640700003)(7736002)(2616005)(106356001)(50226002)(3846002)(6116002)(55236004)(386003)(2906002)(6506007)(11346002)(102836004)(86362001)(446003)(486006)(97736004)(44832011)(5660300001)(8676002)(4326008)(66066001); DIR:OUT; SFP:1101; SCL:1; SRVR:VI1PR04MB2109; H:VI1PR04MB4688.eurprd04.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; received-spf: None (protection.outlook.com: nxp.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: jFSMIO8KQr7AbfaVgDdsCOTas0fWNg1Yy9V+Y54tLDtudkg/M3ltCokeG902b67fJvMlemzB5AjQ9RBgDX53nBETmGSJ7D9AC3D1lfvvVl7NjX/d9RxvCDCauYmObYhXPc/S7iuNvYLjSP1c5KjzjpPsJpUsnfTZAXWTTfw0v5Kh+pG6OnSJtteESNkUEtNGBJVwX9k3UWiHiWSFQrXAOZ+N8GsBqXcP7yqos8ZCUzqCNm5rF+DgnoQ/XttNxsewp5OAEry6BcZMxCui64Y2HwplGRKdnnVjn8kWdsMDy40KF90UPXx9/gddzMDdJyqD6XPVL4TdCpp/Wqb5Q97Tj9p+prv6wVQB50O9ajlMP++GIBRIbOwgDd5se+5jqXGKhO4U1avhNkBqDKP6KrnoZH66mslc61Yr6NTFtvxMLJc= spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9ed898c9-9d4e-4f2d-cb41-08d677bc264d X-MS-Exchange-CrossTenant-originalarrivaltime: 11 Jan 2019 11:58:47.6566 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB2109 Subject: [dpdk-dev] [PATCH v2 18/20] net/dpaa2: change reference to private device 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: , X-List-Received-Date: Fri, 11 Jan 2019 11:58:52 -0000 The I/O threads for DPAA2 take their reference for bpool ID, the port ID and other info like qdid, from the rte_eth_dev. Further, to get this data during I/O operation, a reference of the RTE device is kept in the queue structure (dpaa2_queue). In case of secondary processes, rte_eth_dev is not same as the primary process. Thus, the reference goes invalid. This patch changes the implementation to use the dev_private rather than the rte_eth_dev as that is shared area across all the processes. Signed-off-by: Shreyansh Jain --- drivers/bus/fslmc/portal/dpaa2_hw_pvt.h | 5 ++++- drivers/net/dpaa2/dpaa2_ethdev.c | 4 ++-- drivers/net/dpaa2/dpaa2_rxtx.c | 18 ++++++++++-------- 3 files changed, 16 insertions(+), 11 deletions(-) diff --git a/drivers/bus/fslmc/portal/dpaa2_hw_pvt.h b/drivers/bus/fslmc/po= rtal/dpaa2_hw_pvt.h index 20c606dbe..626fcbbca 100644 --- a/drivers/bus/fslmc/portal/dpaa2_hw_pvt.h +++ b/drivers/bus/fslmc/portal/dpaa2_hw_pvt.h @@ -127,7 +127,10 @@ typedef void (dpaa2_queue_cb_dqrr_t)(struct qbman_swp = *swp, =20 struct dpaa2_queue { struct rte_mempool *mb_pool; /**< mbuf pool to populate RX ring. */ - void *dev; + union { + struct rte_eth_dev_data *eth_data; + void *dev; + }; int32_t eventfd; /*!< Event Fd of this queue */ uint32_t fqid; /*!< Unique ID of this queue */ uint8_t tc_index; /*!< traffic class identifier */ diff --git a/drivers/net/dpaa2/dpaa2_ethdev.c b/drivers/net/dpaa2/dpaa2_eth= dev.c index 3a20158da..2b90f4021 100644 --- a/drivers/net/dpaa2/dpaa2_ethdev.c +++ b/drivers/net/dpaa2/dpaa2_ethdev.c @@ -244,7 +244,7 @@ dpaa2_alloc_rx_tx_queues(struct rte_eth_dev *dev) } =20 for (i =3D 0; i < priv->nb_rx_queues; i++) { - mc_q->dev =3D dev; + mc_q->eth_data =3D dev->data; priv->rx_vq[i] =3D mc_q++; dpaa2_q =3D (struct dpaa2_queue *)priv->rx_vq[i]; dpaa2_q->q_storage =3D rte_malloc("dq_storage", @@ -260,7 +260,7 @@ dpaa2_alloc_rx_tx_queues(struct rte_eth_dev *dev) } =20 for (i =3D 0; i < priv->nb_tx_queues; i++) { - mc_q->dev =3D dev; + mc_q->eth_data =3D dev->data; mc_q->flow_id =3D 0xffff; priv->tx_vq[i] =3D mc_q++; dpaa2_q =3D (struct dpaa2_queue *)priv->tx_vq[i]; diff --git a/drivers/net/dpaa2/dpaa2_rxtx.c b/drivers/net/dpaa2/dpaa2_rxtx.= c index 6e2e8abd7..2d4b9ef14 100644 --- a/drivers/net/dpaa2/dpaa2_rxtx.c +++ b/drivers/net/dpaa2/dpaa2_rxtx.c @@ -509,7 +509,7 @@ dpaa2_dev_prefetch_rx(void *queue, struct rte_mbuf **bu= fs, uint16_t nb_pkts) const struct qbman_fd *fd, *next_fd; struct qbman_pull_desc pulldesc; struct queue_storage_info_t *q_storage =3D dpaa2_q->q_storage; - struct rte_eth_dev *dev =3D dpaa2_q->dev; + struct rte_eth_dev_data *eth_data =3D dpaa2_q->eth_data; =20 if (unlikely(!DPAA2_PER_LCORE_ETHRX_DPIO)) { ret =3D dpaa2_affine_qbman_ethrx_swp(); @@ -613,9 +613,10 @@ dpaa2_dev_prefetch_rx(void *queue, struct rte_mbuf **b= ufs, uint16_t nb_pkts) bufs[num_rx] =3D eth_sg_fd_to_mbuf(fd); else bufs[num_rx] =3D eth_fd_to_mbuf(fd); - bufs[num_rx]->port =3D dev->data->port_id; + bufs[num_rx]->port =3D eth_data->port_id; =20 - if (dev->data->dev_conf.rxmode.offloads & DEV_RX_OFFLOAD_VLAN_STRIP) + if (eth_data->dev_conf.rxmode.offloads & + DEV_RX_OFFLOAD_VLAN_STRIP) rte_vlan_strip(bufs[num_rx]); =20 dq_storage++; @@ -716,8 +717,8 @@ dpaa2_dev_tx(void *queue, struct rte_mbuf **bufs, uint1= 6_t nb_pkts) struct qbman_swp *swp; uint16_t num_tx =3D 0; uint16_t bpid; - struct rte_eth_dev *dev =3D dpaa2_q->dev; - struct dpaa2_dev_priv *priv =3D dev->data->dev_private; + struct rte_eth_dev_data *eth_data =3D dpaa2_q->eth_data; + struct dpaa2_dev_priv *priv =3D eth_data->dev_private; uint32_t flags[MAX_TX_RING_SLOTS] =3D {0}; =20 if (unlikely(!DPAA2_PER_LCORE_DPIO)) { @@ -729,7 +730,8 @@ dpaa2_dev_tx(void *queue, struct rte_mbuf **bufs, uint1= 6_t nb_pkts) } swp =3D DPAA2_PER_LCORE_PORTAL; =20 - DPAA2_PMD_DP_DEBUG("=3D=3D=3D> dev =3D%p, fqid =3D%d\n", dev, dpaa2_q->fq= id); + DPAA2_PMD_DP_DEBUG("=3D=3D=3D> eth_data =3D%p, fqid =3D%d\n", + eth_data, dpaa2_q->fqid); =20 /*Prepare enqueue descriptor*/ qbman_eq_desc_clear(&eqdesc); @@ -772,7 +774,7 @@ dpaa2_dev_tx(void *queue, struct rte_mbuf **bufs, uint1= 6_t nb_pkts) rte_mbuf_refcnt_read((*bufs)) =3D=3D 1)) { if (unlikely(((*bufs)->ol_flags & PKT_TX_VLAN_PKT) || - (dev->data->dev_conf.txmode.offloads + (eth_data->dev_conf.txmode.offloads & DEV_TX_OFFLOAD_VLAN_INSERT))) { ret =3D rte_vlan_insert(bufs); if (ret) @@ -794,7 +796,7 @@ dpaa2_dev_tx(void *queue, struct rte_mbuf **bufs, uint1= 6_t nb_pkts) } =20 if (unlikely(((*bufs)->ol_flags & PKT_TX_VLAN_PKT) || - (dev->data->dev_conf.txmode.offloads + (eth_data->dev_conf.txmode.offloads & DEV_TX_OFFLOAD_VLAN_INSERT))) { int ret =3D rte_vlan_insert(bufs); if (ret) --=20 2.17.1