Re: [PATCH v3 08/23] mm/memblock: Add memblock memory allocationapis
From: Santosh Shilimkar
Date: Sat Dec 14 2013 - 14:48:59 EST
On Saturday 14 December 2013 06:08 AM, Tejun Heo wrote:
> Hello, Santosh.
>
> On Fri, Dec 13, 2013 at 07:52:42PM -0500, Santosh Shilimkar wrote:
>>>> +static void * __init memblock_virt_alloc_internal(
>>>> + phys_addr_t size, phys_addr_t align,
>>>> + phys_addr_t min_addr, phys_addr_t max_addr,
>>>> + int nid)
>>>> +{
>>>> + phys_addr_t alloc;
>>>> + void *ptr;
>>>> +
>>>> + if (nid == MAX_NUMNODES)
>>>> + pr_warn("%s: usage of MAX_NUMNODES is depricated. Use NUMA_NO_NODE\n",
>>>> + __func__);
>>>
>>> Why not use WARN_ONCE()? Also, shouldn't nid be set to NUMA_NO_NODE
>>> here?
>>>
>> You want all the users using MAX_NUMNODES to know about it so that
>> the wrong usage can be fixed. WARN_ONCE will hide that.
>
> Well, it doesn't really help anyone to be printing multiple messages
> without any info on who was the caller and if this thing is gonna be
> in mainline triggering of the warning should be rare anyway. It's
> more of a tool to gather one-off cases in the wild. WARN_ONCE()
> usually is the better choice as otherwise the warnings can swamp the
> machine and console output in certain cases.
>
Fair enough.
>>> ...
>>>> + if (nid != NUMA_NO_NODE) {
>>>
>>> Otherwise, the above test is broken.
>>>
>> So the idea was just to warn the users and allow them to fix
>> the code. Well we are just allowing the existing users of using
>> either MAX_NUMNODES or NUMA_NO_NODE continue to work. Thats what
>> we discussed, right ?
>
> Huh? Yeah, sure. You're testing @nid against MAX_NUMNODES at the
> beginning of the function. If it's MAX_NUMNODES, you print a warning
> but nothing else, so the if() conditional above, which should succeed,
> would fail. Am I missing sth here?
>
I get it now. Sorry I missed your point in first part. We will fix this.
Regards,
Santosh
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/