From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by dpdk.org (Postfix) with ESMTP id EA9E3532C for ; Mon, 26 Nov 2018 05:15:10 +0100 (CET) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga006.fm.intel.com ([10.253.24.20]) by fmsmga107.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 25 Nov 2018 20:15:10 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.56,280,1539673200"; d="scan'208";a="284107678" Received: from fmsmsx106.amr.corp.intel.com ([10.18.124.204]) by fmsmga006.fm.intel.com with ESMTP; 25 Nov 2018 20:15:09 -0800 Received: from bgsmsx153.gar.corp.intel.com (10.224.23.4) by FMSMSX106.amr.corp.intel.com (10.18.124.204) with Microsoft SMTP Server (TLS) id 14.3.408.0; Sun, 25 Nov 2018 20:15:09 -0800 Received: from bgsmsx101.gar.corp.intel.com ([169.254.1.234]) by BGSMSX153.gar.corp.intel.com ([169.254.2.159]) with mapi id 14.03.0415.000; Mon, 26 Nov 2018 09:45:06 +0530 From: "Varghese, Vipin" To: Stephen Hemminger CC: "Pattan, Reshma" , "dev@dpdk.org" , "thomas@monjalon.net" , "Mcnamara, John" , "Byrne, Stephen1" , "Glynn, Michael J" , "Patel, Amol" Thread-Topic: [PATCH v4 5/9] app/procinfo: add support for show tm Thread-Index: AQHUdc+zPfVf/p7zD0i8dNfiuPEpQaVaBQMAgAHdNJCAARuHAIAAdxGA//+lqACAAGIkoP//tUMAgABdKbD//8tNgACG1NyA Date: Mon, 26 Nov 2018 04:15:05 +0000 Message-ID: <4C9E0AB70F954A408CC4ADDBF0F8FA7D4D2C1FD9@BGSMSX101.gar.corp.intel.com> References: <20181106124912.40700-1-vipin.varghese@intel.com> <20181106124912.40700-5-vipin.varghese@intel.com> <3AEA2BF9852C6F48A459DA490692831F2A3D58A3@irsmsx110.ger.corp.intel.com> <4C9E0AB70F954A408CC4ADDBF0F8FA7D4D2C1435@BGSMSX101.gar.corp.intel.com> <3AEA2BF9852C6F48A459DA490692831F2A3D61A6@irsmsx110.ger.corp.intel.com> <4C9E0AB70F954A408CC4ADDBF0F8FA7D4D2C1A45@BGSMSX101.gar.corp.intel.com> <3AEA2BF9852C6F48A459DA490692831F2A3D6264@irsmsx110.ger.corp.intel.com> <4C9E0AB70F954A408CC4ADDBF0F8FA7D4D2C1A79@BGSMSX101.gar.corp.intel.com> <3AEA2BF9852C6F48A459DA490692831F2A3D62FB@irsmsx110.ger.corp.intel.com> <4C9E0AB70F954A408CC4ADDBF0F8FA7D4D2C1B26@BGSMSX101.gar.corp.intel.com> <20181123092215.50d299ae@xeon-e3> In-Reply-To: <20181123092215.50d299ae@xeon-e3> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ctpclassification: CTP_NT x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiZjM4MzQyYTctNmQyNy00YmE1LTk0YzYtMTRiYzU3N2IxYzVlIiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX05UIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE3LjEwLjE4MDQuNDkiLCJUcnVzdGVkTGFiZWxIYXNoIjoiVm1CTHRsa21IOG9hUE4xMldpR09mMzJrWENPeVRoa3ZNaGY1UlZ6dmVrMHFGcmdBVXh6QUQyc1I3TlR4Z3lvKyJ9 dlp-product: dlpe-windows dlp-version: 11.0.400.15 dlp-reaction: no-action x-originating-ip: [10.223.10.10] Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Subject: Re: [dpdk-dev] [PATCH v4 5/9] app/procinfo: add support for show tm 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: Mon, 26 Nov 2018 04:15:11 -0000 Hi Stephen, snipped >=20 > > > > > > > > > > > > > > > > > > > > > > > > > > > + if ((ret) | (!is_leaf)) > > > > > > > > > > + > > > > > > > > > > > > > > > > > > Is the operator here should be || ? > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > Check is done for 'if either ret is not 0 or if it ret is > > > > > > > > 0 but not leaf' we skip leaf details print. If 'ret is 0 an= d is leaf' > > > > > > > > we skip continue to print > > > > > > > leaf details. > > > > > > > > > > > > > > IMO, using logical operator over bitwise operator is good > > > > > > > here in if statement > > > > > > . > > > > > > > Like below.? > > > > > > > > > > > > > > If (ret || (is_leaf =3D=3D 0 )) > > > > > > > > > > > > Thanks for the information, if the logic is correct do I need > > > > > > to change for v6 > > > > > > > > > > > > > > > > OK in v6, but you can wait to hear more comments from others if > > > > > any before sending v6 . > > > > > > > > Ok thanks Reshma, but can you tell me how the earlier logic fails > > > > and runs slow compared to logical or? > > > > > > Not about faster or slower. > > > > Now I see, I was wondering the suggestion was for improvement for > performance. > > > > > > > > Logical operators are commonly used in decision making in C programmi= ng. > > > Bitwise operators are used in C programming to perform bit-level oper= ations. > > > > > > > Agreed > > > > > Since , above if condition is for decision making here logical || > > > operator will fit , so I am suggesting to use that. > > > > > > > But bitwise OR is not wrong right? > > > > > We don't need to do any bitwise manipulation in if condition to > > > make the decision, so bitwise | operator is not needed > > > > We can correct this in next patch set not v6 if this is only change for= 'show tm' >=20 > It could be that compiler might optimize logical into bitwise operation t= o avoid > cost of conditional branch (if there are no side effects). Checking with 'EXTRA_CFLAGS=3D-g' we get the code generated as=20 """ if ((ret) | (!is_leaf)) 9a512: 8b 85 28 fd ff ff mov eax,DWORD PTR [rbp-0x2d8] 9a518: 85 c0 test eax,eax 9a51a: 0f 94 c0 sete al 9a51d: 0f b6 c0 movzx eax,al 9a520: 0b 85 3c fd ff ff or eax,DWORD PTR [rbp-0x2c4] 9a526: 85 c0 test eax,eax 9a528: 75 74 jne 9a59e continue; """ Looks like the is_leaf is picked assembly 'test' is done then byte is set t= o 1 based on flags. This is then or with 'ret'. I think your observation is= correct 'compiler is remapping to or' Thanks Vipin Varghese