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 6ECBCA052A; Wed, 23 Dec 2020 10:33:18 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 5354DCAAF; Wed, 23 Dec 2020 10:33:17 +0100 (CET) Received: from mx0b-0016f401.pphosted.com (mx0a-0016f401.pphosted.com [67.231.148.174]) by dpdk.org (Postfix) with ESMTP id 0C9DBCA95 for ; Wed, 23 Dec 2020 10:33:13 +0100 (CET) Received: from pps.filterd (m0045849.ppops.net [127.0.0.1]) by mx0a-0016f401.pphosted.com (8.16.0.43/8.16.0.43) with SMTP id 0BN9UXCu023493 for ; Wed, 23 Dec 2020 01:33:12 -0800 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=marvell.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-transfer-encoding : mime-version; s=pfpt0220; bh=UKAN7eC96biwPjwQ7fCW7RWEe1dLEkdlyZWZSg2wta8=; b=HtFZ+za34XnKB2I9UaBkfK/gb6s8SQTK+fls3MhGLiuAp/s1+r/Ufm42K5Ypw8PHyjCG ouEvTW+NM12cwYq3Mmfv+lNIM0R69kbByh0UMeil8k3LTdP3SJ4V+uoyrYhqgz9o3wKC ny/54X9btgLvHK3I4sAyuHVg0jwassFKzrXqMGVVlhweOSa7JGvSS+4VOkahaXYWcJz8 WzPTbtz3JPNUHJGxTW27K130ZQ8jheJO6TO+juE1C3gNHOTVNF1m6XHbx+SxQsr3A16W n6txTGi8ZW7JfZQldsnUsbfgg0SmIwJZ1pWNF1I/F0+kSO807wLIF90IQEB4mKs8jO7O 4g== Received: from sc-exch01.marvell.com ([199.233.58.181]) by mx0a-0016f401.pphosted.com with ESMTP id 35k0ebdrmd-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT) for ; Wed, 23 Dec 2020 01:33:12 -0800 Received: from DC5-EXCH01.marvell.com (10.69.176.38) by SC-EXCH01.marvell.com (10.93.176.81) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Wed, 23 Dec 2020 01:33:11 -0800 Received: from SC-EXCH03.marvell.com (10.93.176.83) by DC5-EXCH01.marvell.com (10.69.176.38) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Wed, 23 Dec 2020 01:33:10 -0800 Received: from NAM12-DM6-obe.outbound.protection.outlook.com (104.47.59.177) by SC-EXCH03.marvell.com (10.93.176.83) with Microsoft SMTP Server (TLS) id 15.0.1497.2 via Frontend Transport; Wed, 23 Dec 2020 01:33:09 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Yg631DRIrlwrXa4Nk0LqopUGvCP7MGiqlgMDOvy3R1dybQxHrtQ41MZbVenLloT2sHCJUCNqLFfcO/Lp3hIzVk9iB5Uta4M7ZVrZwPbQhNW0FS0cK2xsGx1zPlkrnDU4xjD7SFktfHcCW5H7woAujZAc+truoG4byNmz2KmIrBsjXCu4cwi4u+xUyR7pQdF5axUqhFW5KQCFuzv1uS+tiunXRLIPdb7o8Z3540KsvH3eugZuiEA/37HfKze2471nS4yoIiWdz56cLi2h6GU10rQ9oJOeoT/SfbLn59oLdVU7F52t7sqgZdjMzIsa3IgOz7igH8B13XW0yMOsNa97Cg== 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=UKAN7eC96biwPjwQ7fCW7RWEe1dLEkdlyZWZSg2wta8=; b=YW2ywlZFkesv8FUpOI970JNj7W4BA642S4jt7N9ug7NmOwQKqZxjgmVaWxCxv2sFeEmQ9zY67es86qy/wzrI6JWpa2v2bDdIFyD7JXeHMkVw3DC6ZdIhBNhdbbrpkCgmH3enz2NVg/QRjp3pK/T2RvIk4eeWjDg/CUW1oEWPvg+P5P6KA06s681H4nRAEdAwMMCVC/nBsgF0PQ3gNw1aWCuqcuLrZS6gKdt3j10r9TH0oScu3sxma2nS4Su1j7poZgjZBl1ZjWSB53m1d2PCGlyQARq/+mz1uhdy6V702B8X7szM0NB+W/+oXCjSwUAUQRrrOl82W4dmrWhJVwlFwQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=marvell.com; dmarc=pass action=none header.from=marvell.com; dkim=pass header.d=marvell.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=marvell.onmicrosoft.com; s=selector1-marvell-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=UKAN7eC96biwPjwQ7fCW7RWEe1dLEkdlyZWZSg2wta8=; b=Moa+xO9mZcunw02sphAQ/BzKb2J7ETTM2gVyqS+lvqbwjxyXDuWzpr1OfH8lFP3XIV4mseBhrdxJ3P3LjeYGYBDM3ATNoTaCcYOHDmzDyOAYGZESh3sNlkNJPn91Zvg04WVodY6Bt7EInjyi4VEk8jgDpmjB/n5hSUbS3rX+Cpo= Received: from DM5PR1801MB2058.namprd18.prod.outlook.com (2603:10b6:4:67::31) by DM6PR18MB2795.namprd18.prod.outlook.com (2603:10b6:5:172::29) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3700.27; Wed, 23 Dec 2020 09:33:09 +0000 Received: from DM5PR1801MB2058.namprd18.prod.outlook.com ([fe80::303b:5c79:93c7:b432]) by DM5PR1801MB2058.namprd18.prod.outlook.com ([fe80::303b:5c79:93c7:b432%7]) with mapi id 15.20.3676.033; Wed, 23 Dec 2020 09:33:08 +0000 From: Michael Shamis To: Liron Himi , Jerin Jacob Kollanukkaran CC: "dev@dpdk.org" , Liron Himi Thread-Topic: [dpdk-dev] [PATCH v1 27/38] net/mvpp2: dummy pool creation Thread-Index: AQHWyJT15DL8Y4FDiUy3XYu1QkPRfqoEi+Cg Date: Wed, 23 Dec 2020 09:33:08 +0000 Message-ID: References: <20201202101212.4717-1-lironh@marvell.com> <20201202101212.4717-28-lironh@marvell.com> In-Reply-To: <20201202101212.4717-28-lironh@marvell.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [83.130.154.133] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 19db442a-5ea1-4d68-d5a3-08d8a725c248 x-ms-traffictypediagnostic: DM6PR18MB2795: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:8273; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: f3Lizvb1D9njVB2eLWUut9hMrLt3FA4cEWfZXRMN8+obxlAk7oWWaJ3xA/7xvdX3+XnzFvg+is+by7MVtk3JNQ0s5VAON26Us9u0sAIRXzucewYT+s0lagO++2qicEHxUx7rsMcVhdkGjEmGo7YwX9Un+n8HbG+JA3yv0NnAzygPaufA0gIsAzrG3gKpnigh08e7pwoOSAarWdblUUk0OywL5kuzB/b7N0IcZ8c12lkH8yQFpRXaawXX4O3ch4SeHvAaoqOk+uctL4SedPyLpae0+AWLtf6hhdmUssbZxrKB83voPkv8E4yVK8xDqCoR9RxVyp4UB04XSc4oczr9B4/ov0rpV7gXcji5Mo69vt9uFjQ563mZoZkvIqjONgKthufD7o5Lfbjffqn0xBuM7g== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM5PR1801MB2058.namprd18.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(136003)(396003)(39860400002)(346002)(376002)(366004)(7696005)(26005)(54906003)(2906002)(8676002)(478600001)(186003)(9686003)(5660300002)(55016002)(83380400001)(4326008)(107886003)(8936002)(66946007)(86362001)(64756008)(66556008)(53546011)(66476007)(6636002)(6506007)(52536014)(33656002)(76116006)(110136005)(71200400001)(66446008)(316002); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata: =?us-ascii?Q?nXZuBxHaurH3ypWB7W71ohZwGQ70y2p+itDLngeJyGuK5bsILpgH+PynsU5j?= =?us-ascii?Q?tsaOqKnLzIsTmu9ZEqviBfi42jh95j2uUEviog57pPz3tcL0sY4GdY+VkS4L?= =?us-ascii?Q?CPe5w2mL0c3EURqdKYkC0R5Xkel+my6WQhPuk9YleyYGN+saHYHlvywIdwJb?= =?us-ascii?Q?5BiX0yuS0Kze4GcWM5qjjtOjLd62bAX8mE6olNdNfMGl20vgXSsKQzpya8vE?= =?us-ascii?Q?GRrEso2L2asmNOrMvnuhs7N8CWkOb0pkU9wmcNpMEwAwrtOfSvzZWTx3BBEG?= =?us-ascii?Q?VOsGvOvhwK0weXGK1QqU068jCYZlQea7CxBxzK5zMUarHd3EekSUOiRDqHLw?= =?us-ascii?Q?NfJtzyXXapd9s+7Kx2NoNMtMTJ0rWFu6s+qoSKP6gSm4GSrh1HUycPBfv43e?= =?us-ascii?Q?Ul4lLqGsG8ThBJKAN1mJlc9E200bKc3NyvosGmEI5s9+bDPGbLVLxCWHNefl?= =?us-ascii?Q?i5bsL7o/tv0tAGwwi/1dEVZcRPHmrtV+qwt0o/X9acOA2SikVeML/SYgTkFg?= =?us-ascii?Q?uQ9uM/VoH2yVOpJbNtZD/6jYojRQuCNdYp0GFJD7UvTSCIf1qiap02hzy5lR?= =?us-ascii?Q?08IbNEKIWQK4z6w2R5nQhoUoxMRdBnoSUJA+Mqf++Bcl4Ogg+i+xg1pL2wji?= =?us-ascii?Q?agbeSxANLjmzlFMeEsYP+EDfS7t0FX1jeIUwnr+10UTy9UvUNWCrv7ceCknb?= =?us-ascii?Q?OGTNNopA9vAu6mFuL/I5WQ7NrGDhD0Kd6CMPQCcotVjvnYuSIskdytqdOLDz?= =?us-ascii?Q?Rhoj0GrouKRhiNdx/5fM2W7YI/TuZOvu73P8RQyn3+lEHzMCFgb33y3U38MQ?= =?us-ascii?Q?VSuPInGrYeO6CMr54YeX1mJh4szWTcP4BGPljdWDcCB7X3bjsbssBgbfAMSp?= =?us-ascii?Q?KZhCx4zLILOVh1UcyLF3Ee30h7SKpo8E8LhnJymO38f8oErZSPAa+h3/37SD?= =?us-ascii?Q?MT1KY+u5B5MKiAijfAIz8wSDxyAKOwhb3QfbR1y3/dw=3D?= Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM5PR1801MB2058.namprd18.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 19db442a-5ea1-4d68-d5a3-08d8a725c248 X-MS-Exchange-CrossTenant-originalarrivaltime: 23 Dec 2020 09:33:08.6707 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 70e1fb47-1155-421d-87fc-2e58f638b6e0 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: ql/qphTxR/F69RWa17JKXB+Lsu0SybeJzoY5v1G5E7M4dvQwikMxpb/k6g3SV1xGv2bKxk8THdi4ebbg2kQ67w== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR18MB2795 X-OriginatorOrg: marvell.com X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.343, 18.0.737 definitions=2020-12-23_04:2020-12-21, 2020-12-23 signatures=0 Subject: Re: [dpdk-dev] [PATCH v1 27/38] net/mvpp2: dummy pool creation 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" Reviewed-by: Michael Shamis -----Original Message----- From: dev On Behalf Of lironh@marvell.com Sent: Wednesday, December 2, 2020 12:12 PM To: Jerin Jacob Kollanukkaran Cc: dev@dpdk.org; Liron Himi Subject: [dpdk-dev] [PATCH v1 27/38] net/mvpp2: dummy pool creation From: Liron Himi Currently the HW is configured with only one pool which its buffer size may= be larger than the rx-fifo-size. In that situation, frame size larger than the fifo-size is gets dropped due= to fifo overrun. this is cause because the HW works in cut-through mode which waits to have = in the fifo at least the amount of bytes as define in the smallest pool's b= uffer size. This patch add a dummy pool which its buffer size is very small (smaller th= an 64B frame). this tricks the HW and any frame size is gets passed from th= e FIFO to the PP2. Signed-off-by: Liron Himi --- drivers/net/mvpp2/mrvl_ethdev.c | 71 ++++++++++++++++++++++++++------- dr= ivers/net/mvpp2/mrvl_ethdev.h | 2 + drivers/net/mvpp2/mrvl_qos.c | 1 + 3 files changed, 60 insertions(+), 14 deletions(-) diff --git a/drivers/net/mvpp2/mrvl_ethdev.c b/drivers/net/mvpp2/mrvl_ethde= v.c index 127861a82..1f9489d77 100644 --- a/drivers/net/mvpp2/mrvl_ethdev.c +++ b/drivers/net/mvpp2/mrvl_ethdev.c @@ -90,6 +90,8 @@ static int used_bpools[PP2_NUM_PKT_PROC] =3D { static st= ruct pp2_bpool *mrvl_port_to_bpool_lookup[RTE_MAX_ETHPORTS]; static int mrvl_port_bpool_size[PP2_NUM_PKT_PROC][PP2_BPOOL_NUM_POOLS][RTE= _MAX_LCORE]; static uint64_t cookie_addr_high =3D MRVL_COOKIE_ADDR_INVALID; +static int dummy_pool_id[PP2_NUM_PKT_PROC]; struct pp2_bpool=20 +*dummy_pool[PP2_NUM_PKT_PROC] =3D {0}; =20 struct mrvl_ifnames { const char *names[PP2_NUM_ETH_PPIO * PP2_NUM_PKT_PROC]; @@ -189,6 +191,19= @@ static struct { MRVL_XSTATS_TBL_ENTRY(tx_errors) }; =20 +static inline int +mrvl_reserve_bit(int *bitmap, int max) +{ + int n =3D sizeof(*bitmap) * 8 - __builtin_clz(*bitmap); + + if (n >=3D max) + return -1; + + *bitmap |=3D 1 << n; + + return n; +} + /** * Initialize packet processor. * @@ -199,6 +214,9 @@ static int mrvl_init_pp2(void) { struct pp2_init_params init_params; + struct pp2_bpool_params bpool_params; + char name[15]; + int err, i; =20 memset(&init_params, 0, sizeof(init_params)); init_params.hif_reserved_map =3D MRVL_MUSDK_HIFS_RESERVED; @@ -207,7 +225= ,36 @@ mrvl_init_pp2(void) if (mrvl_cfg && mrvl_cfg->pp2_cfg.prs_udfs.num_udfs) memcpy(&init_params.prs_udfs, &mrvl_cfg->pp2_cfg.prs_udfs, sizeof(struct pp2_parse_udfs)); - return pp2_init(&init_params); + err =3D pp2_init(&init_params); + if (err !=3D 0) { + MRVL_LOG(ERR, "PP2 init failed"); + return -1; + } + + memset(dummy_pool, 0, sizeof(dummy_pool)); + for (i =3D 0; i < pp2_get_num_inst(); i++) { + dummy_pool_id[i] =3D mrvl_reserve_bit(&used_bpools[i], + PP2_BPOOL_NUM_POOLS); + if (dummy_pool_id[i] < 0) { + MRVL_LOG(ERR, "Can't find free pool\n"); + return -1; + } + + memset(name, 0, sizeof(name)); + snprintf(name, sizeof(name), "pool-%d:%d", i, dummy_pool_id[i]); + memset(&bpool_params, 0, sizeof(bpool_params)); + bpool_params.match =3D name; + bpool_params.buff_len =3D MRVL_PKT_OFFS; + bpool_params.dummy_short_pool =3D 1; + err =3D pp2_bpool_init(&bpool_params, &dummy_pool[i]); + if (err !=3D 0 || !dummy_pool[i]) { + MRVL_LOG(ERR, "BPool init failed!\n"); + used_bpools[i] &=3D ~(1 << dummy_pool_id[i]); + return -1; + } + } + + return 0; } =20 /** @@ -219,6 +266,15 @@ mrvl_init_pp2(void) static void mrvl_deinit_pp2(void) { + int i; + + for (i =3D 0; i < PP2_NUM_PKT_PROC; i++) { + if (!dummy_pool[i]) + continue; + pp2_bpool_deinit(dummy_pool[i]); + used_bpools[i] &=3D ~(1 << dummy_pool_id[i]); + } + pp2_deinit(); } =20 @@ -259,19 +315,6 @@ mrvl_get_bpool_size(int pp2_id, int pool_id) return size; } =20 -static inline int -mrvl_reserve_bit(int *bitmap, int max) -{ - int n =3D sizeof(*bitmap) * 8 - __builtin_clz(*bitmap); - - if (n >=3D max) - return -1; - - *bitmap |=3D 1 << n; - - return n; -} - static int mrvl_init_hif(int core_id) { diff --git a/drivers/net/mvpp2/mrvl_ethdev.h b/drivers/net/mvpp2/mrvl_ethde= v.h index 5dbd8b46c..24dbe20d7 100644 --- a/drivers/net/mvpp2/mrvl_ethdev.h +++ b/drivers/net/mvpp2/mrvl_ethdev.h @@ -197,6 +197,8 @@ extern int mrvl_logtype; rte_log(RTE_LOG_ ## level, mrvl_logtype, "%s(): " fmt "\n", \ __func__, ##args) =20 +extern struct pp2_bpool *dummy_pool[PP2_NUM_PKT_PROC]; + /** * Convert string to uint32_t with extra checks for result correctness. * diff --git a/drivers/net/mvpp2/mrvl_qos.c b/drivers/net/mvpp2/mrvl_qos.c in= dex f5275efc7..23a014ade 100644 --- a/drivers/net/mvpp2/mrvl_qos.c +++ b/drivers/net/mvpp2/mrvl_qos.c @@ -881,6 +881,7 @@ setup_tc(struct pp2_ppio_tc_params *param, uint8_t inqs= , =20 param->pkt_offset =3D MRVL_PKT_OFFS; param->pools[0][0] =3D bpool; + param->pools[0][1] =3D dummy_pool[bpool->pp2_id]; param->default_color =3D color; =20 inq_params =3D rte_zmalloc_socket("inq_params", -- 2.28.0