From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <andy@warmcat.com>
Received: from mail.warmcat.com (mail.warmcat.com [163.172.24.82])
 by dpdk.org (Postfix) with ESMTP id 3E4FB1BC4D
 for <dev@dpdk.org>; Mon, 14 May 2018 01:22:05 +0200 (CEST)
To: Thomas Monjalon <thomas@monjalon.net>
Cc: dev@dpdk.org, bruce.richardson@intel.com, olivier.matz@6wind.com
References: <152609021699.121661.5295227351721865436.stgit@localhost.localdomain>
 <152609036246.121661.18385114679529023835.stgit@localhost.localdomain>
 <1908380.h0rCPQG6nq@xps>
From: Andy Green <andy@warmcat.com>
Message-ID: <2c8be5ff-70ef-6081-31f5-bcbb8a0b1a18@warmcat.com>
Date: Mon, 14 May 2018 07:21:52 +0800
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101
 Thunderbird/52.7.0
In-Reply-To: <1908380.h0rCPQG6nq@xps>
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Language: en-US
Content-Transfer-Encoding: 7bit
Subject: Re: [dpdk-dev] [PATCH v3 08/24] rte_ring_generic.h: stack
 declarations before code
X-BeenThere: dev@dpdk.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: DPDK patches and discussions <dev.dpdk.org>
List-Unsubscribe: <https://dpdk.org/ml/options/dev>,
 <mailto:dev-request@dpdk.org?subject=unsubscribe>
List-Archive: <http://dpdk.org/ml/archives/dev/>
List-Post: <mailto:dev@dpdk.org>
List-Help: <mailto:dev-request@dpdk.org?subject=help>
List-Subscribe: <https://dpdk.org/ml/listinfo/dev>,
 <mailto:dev-request@dpdk.org?subject=subscribe>
X-List-Received-Date: Sun, 13 May 2018 23:22:05 -0000



On 05/14/2018 12:47 AM, Thomas Monjalon wrote:
> 12/05/2018 03:59, Andy Green:
>> /projects/lagopus/src/dpdk/build/include/rte_ring_generic.h:
>> In function '__rte_ring_move_prod_head':
>> /projects/lagopus/src/dpdk/build/include/rte_ring_generic.h:76:3:
>> warning: ISO C90 forbids mixed declarations and code
>> [-Wdeclaration-after-statement]
>>     const uint32_t cons_tail = r->cons.tail;
>>     ^~~~~
>> /projects/lagopus/src/dpdk/build/include/rte_ring_generic.h:
>> In function '__rte_ring_move_cons_head':
>> /projects/lagopus/src/dpdk/build/include/rte_ring_generic.h:147:3:
>> warning: ISO C90 forbids mixed declarations and code
>> [-Wdeclaration-after-statement]
>>     const uint32_t prod_tail = r->prod.tail;
> 
> The fix line is:
> Fixes: 0dfc98c507b1 ("ring: separate out head index manipulation")

OK... people can just use git blame at the time they want to know this 
though.

> But I wonder why it was done like this. Maybe there is a hidden reason.
> Bruce? Olivier?

It's not crazy to do it for clarity, or when you thought there'd be more 
uses of the calculation.  At any rate, I don't see any openings for it 
to affect the code changing it.

-Andy

>> Signed-off-by: Andy Green <andy@warmcat.com>
> [...]
>> --- a/lib/librte_ring/rte_ring_generic.h
>> +++ b/lib/librte_ring/rte_ring_generic.h
>> @@ -73,14 +73,13 @@ __rte_ring_move_prod_head(struct rte_ring *r, int is_sp,
>>   		 */
>>   		rte_smp_rmb();
>>   
>> -		const uint32_t cons_tail = r->cons.tail;
>>   		/*
>>   		 *  The subtraction is done between two unsigned 32bits value
>>   		 * (the result is always modulo 32 bits even if we have
>>   		 * *old_head > cons_tail). So 'free_entries' is always between 0
>>   		 * and capacity (which is < size).
>>   		 */
>> -		*free_entries = (capacity + cons_tail - *old_head);
>> +		*free_entries = (capacity + r->cons.tail - *old_head);
> 
> 
>