From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by dpdk.org (Postfix) with ESMTP id C450A1B12A for ; Fri, 28 Sep 2018 10:55:45 +0200 (CEST) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga001.jf.intel.com ([10.7.209.18]) by fmsmga106.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 28 Sep 2018 01:55:44 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.54,314,1534834800"; d="scan'208";a="94681148" Received: from irsmsx106.ger.corp.intel.com ([163.33.3.31]) by orsmga001.jf.intel.com with ESMTP; 28 Sep 2018 01:55:26 -0700 Received: from irsmsx102.ger.corp.intel.com ([169.254.2.67]) by IRSMSX106.ger.corp.intel.com ([169.254.8.45]) with mapi id 14.03.0319.002; Fri, 28 Sep 2018 09:55:25 +0100 From: "Van Haaren, Harry" To: "Richardson, Bruce" , "Wang, Yipeng1" CC: Honnappa Nagarahalli , "De Lara Guarch, Pablo" , "dev@dpdk.org" , "gavin.hu@arm.com" , "steve.capper@arm.com" , "ola.liljedahl@arm.com" , "nd@arm.com" Thread-Topic: [dpdk-dev] [PATCH 3/4] hash: fix rw concurrency while moving keys Thread-Index: AQHUVwUIRiHMD0DkbUuIZ44bMstCaqUFYI0Q Date: Fri, 28 Sep 2018 08:55:25 +0000 Message-ID: References: <1536253938-192391-1-git-send-email-honnappa.nagarahalli@arm.com> <1536253938-192391-4-git-send-email-honnappa.nagarahalli@arm.com> <20180928082610.GA7592@bricha3-MOBL.ger.corp.intel.com> In-Reply-To: <20180928082610.GA7592@bricha3-MOBL.ger.corp.intel.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiZDAwMzg3ZDYtZGJkMC00NjAyLTk0N2UtMjAwZDhiZGI4NzkwIiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX05UIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE3LjEwLjE4MDQuNDkiLCJUcnVzdGVkTGFiZWxIYXNoIjoiZlhETklSTUd2MDVmbENsQkc0eEtRQmFETFwvWUdNY0lSTE13R3R4T3JBN3Q3dlQ1NkVtbnVCc29iZlJtem1yNXkifQ== x-ctpclassification: CTP_NT dlp-product: dlpe-windows dlp-version: 11.0.400.15 dlp-reaction: no-action x-originating-ip: [163.33.239.181] Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Subject: Re: [dpdk-dev] [PATCH 3/4] hash: fix rw concurrency while moving keys 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, 28 Sep 2018 08:55:46 -0000 > -----Original Message----- > From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Bruce Richardson > Sent: Friday, September 28, 2018 9:26 AM > To: Wang, Yipeng1 > Cc: Honnappa Nagarahalli ; De Lara Guarch, > Pablo ; dev@dpdk.org; gavin.hu@arm.com; > steve.capper@arm.com; ola.liljedahl@arm.com; nd@arm.com > Subject: Re: [dpdk-dev] [PATCH 3/4] hash: fix rw concurrency while moving > keys >=20 > On Fri, Sep 28, 2018 at 02:00:00AM +0100, Wang, Yipeng1 wrote: > > Reply inlined: > > > > >-----Original Message----- > > >From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Honnappa Nagaraha= lli > > >Sent: Thursday, September 6, 2018 10:12 AM > > >To: Richardson, Bruce ; De Lara Guarch, Pa= blo > > > >Cc: dev@dpdk.org; honnappa.nagarahalli@dpdk.org; gavin.hu@arm.com; > steve.capper@arm.com; ola.liljedahl@arm.com; > > >nd@arm.com; Honnappa Nagarahalli > > >Subject: [dpdk-dev] [PATCH 3/4] hash: fix rw concurrency while moving > keys > > > > > >Reader-writer concurrency issue, caused by moving the keys > > >to their alternative locations during key insert, is solved > > >by introducing a global counter(tbl_chng_cnt) indicating a > > >change in table. > > > /** > > >@@ -200,7 +200,7 @@ rte_hash_add_key_with_hash_data(const struct rte_h= ash > *h, const void *key, > > > * array of user data. This value is unique for this key. > > > */ > > > int32_t > > >-rte_hash_add_key(const struct rte_hash *h, const void *key); > > >+rte_hash_add_key(struct rte_hash *h, const void *key); > > > > > > /** > > > * Add a key to an existing hash table. > > >@@ -222,7 +222,7 @@ rte_hash_add_key(const struct rte_hash *h, const v= oid > *key); > > > * array of user data. This value is unique for this key. > > > */ > > > int32_t > > >-rte_hash_add_key_with_hash(const struct rte_hash *h, const void *key, > hash_sig_t sig); > > >+rte_hash_add_key_with_hash(struct rte_hash *h, const void *key, > hash_sig_t sig); > > > > > > / > > > > I think the above changes will break ABI by changing the parameter type= ? > Other people may know better on this. >=20 > Just removing a const should not change the ABI, I believe, since the con= st > is just advisory hint to the compiler. Actual parameter size and count > remains unchanged so I don't believe there is an issue. > [ABI experts, please correct me if I'm wrong on this] [Certainly no ABI expert, but...] I think this is an API break, not ABI break. Given application code as follows, it will fail to compile - even though running the new code as a .so wouldn't cause any issues (AFAIK). void do_hash_stuff(const struct rte_hash *h, ...) { /* parameter passed in is const, but updated function prototype is non-= const */ rte_hash_add_key_with_hash(h, ...); } This means that we can't recompile apps against latest patch without applic= ation code changes, if the app was passing a const rte_hash struct as the first p= arameter. -Harry