From: Michael Ellerman <mpe@ellerman.id.au>
To: Mike Rapoport <rppt@linux.ibm.com>
Cc: Andrew Morton <akpm@linux-foundation.org>,
Arnd Bergmann <arnd@arndb.de>,
Benjamin Herrenschmidt <benh@kernel.crashing.org>,
"David S. Miller" <davem@davemloft.net>,
Guan Xuetao <gxt@pku.edu.cn>, Greentime Hu <green.hu@gmail.com>,
Jonas Bonn <jonas@southpole.se>, Michal Hocko <mhocko@suse.com>,
Michal Simek <monstr@monstr.eu>, Mark Salter <msalter@redhat.com>,
Paul Mackerras <paulus@samba.org>, Rich Felker <dalias@libc.org>,
Russell King <linux@armlinux.org.uk>,
Stefan Kristiansson <stefan.kristiansson@saunalahti.fi>,
Stafford Horne <shorne@gmail.com>,
Vincent Chen <deanbo422@gmail.com>,
Yoshinori Sato <ysato@users.sourceforge.jp>,
linux-arm-kernel@lists.infradead.org,
linux-c6x-dev@linux-c6x.org, linux-kernel@vger.kernel.org,
linux-mm@kvack.org, linux-sh@vger.kernel.org,
linuxppc-dev@lists.ozlabs.org, openrisc@lists.librecores.org,
sparclinux@vger.kernel.org
Subject: Re: [PATCH v2 1/6] powerpc: prefer memblock APIs returning virtual address
Date: Wed, 05 Dec 2018 23:37:44 +1100 [thread overview]
Message-ID: <87mupkkv3b.fsf@concordia.ellerman.id.au> (raw)
In-Reply-To: <20181204171327.GL26700@rapoport-lnx>
Mike Rapoport <rppt@linux.ibm.com> writes:
> On Tue, Dec 04, 2018 at 08:59:41PM +1100, Michael Ellerman wrote:
>> Hi Mike,
>>
>> Thanks for trying to clean these up.
>>
>> I think a few could be improved though ...
>>
>> Mike Rapoport <rppt@linux.ibm.com> writes:
>> > diff --git a/arch/powerpc/kernel/paca.c b/arch/powerpc/kernel/paca.c
>> > index 913bfca..fa884ad 100644
>> > --- a/arch/powerpc/kernel/paca.c
>> > +++ b/arch/powerpc/kernel/paca.c
>> > @@ -42,17 +42,15 @@ static void *__init alloc_paca_data(unsigned long size, unsigned long align,
>> > nid = early_cpu_to_node(cpu);
>> > }
>> >
>> > - pa = memblock_alloc_base_nid(size, align, limit, nid, MEMBLOCK_NONE);
>> > - if (!pa) {
>> > - pa = memblock_alloc_base(size, align, limit);
>> > - if (!pa)
>> > - panic("cannot allocate paca data");
>> > - }
>> > + ptr = memblock_alloc_try_nid_raw(size, align, MEMBLOCK_LOW_LIMIT,
>> > + limit, nid);
>> > + if (!ptr)
>> > + panic("cannot allocate paca data");
>>
>> The old code doesn't zero, but two of the three callers of
>> alloc_paca_data() *do* zero the whole allocation, so I'd be happy if we
>> did it in here instead.
>
> I looked at the callers and couldn't tell if zeroing memory in
> init_lppaca() would be ok.
> I'll remove the _raw here.
Thanks.
>> That would mean we could use memblock_alloc_try_nid() avoiding the need
>> to panic() manually.
>
> Actual, my plan was to remove panic() from all memblock_alloc* and make all
> callers to check the returned value.
> I believe it's cleaner and also allows more meaningful panic messages. Not
> mentioning the reduction of memblock code.
Hmm, not sure.
I see ~200 calls to the panicking functions, that seems like a lot of
work to change all those.
And I think I disagree on the "more meaningful panic message". This is a
perfect example, compare:
panic("cannot allocate paca data");
to:
panic("%s: Failed to allocate %llu bytes align=0x%llx nid=%d from=%pa max_addr=%pa\n",
__func__, (u64)size, (u64)align, nid, &min_addr, &max_addr);
The former is basically useless, whereas the second might at least give
you a hint as to *why* the allocation failed.
I know it's kind of odd for a function to panic() rather than return an
error, but memblock is kind of special because it's so early in boot.
Most of these allocations have to succeed to get the system up and
running.
cheers
next prev parent reply other threads:[~2018-12-05 12:37 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-12-03 15:47 [PATCH v2 0/6] memblock: simplify several early memory allocation Mike Rapoport
2018-12-03 15:47 ` [PATCH v2 1/6] powerpc: prefer memblock APIs returning virtual address Mike Rapoport
2018-12-04 9:59 ` Michael Ellerman
2018-12-04 17:13 ` Mike Rapoport
2018-12-05 12:37 ` Michael Ellerman [this message]
2018-12-05 21:22 ` Mike Rapoport
2018-12-03 15:47 ` [PATCH v2 2/6] microblaze: prefer memblock API " Mike Rapoport
2018-12-05 15:29 ` Michal Simek
2018-12-06 7:31 ` Mike Rapoport
2018-12-03 15:47 ` [PATCH v2 3/6] sh: prefer memblock APIs " Mike Rapoport
2018-12-03 16:10 ` Sam Ravnborg
2018-12-03 16:28 ` Mike Rapoport
2018-12-03 15:47 ` [PATCH v2 4/6] openrisc: simplify pte_alloc_one_kernel() Mike Rapoport
2018-12-03 15:47 ` [PATCH v2 5/6] arch: simplify several early memory allocations Mike Rapoport
2018-12-03 16:29 ` Sam Ravnborg
2018-12-03 16:49 ` Mike Rapoport
2018-12-06 18:08 ` Sam Ravnborg
2018-12-06 21:30 ` Mike Rapoport
2018-12-03 15:47 ` [PATCH v2 6/6] arm, unicore32: remove early_alloc*() wrappers Mike Rapoport
2018-12-03 16:27 ` Rob Herring
2018-12-03 16:55 ` Mike Rapoport
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=87mupkkv3b.fsf@concordia.ellerman.id.au \
--to=mpe@ellerman.id.au \
--cc=akpm@linux-foundation.org \
--cc=arnd@arndb.de \
--cc=benh@kernel.crashing.org \
--cc=dalias@libc.org \
--cc=davem@davemloft.net \
--cc=deanbo422@gmail.com \
--cc=green.hu@gmail.com \
--cc=gxt@pku.edu.cn \
--cc=jonas@southpole.se \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-c6x-dev@linux-c6x.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=linux-sh@vger.kernel.org \
--cc=linux@armlinux.org.uk \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=mhocko@suse.com \
--cc=monstr@monstr.eu \
--cc=msalter@redhat.com \
--cc=openrisc@lists.librecores.org \
--cc=paulus@samba.org \
--cc=rppt@linux.ibm.com \
--cc=shorne@gmail.com \
--cc=sparclinux@vger.kernel.org \
--cc=stefan.kristiansson@saunalahti.fi \
--cc=ysato@users.sourceforge.jp \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox