malloc: fix duplicate mem event notification

Message ID a3807707cec73b13b25cdd623440fbcb61f02134.1543501068.git.anatoly.burakov@intel.com (mailing list archive)
State Superseded, archived
Delegated to: Thomas Monjalon
Headers
Series malloc: fix duplicate mem event notification |

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/Intel-compilation success Compilation OK
ci/mellanox-Performance-Testing success Performance Testing PASS
ci/intel-Performance-Testing success Performance Testing PASS

Commit Message

Burakov, Anatoly Nov. 29, 2018, 2:21 p.m. UTC
  We already trigger a mem event notification inside the walk function,
no need to do it twice.

Fixes: f32c7c9de961 ("malloc: enable event callbacks for external memory")
Cc: stable@dpdk.org

Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
---
 lib/librte_eal/common/rte_malloc.c | 4 ----
 1 file changed, 4 deletions(-)
  

Comments

Wiles, Keith Nov. 29, 2018, 2:54 p.m. UTC | #1
> On Nov 29, 2018, at 8:21 AM, Anatoly Burakov <anatoly.burakov@intel.com> wrote:
> 
> We already trigger a mem event notification inside the walk function,
> no need to do it twice.
> 
> Fixes: f32c7c9de961 ("malloc: enable event callbacks for external memory")
> Cc: stable@dpdk.org
> 
> Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
> ---
> lib/librte_eal/common/rte_malloc.c | 4 ----
> 1 file changed, 4 deletions(-)
> 
> diff --git a/lib/librte_eal/common/rte_malloc.c b/lib/librte_eal/common/rte_malloc.c
> index 0da5ad5e8..750a83c2c 100644
> --- a/lib/librte_eal/common/rte_malloc.c
> +++ b/lib/librte_eal/common/rte_malloc.c
> @@ -518,10 +518,6 @@ sync_memory(const char *heap_name, void *va_addr, size_t len, bool attach)
> 		rte_errno = -wa.result;
> 		ret = -1;
> 	} else {
> -		/* notify all subscribers that a new memory area was added */
> -		if (attach)
> -			eal_memalloc_mem_event_notify(RTE_MEM_EVENT_ALLOC,
> -					va_addr, len);
> 		ret = 0;
> 	}

This change leaves
	else {
		ret = 0;
	}

Needs to be:
	else
		ret = 0;


> unlock:
> -- 
> 2.17.1

Regards,
Keith
  
Burakov, Anatoly Nov. 29, 2018, 3:36 p.m. UTC | #2
On 29-Nov-18 2:54 PM, Wiles, Keith wrote:
> 
> 
>> On Nov 29, 2018, at 8:21 AM, Anatoly Burakov <anatoly.burakov@intel.com> wrote:
>>
>> We already trigger a mem event notification inside the walk function,
>> no need to do it twice.
>>
>> Fixes: f32c7c9de961 ("malloc: enable event callbacks for external memory")
>> Cc: stable@dpdk.org
>>
>> Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
>> ---
>> lib/librte_eal/common/rte_malloc.c | 4 ----
>> 1 file changed, 4 deletions(-)
>>
>> diff --git a/lib/librte_eal/common/rte_malloc.c b/lib/librte_eal/common/rte_malloc.c
>> index 0da5ad5e8..750a83c2c 100644
>> --- a/lib/librte_eal/common/rte_malloc.c
>> +++ b/lib/librte_eal/common/rte_malloc.c
>> @@ -518,10 +518,6 @@ sync_memory(const char *heap_name, void *va_addr, size_t len, bool attach)
>> 		rte_errno = -wa.result;
>> 		ret = -1;
>> 	} else {
>> -		/* notify all subscribers that a new memory area was added */
>> -		if (attach)
>> -			eal_memalloc_mem_event_notify(RTE_MEM_EVENT_ALLOC,
>> -					va_addr, len);
>> 		ret = 0;
>> 	}
> 
> This change leaves
> 	else {
> 		ret = 0;
> 	}
> 
> Needs to be:
> 	else
> 		ret = 0;
> 

Checkpatch disagrees :P Brackets are needed everywhere if at least one 
of the branches is a multiline branch. No brackets needed only if all 
branches are one-line branches.

As a side note, I would also argue that we shouldn't leave bracket-less 
if statements altogether, because it makes for extra effort whenever a 
single-line statement inevitably becomes a multiline one (e.g. could be 
as simple as putting in a debug printf - i now have to add brackets 
everywhere...). But that's a topic for another day :)

> 
>> unlock:
>> -- 
>> 2.17.1
> 
> Regards,
> Keith
> 
>
  
Burakov, Anatoly Nov. 29, 2018, 3:36 p.m. UTC | #3
On 29-Nov-18 3:18 PM, Anatoly Burakov wrote:
> We already trigger a mem event notification inside the walk function,
> no need to do it twice.
> 
> Fixes: f32c7c9de961 ("malloc: enable event callbacks for external memory")
> Cc: stable@dpdk.org
> 
> Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
> ---
>   lib/librte_eal/common/rte_malloc.c | 4 ----
>   1 file changed, 4 deletions(-)
> 
> diff --git a/lib/librte_eal/common/rte_malloc.c b/lib/librte_eal/common/rte_malloc.c
> index 0da5ad5e8..750a83c2c 100644
> --- a/lib/librte_eal/common/rte_malloc.c
> +++ b/lib/librte_eal/common/rte_malloc.c
> @@ -518,10 +518,6 @@ sync_memory(const char *heap_name, void *va_addr, size_t len, bool attach)
>   		rte_errno = -wa.result;
>   		ret = -1;
>   	} else {
> -		/* notify all subscribers that a new memory area was added */
> -		if (attach)
> -			eal_memalloc_mem_event_notify(RTE_MEM_EVENT_ALLOC,
> -					va_addr, len);
>   		ret = 0;
>   	}
>   unlock:
> 
Oops, dupe.
  
Wiles, Keith Nov. 29, 2018, 3:47 p.m. UTC | #4
> On Nov 29, 2018, at 9:36 AM, Burakov, Anatoly <anatoly.burakov@intel.com> wrote:
> 
> On 29-Nov-18 2:54 PM, Wiles, Keith wrote:
>>> On Nov 29, 2018, at 8:21 AM, Anatoly Burakov <anatoly.burakov@intel.com> wrote:
>>> 
>>> We already trigger a mem event notification inside the walk function,
>>> no need to do it twice.
>>> 
>>> Fixes: f32c7c9de961 ("malloc: enable event callbacks for external memory")
>>> Cc: stable@dpdk.org
>>> 
>>> Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
>>> ---
>>> lib/librte_eal/common/rte_malloc.c | 4 ----
>>> 1 file changed, 4 deletions(-)
>>> 
>>> diff --git a/lib/librte_eal/common/rte_malloc.c b/lib/librte_eal/common/rte_malloc.c
>>> index 0da5ad5e8..750a83c2c 100644
>>> --- a/lib/librte_eal/common/rte_malloc.c
>>> +++ b/lib/librte_eal/common/rte_malloc.c
>>> @@ -518,10 +518,6 @@ sync_memory(const char *heap_name, void *va_addr, size_t len, bool attach)
>>> 		rte_errno = -wa.result;
>>> 		ret = -1;
>>> 	} else {
>>> -		/* notify all subscribers that a new memory area was added */
>>> -		if (attach)
>>> -			eal_memalloc_mem_event_notify(RTE_MEM_EVENT_ALLOC,
>>> -					va_addr, len);
>>> 		ret = 0;
>>> 	}
>> This change leaves
>> 	else {
>> 		ret = 0;
>> 	}
>> Needs to be:
>> 	else
>> 		ret = 0;
> 
> Checkpatch disagrees :P Brackets are needed everywhere if at least one of the branches is a multiline branch. No brackets needed only if all branches are one-line branches.
> 
> As a side note, I would also argue that we shouldn't leave bracket-less if statements altogether, because it makes for extra effort whenever a single-line statement inevitably becomes a multiline one (e.g. could be as simple as putting in a debug printf - i now have to add brackets everywhere...). But that's a topic for another day :)

Well it seems to be a very questionable formatting to leave the else with brackets in a single line style IMO.

Also look at section 1.6.2 in DPDK coding style as it states something different.

	* Closing and opening braces go on the same line as the else keyword.
	* Braces that are not necessary should be left out.

	if (test)
		stmt;
	else if (bar) {        
		stmt;
		stmt;
	} else
		stmt;

Note the last else here. Looking at this code it appears check patch is wrong here compared to the DPDK coding style.

> 
>>> unlock:
>>> -- 
>>> 2.17.1
>> Regards,
>> Keith
> 
> 
> -- 
> Thanks,
> Anatoly

Regards,
Keith
  
Ferruh Yigit Nov. 29, 2018, 5:05 p.m. UTC | #5
On 11/29/2018 3:47 PM, Wiles, Keith wrote:
> 
> 
>> On Nov 29, 2018, at 9:36 AM, Burakov, Anatoly <anatoly.burakov@intel.com> wrote:
>>
>> On 29-Nov-18 2:54 PM, Wiles, Keith wrote:
>>>> On Nov 29, 2018, at 8:21 AM, Anatoly Burakov <anatoly.burakov@intel.com> wrote:
>>>>
>>>> We already trigger a mem event notification inside the walk function,
>>>> no need to do it twice.
>>>>
>>>> Fixes: f32c7c9de961 ("malloc: enable event callbacks for external memory")
>>>> Cc: stable@dpdk.org
>>>>
>>>> Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
>>>> ---
>>>> lib/librte_eal/common/rte_malloc.c | 4 ----
>>>> 1 file changed, 4 deletions(-)
>>>>
>>>> diff --git a/lib/librte_eal/common/rte_malloc.c b/lib/librte_eal/common/rte_malloc.c
>>>> index 0da5ad5e8..750a83c2c 100644
>>>> --- a/lib/librte_eal/common/rte_malloc.c
>>>> +++ b/lib/librte_eal/common/rte_malloc.c
>>>> @@ -518,10 +518,6 @@ sync_memory(const char *heap_name, void *va_addr, size_t len, bool attach)
>>>> 		rte_errno = -wa.result;
>>>> 		ret = -1;
>>>> 	} else {
>>>> -		/* notify all subscribers that a new memory area was added */
>>>> -		if (attach)
>>>> -			eal_memalloc_mem_event_notify(RTE_MEM_EVENT_ALLOC,
>>>> -					va_addr, len);
>>>> 		ret = 0;
>>>> 	}
>>> This change leaves
>>> 	else {
>>> 		ret = 0;
>>> 	}
>>> Needs to be:
>>> 	else
>>> 		ret = 0;
>>
>> Checkpatch disagrees :P Brackets are needed everywhere if at least one of the branches is a multiline branch. No brackets needed only if all branches are one-line branches.
>>
>> As a side note, I would also argue that we shouldn't leave bracket-less if statements altogether, because it makes for extra effort whenever a single-line statement inevitably becomes a multiline one (e.g. could be as simple as putting in a debug printf - i now have to add brackets everywhere...). But that's a topic for another day :)
> 
> Well it seems to be a very questionable formatting to leave the else with brackets in a single line style IMO.
> 
> Also look at section 1.6.2 in DPDK coding style as it states something different.
> 
> 	* Closing and opening braces go on the same line as the else keyword.
> 	* Braces that are not necessary should be left out.
> 
> 	if (test)
> 		stmt;
> 	else if (bar) {        
> 		stmt;
> 		stmt;
> 	} else
> 		stmt;
> 
> Note the last else here. Looking at this code it appears check patch is wrong here compared to the DPDK coding style.

Yes we diverge a little there, Linux prefers if a leg of the branch has braces
other legs should have it, we left out braces whenever we can.
  

Patch

diff --git a/lib/librte_eal/common/rte_malloc.c b/lib/librte_eal/common/rte_malloc.c
index 0da5ad5e8..750a83c2c 100644
--- a/lib/librte_eal/common/rte_malloc.c
+++ b/lib/librte_eal/common/rte_malloc.c
@@ -518,10 +518,6 @@  sync_memory(const char *heap_name, void *va_addr, size_t len, bool attach)
 		rte_errno = -wa.result;
 		ret = -1;
 	} else {
-		/* notify all subscribers that a new memory area was added */
-		if (attach)
-			eal_memalloc_mem_event_notify(RTE_MEM_EVENT_ALLOC,
-					va_addr, len);
 		ret = 0;
 	}
 unlock: