All of lore.kernel.org
 help / color / mirror / Atom feed
From: Wei Yang <richard.weiyang@gmail.com>
To: Borislav Petkov <bp@alien8.de>
Cc: Wei Yang <richard.weiyang@gmail.com>,
	kirill@shutemov.name, tglx@linutronix.de, mingo@redhat.com,
	hpa@zytor.com, tj@kernel.org, rientjes@google.com,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH V2 1/3] x86/numa_emulation: fix potential memory leak
Date: Tue, 27 Jun 2017 07:11:27 +0800	[thread overview]
Message-ID: <20170626231127.GA53180@WeideMacBook-Pro.local> (raw)
In-Reply-To: <20170626153149.b2x5pcipzuzaguuw@pd.tnic>

[-- Attachment #1: Type: text/plain, Size: 2678 bytes --]

On Mon, Jun 26, 2017 at 05:31:49PM +0200, Borislav Petkov wrote:
>On Tue, May 02, 2017 at 09:04:51PM +0800, Wei Yang wrote:
>> numa_emulation() needs to allocate a space for phys_dist[] temporarily,
>
>s/a //
>
>> while current code may miss to release this when dfl_phys_nid ==
>> NUMA_NO_NODE.
>
>And when is "dfl_phys_nid == NUMA_NO_NODE"? What does it mean actually?
>

It means numa emulation is not properly configured.

>> It is observed in code review instead of in a real case.
>> This patch fixes this by re-order the code path.
>> 
>> Signed-off-by: Wei Yang <richard.weiyang@gmail.com>
>> Acked-by: David Rientjes <rientjes@google.com>
>> ---
>>  arch/x86/mm/numa_emulation.c | 36 ++++++++++++++++++------------------
>>  1 file changed, 18 insertions(+), 18 deletions(-)
>> 
>> diff --git a/arch/x86/mm/numa_emulation.c b/arch/x86/mm/numa_emulation.c
>> index a8f90ce3dedf..eb017c816de6 100644
>> --- a/arch/x86/mm/numa_emulation.c
>> +++ b/arch/x86/mm/numa_emulation.c
>> @@ -353,6 +353,24 @@ void __init numa_emulation(struct numa_meminfo *numa_meminfo, int numa_dist_cnt)
>>  		goto no_emu;
>>  	}
>>  
>> +	/*
>> +	 * Determine the max emulated nid and the default phys nid to use
>> +	 * for unmapped nodes.
>> +	 */
>> +	max_emu_nid = 0;
>> +	dfl_phys_nid = NUMA_NO_NODE;
>> +	for (i = 0; i < ARRAY_SIZE(emu_nid_to_phys); i++) {
>> +		if (emu_nid_to_phys[i] != NUMA_NO_NODE) {
>> +			max_emu_nid = i;
>> +			if (dfl_phys_nid == NUMA_NO_NODE)
>> +				dfl_phys_nid = emu_nid_to_phys[i];
>> +		}
>> +	}
>> +	if (dfl_phys_nid == NUMA_NO_NODE) {
>> +		pr_warn("NUMA: Warning: can't determine default physical node, disabling emulation\n");
>> +		goto no_emu;
>> +	}
>> +
>
>Well, that function numa_emulation() does a looot of things and could
>very well be split into subfunctions, which should make the whole path
>more readable.
>

You are right. The whole function contains several blocks which could be
split. While this patch focus on the memory leak issue. For readable code, we
could come up with a separate patch to refine it.

>And this chunk you're moving is kinda begging to be a separate
>function...

Well, to this particular piece, have a for loop within a function doesn't look
like a big deal to me. So you prefer to take every for loop in this function
out?

Last but not the least, these are two issues:

The problem this patch wants to address is the memory leak, while the concern
here you mentioned is the coding style.

>
>-- 
>Regards/Gruss,
>    Boris.
>
>Good mailing practices for 400: avoid top-posting and trim the reply.

-- 
Wei Yang
Help you, Help me

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 819 bytes --]

  reply	other threads:[~2017-06-26 23:11 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-05-02 13:04 [PATCH V2 0/3] Refine numa_emulation Wei Yang
2017-05-02 13:04 ` [PATCH V2 1/3] x86/numa_emulation: fix potential memory leak Wei Yang
2017-06-26 15:31   ` Borislav Petkov
2017-06-26 23:11     ` Wei Yang [this message]
2017-06-27 18:10       ` Borislav Petkov
2017-06-27 23:37         ` Wei Yang
2017-05-02 13:04 ` [PATCH V2 2/3] x86/numa_emulation: assign physnode_mask directly from numa_nodes_parsed Wei Yang
2017-06-26 18:40   ` Borislav Petkov
2017-06-26 23:12     ` Wei Yang
2017-05-02 13:04 ` [PATCH V2 3/3] x86/numa_emulation: restructures numa_nodes_parsed from emulated nodes Wei Yang
2017-06-06  3:15 ` [PATCH V2 0/3] Refine numa_emulation Wei Yang
2017-06-25  0:26 ` Wei Yang

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20170626231127.GA53180@WeideMacBook-Pro.local \
    --to=richard.weiyang@gmail.com \
    --cc=bp@alien8.de \
    --cc=hpa@zytor.com \
    --cc=kirill@shutemov.name \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@redhat.com \
    --cc=rientjes@google.com \
    --cc=tglx@linutronix.de \
    --cc=tj@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.