linux-arch.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: David Miller <davem@davemloft.net>
To: yinghai@kernel.org
Cc: mingo@elte.hu, tglx@linutronix.de, hpa@zytor.com,
	akpm@linux-foundation.org, linux-kernel@vger.kernel.org,
	linux-arch@vger.kernel.org
Subject: Re: [RFC PATCH 6/6] sparc64: use early_res and nobootmem
Date: Wed, 10 Mar 2010 14:49:16 -0800 (PST)	[thread overview]
Message-ID: <20100310.144916.143963072.davem@davemloft.net> (raw)
In-Reply-To: <4B981B22.5080103@kernel.org>

From: Yinghai Lu <yinghai@kernel.org>
Date: Wed, 10 Mar 2010 14:20:18 -0800

> On 03/10/2010 02:04 PM, David Miller wrote:
>> From: Yinghai Lu <yinghai@kernel.org>
>> Date: Wed, 10 Mar 2010 13:24:27 -0800
>> 
>>> use early_res/fw_memmap to replace lmb, so could use early_res replace bootme
>>> later.
>>>
>>> Signed-off-by: Yinghai Lu <yinghai@kernel.org>
>> 
>> This doesn't boot, it looks like early_res is not initialized
>> early enough, the backtrace is:
>> 
>> [    0.000000] Remapping the kernel... done.
>> [    0.000000] Kernel panic - not syncing: can not find more space for early_res array
>> [    0.000000] Call Trace:
>> [    0.000000]  [0000000000882c48] __check_and_double_early_res+0xc0/0x1c8
>> [    0.000000]  [0000000000882f18] reserve_early+0x10/0x38
>> [    0.000000]  [000000000087b894] prom_early_alloc+0x48/0x7c
>> [    0.000000]  [000000000087b3e4] get_one_property+0x28/0x50
>> [    0.000000]  [000000000087b588] prom_create_node+0x44/0xe8
>> [    0.000000]  [000000000087b6d0] prom_build_tree+0x1c/0xac
>> [    0.000000]  [000000000087b7b4] prom_build_devicetree+0x54/0x80
>> [    0.000000]  [000000000087fd34] paging_init+0x69c/0x1268
>> [    0.000000]  [00000000008786f4] start_kernel+0x88/0x374
>> [    0.000000]  [000000000070589c] tlb_fixup_done+0x98/0xa0
>> [    0.000000]  [0000000000000000] (null)
> 
> looks like we need to increase MAX_EARLY_RES_X in kernel/early_res.c

Ummm, hoestly, how do you know?

Is there a debugging statement that triggered and printed a message
above which told you this?  No, nothing like that happened.

The truth is you have no idea whatsoever because early_res has been
written in a way that errors are hard to diagnose.

It's definitely not a size issue, there are only 4 ranges that exist
in this machine.

I don't know what the actual problem is and I don't have time to debug
it right now, please try to figure it out and send me patches to try.

Actually that points out another regression of early_res, it lacks a
"xxx=debug" command line option like LMB does, which would have
allowed me to debug this very easily.

Also, there are other problems with your changes.

For example, the transformation you make in
arch/sparc/mm/init_64.c:alloc_node_data() is absolutely not
equivalent.

NUMA nodes can have memory in discontiguous regions, the LMB node
based allocator gets it right, whereas your code could allocate memory
on the wrong node.

Only the "nid_range()" callback passed to lmb_alloc_nid() is able to
determine nodes properly.

This is yet another regression of your early_res code.

The more and more I look at the early_res code the more I see
that:

1) LMB could do everything early_res does

2) early_res cannot do everything LMB can

Can you seriously start looking at using LMB instead of this new
stuff which seems at every element to be a step backwards?

Thank you.

  reply	other threads:[~2010-03-10 22:48 UTC|newest]

Thread overview: 35+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-03-10 21:24 [PATCH -v2 0/6] early_res: fw_memmap.c Yinghai Lu
2010-03-10 21:24 ` [PATCH 1/4] x86: add get_centaur_ram_top Yinghai Lu
2010-03-10 21:24   ` Yinghai Lu
2010-03-10 21:24 ` [PATCH 2/4] x86: make e820 to be static Yinghai Lu
2010-03-10 21:24 ` [PATCH 3/4] x86: use wake_system_ram_range instead of e820_any_mapped in agp path Yinghai Lu
2010-03-10 21:24   ` Yinghai Lu
2010-03-10 21:24 ` [PATCH 4/4] x86: make e820 to be initdata Yinghai Lu
2010-03-10 21:24 ` [PATCH 5/6] early_res: seperate common memmap func from e820.c to fw_memmap.c Yinghai Lu
2010-03-10 21:24   ` Yinghai Lu
2010-03-10 21:50   ` Russell King
2010-03-10 21:50     ` Russell King
2010-03-10 21:55     ` David Miller
2010-03-10 22:05     ` Yinghai Lu
2010-03-10 22:05       ` Yinghai Lu
2010-03-10 23:46   ` Paul Mackerras
2010-03-10 23:59     ` Yinghai Lu
2010-03-10 21:24 ` [RFC PATCH 6/6] sparc64: use early_res and nobootmem Yinghai Lu
2010-03-10 21:24   ` Yinghai Lu
2010-03-10 21:30   ` David Miller
2010-03-10 21:33     ` David Miller
2010-03-10 21:34       ` Yinghai Lu
2010-03-10 21:36         ` David Miller
2010-03-10 22:10           ` Yinghai Lu
2010-03-10 22:17             ` David Miller
2010-03-10 22:31               ` Yinghai Lu
2010-03-10 22:36                 ` David Miller
2010-03-10 23:01                   ` Yinghai Lu
2010-03-10 23:47                   ` Benjamin Herrenschmidt
2010-03-11  0:02                     ` Yinghai Lu
2010-03-11  3:59                       ` Paul Mundt
2010-03-10 22:04   ` David Miller
2010-03-10 22:20     ` Yinghai Lu
2010-03-10 22:49       ` David Miller [this message]
2010-03-10 23:05         ` Yinghai Lu
2010-03-10 23:44   ` Benjamin Herrenschmidt

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=20100310.144916.143963072.davem@davemloft.net \
    --to=davem@davemloft.net \
    --cc=akpm@linux-foundation.org \
    --cc=hpa@zytor.com \
    --cc=linux-arch@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@elte.hu \
    --cc=tglx@linutronix.de \
    --cc=yinghai@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).