From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by dpdk.org (Postfix) with ESMTP id 497572C4F for ; Thu, 23 Aug 2018 15:07:24 +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 fmsmga101.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 23 Aug 2018 06:07:23 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.53,278,1531810800"; d="scan'208";a="84295446" Received: from fyigit-mobl.ger.corp.intel.com (HELO [10.237.221.56]) ([10.237.221.56]) by orsmga001.jf.intel.com with ESMTP; 23 Aug 2018 06:07:19 -0700 To: Stephen Hemminger , Yongseok Koh Cc: Adrien Mazarguil , "dev@dpdk.org" References: <20180731163059.27085-1-stephen@networkplumber.org> <20180731164840.GD5211@6wind.com> <20180731110737.38555f02@xeon-e3> <50204CDA-B4AD-44C8-AB07-2FE9C2A412C0@mellanox.com> <20180801140356.5ac88c43@xeon-e3> From: Ferruh Yigit Openpgp: preference=signencrypt Message-ID: Date: Thu, 23 Aug 2018 14:07:18 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.9.1 MIME-Version: 1.0 In-Reply-To: <20180801140356.5ac88c43@xeon-e3> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit Subject: Re: [dpdk-dev] [PATCH 0/5] remove usage of register keyword in C 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: Thu, 23 Aug 2018 13:07:24 -0000 On 8/1/2018 10:03 PM, Stephen Hemminger wrote: > On Wed, 1 Aug 2018 18:03:04 +0000 > Yongseok Koh wrote: > >>> On Jul 31, 2018, at 11:07 AM, Stephen Hemminger wrote: >>> >>> On Tue, 31 Jul 2018 18:48:40 +0200 >>> Adrien Mazarguil wrote: >>> >>>> On Tue, Jul 31, 2018 at 09:30:54AM -0700, Stephen Hemminger wrote: >>>>> Declaring variables as register in C is a leftover from an earlier >>>>> era (like cassette tape decks in cars). >>>> >>>> I don't agree here. It's a hint for compilers and developers that the >>>> address of such variables won't be needed (and cannot be taken) to enable >>>> whatever optimizations are possible knowing this. >>>> >>>> Somewhat like inline functions, it's not a forced optimization, just a >>>> useful hint that shouldn't hurt if used wisely. >>>> >>>> Besides, cassette decks are not dead yet :) >>> >>> If you look at the code, that is not how register is being used (ie. don't take >>> address of this). It seems like an attempt at optimization. >> >> I know compilers are smart enough and the occurrences in mlx4/5 were made from >> my old fashioned habit. But, I don't see any urgency to push this patch in RC >> stage even though I'm 99% sure that it is harmless. And in general I don't even >> understand why we can't live with that if it isn't harmful (or a violation) but >> informative. I mean no badness but at least one goodness :-) >> >> Thanks, >> Yongseok >> > > Sure, this is intended for next release not rc stage. > Just trying to clean up code base where I see it. I agree with Yongseok, at worst they show the intention of the developer, I don't see motivation to remove them unless they are doing something wrong, which seems not the reason of this patch. And although I found some information that says "register" ignored completely for gcc, I can see it differs when optimization disabled. I am not saying practically it differs, since we enable optimization expect from debugging, most probably there is no practical difference between having the keyword or not, but what I am trying to say is it not completely ignored either.