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 7EB69A056E; Wed, 11 Mar 2020 13:22:49 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 5829D1BF94; Wed, 11 Mar 2020 13:22:48 +0100 (CET) Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by dpdk.org (Postfix) with ESMTP id E6F3C2BAA for ; Wed, 11 Mar 2020 13:22:46 +0100 (CET) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by orsmga105.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 11 Mar 2020 05:22:44 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.70,540,1574150400"; d="scan'208";a="441662362" Received: from orsmsx103.amr.corp.intel.com ([10.22.225.130]) by fmsmga005.fm.intel.com with ESMTP; 11 Mar 2020 05:22:43 -0700 Received: from ORSEDG002.ED.cps.intel.com (10.7.248.5) by ORSMSX103.amr.corp.intel.com (10.22.225.130) with Microsoft SMTP Server (TLS) id 14.3.439.0; Wed, 11 Mar 2020 05:22:43 -0700 Received: from NAM11-DM6-obe.outbound.protection.outlook.com (104.47.57.176) by edgegateway.intel.com (134.134.137.101) with Microsoft SMTP Server (TLS) id 14.3.439.0; Wed, 11 Mar 2020 05:22:43 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=BSJYDeK5PpCBiXapRnU4lxl7V1oH3pRjiTHP9gNb/vunrlItT6XOuzQQbs9otsYn10iSyIeAucixFd3CQliZYr/ZLm8rwwlEjsP5O6TtaW4ToDQJtxa1c57bgbhiAMu18pqKQQzZr2W3RILhjzW75Tkfc1nj7ng/3e6yqBTskkFnwzenofwx72bNjvMB3oTxS56s7DvVW8jWWp71sU+hEaQpV4bASiF5YA4uOKH9HU9dawAFrEa01y+CwhUR2kyzuQMNwYuOee+9PwnfyWINP8boLAnz1Jm2Plww93OVgQ6nxxnsWWwiXtHKaPbbr/Gcz87wmGbJ+bgWulqs+hPLfg== 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=TqTlJvFHYVvW11+BQfjcyN3BazZP4MIaa5EXui12J3w=; b=oavdj5QxQMhj73Z1o3nIGRQTtgswO8s3EjHIjvHQL05Wbd3CuvPTGGR+r8NuZso8Q7viSW+SlBeMkn2l3KPn5HH1K3Z7qcp071fDeriEHsX1W8j75uk3T4hvaw7TMTY6eJyKBhkj3ZOfxfIgj7NZ6VlrAHuWSwcIG5/DhWbgOeGu1GIDOJLcIqca+GjxqlTosD/fUycNYEEfmzPWItO81qrNU3qT3NiMJF5OCpMq53QFfNdjCQXoUKwj9lt8LyYSPIciTmhWoceQL4jidC0vnSN4Z4xIRvhnYpu2FYr16EsDzI75XmwpSES10dYnEZTZgo01MGq72dLbNviUKCoJvA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel.onmicrosoft.com; s=selector2-intel-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=TqTlJvFHYVvW11+BQfjcyN3BazZP4MIaa5EXui12J3w=; b=LGbiU77Uc8XtpwGrlBFtlvT2SFGFO+BiAkj/wjiaxZy4Gh4h0q+EB8SCO6rY4Pp3Gpxcn7tRVh+0lpRVq48gnn5ho/RqBmEChQYO3CZCYsi0bDsRiPy+3Xb7+CZEu3satEpMHxq6r8VK1QkzLQIB/AMUWg/H2KSWjyrH2070ESM= Received: from SN6PR11MB2558.namprd11.prod.outlook.com (2603:10b6:805:5d::19) by SN6PR11MB3390.namprd11.prod.outlook.com (2603:10b6:805:c0::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2814.14; Wed, 11 Mar 2020 12:22:41 +0000 Received: from SN6PR11MB2558.namprd11.prod.outlook.com ([fe80::395e:eb75:6ab7:2ba5]) by SN6PR11MB2558.namprd11.prod.outlook.com ([fe80::395e:eb75:6ab7:2ba5%3]) with mapi id 15.20.2793.013; Wed, 11 Mar 2020 12:22:41 +0000 From: "Ananyev, Konstantin" To: ZY Qiu , Thomas Monjalon , "Yigit, Ferruh" , Andrew Rybchenko CC: "dev@dpdk.org" , "stephen@networkplumber.org" , ZY Qiu Thread-Topic: [PATCH v3] rte_ethdev: safer memory access by calling Rx/Tx callback Thread-Index: AQHV8w3PipXot9cumkeBIBtl0BM9A6hDWUYQ Date: Wed, 11 Mar 2020 12:22:41 +0000 Message-ID: References: <20200304173349.26459-1-tgw_team@tencent.com> <20200305164704.29900-1-tgw_team@tencent.com> In-Reply-To: <20200305164704.29900-1-tgw_team@tencent.com> Accept-Language: en-GB, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiYTBjZDcyMjctMTMyMi00ZGZkLWEwYWUtODJjNzQ0YTkzNDkwIiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX05UIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE3LjEwLjE4MDQuNDkiLCJUcnVzdGVkTGFiZWxIYXNoIjoidmUrcEM2bkZmTXNXUlNXNjJNY3lZcTZEdDdjbklXMDA0UmRMc2lReWkwdzNqVkdTNnZwemV4QlcybzJpQTZidiJ9 dlp-product: dlpe-windows dlp-reaction: no-action dlp-version: 11.2.0.6 x-ctpclassification: CTP_NT authentication-results: spf=none (sender IP is ) smtp.mailfrom=konstantin.ananyev@intel.com; x-originating-ip: [192.198.151.168] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 30183057-8113-4a22-9179-08d7c5b6e558 x-ms-traffictypediagnostic: SN6PR11MB3390: x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:1201; x-forefront-prvs: 0339F89554 x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(39860400002)(376002)(136003)(346002)(396003)(366004)(199004)(478600001)(52536014)(110136005)(2906002)(316002)(71200400001)(8936002)(81156014)(81166006)(5660300002)(7696005)(54906003)(6506007)(53546011)(8676002)(9686003)(55016002)(86362001)(4326008)(33656002)(76116006)(66476007)(64756008)(66446008)(66946007)(66556008)(186003)(26005); DIR:OUT; SFP:1102; SCL:1; SRVR:SN6PR11MB3390; H:SN6PR11MB2558.namprd11.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: oeveUmRSElbdXeomzo05E0lMDoPNLVxTbDC6TELqEq2qfFsD+VM19i6BPkmaIgrhEaHWWYJNLUamINNmhxd9lTTDB3wqOh42ApBmWH/PsqXdJXJ0iKJaZMKXmiU1qn267M5SkYonxCXJ3q+RFnuSKKePFn7FqKoDXPRIBI12dKcwJrigl6eb6MU7vZPioylTYw46U2nfWZh4RxeW05YHvzGR7foD2lvGLGl6jbqkBZA1/gceoBZd8tU5ePWk6qjVW2jZ2qxNAw69dMYl8JkuIlWC2YgtRMaUOZvQL9YuJaNlooykZdMJsK612TsGm35Rxm9g/OWb+v8blMx00KSlrZnxbmZOT1DQcJtiygPtQptNvq6h1U/CzmH8c2GPmFLBPFrqb3cYJmvq4wMNx25iGd8R3c44iggqL1Fn9alvbj9WJI0YgSXNtSZ2Jppwkil+ x-ms-exchange-antispam-messagedata: tkE19kXj9agPUyYq87vNidW1sHabPoUSQ1/NgUE+YeJAYYuxuli7HPeKU8PLJTeHnuZdQQMQidtYPVhuw4zIF9D9C/mp8W4ShPpmlHkK8VfYP1Hy5/SYbfyg/amLy7dvT82nrgUKOe9A2c1rQqEBlw== Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-MS-Exchange-CrossTenant-Network-Message-Id: 30183057-8113-4a22-9179-08d7c5b6e558 X-MS-Exchange-CrossTenant-originalarrivaltime: 11 Mar 2020 12:22:41.7232 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: snrl/MLG9RieGPQi3OVdAjDI545HGcn5zVH9PiJQg2uQONLBqoXV7U2eVyS62g0jFVc1Ehrds5UyZJL5XKAqYed8kXS2roHKWo+zLqMZp9Q= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN6PR11MB3390 X-OriginatorOrg: intel.com Subject: Re: [dpdk-dev] [PATCH v3] rte_ethdev: safer memory access by calling Rx/Tx callback 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" > -----Original Message----- > From: ZY Qiu > Sent: Thursday, March 5, 2020 4:47 PM > To: Thomas Monjalon ; Yigit, Ferruh ; Andrew Rybchenko > Cc: dev@dpdk.org; stephen@networkplumber.org; Ananyev, Konstantin ; ZY Qiu > > Subject: [PATCH v3] rte_ethdev: safer memory access by calling Rx/Tx call= back >=20 > When compiling with -O0, > the compiler does not optimize two memory accesses into one. > Leads to accessing a null pointer when queue post Rx burst callback > removal while traffic is running. >=20 > Signed-off-by: ZY Qiu > --- > lib/librte_ethdev/rte_ethdev.h | 9 +++++---- > 1 file changed, 5 insertions(+), 4 deletions(-) >=20 > diff --git a/lib/librte_ethdev/rte_ethdev.h b/lib/librte_ethdev/rte_ethde= v.h > index d1a593ad1..c46612e3e 100644 > --- a/lib/librte_ethdev/rte_ethdev.h > +++ b/lib/librte_ethdev/rte_ethdev.h > @@ -4388,10 +4388,10 @@ rte_eth_rx_burst(uint16_t port_id, uint16_t queue= _id, > rx_pkts, nb_pkts); >=20 > #ifdef RTE_ETHDEV_RXTX_CALLBACKS > - if (unlikely(dev->post_rx_burst_cbs[queue_id] !=3D NULL)) { > - struct rte_eth_rxtx_callback *cb =3D > - dev->post_rx_burst_cbs[queue_id]; > + struct rte_eth_rxtx_callback *volatile cb =3D > + dev->post_rx_burst_cbs[queue_id]; >=20 > + if (unlikely(cb !=3D NULL)) { > do { > nb_rx =3D cb->fn.rx(port_id, queue_id, rx_pkts, nb_rx, > nb_pkts, cb->param); > @@ -4652,7 +4652,8 @@ rte_eth_tx_burst(uint16_t port_id, uint16_t queue_i= d, > #endif >=20 > #ifdef RTE_ETHDEV_RXTX_CALLBACKS > - struct rte_eth_rxtx_callback *cb =3D dev->pre_tx_burst_cbs[queue_id]; > + struct rte_eth_rxtx_callback *volatile cb =3D > + dev->pre_tx_burst_cbs[queue_id]; >=20 > if (unlikely(cb !=3D NULL)) { > do { > -- Acked-by: Konstantin Ananyev > 2.17.1