All of lore.kernel.org
 help / color / mirror / Atom feed
From: Rob Herring <robh@kernel.org>
To: Will Deacon <will.deacon@arm.com>
Cc: David Daney <ddaney@caviumnetworks.com>,
	David Daney <ddaney.cavm@gmail.com>,
	"linux-arm-kernel@lists.infradead.org" 
	<linux-arm-kernel@lists.infradead.org>,
	Pawel Moll <pawel.moll@arm.com>,
	Mark Rutland <mark.rutland@arm.com>,
	Ian Campbell <ijc+devicetree@hellion.org.uk>,
	Kumar Gala <galak@codeaurora.org>,
	"devicetree@vger.kernel.org" <devicetree@vger.kernel.org>,
	Ard Biesheuvel <ard.biesheuvel@linaro.org>,
	Frank Rowand <frowand.list@gmail.com>,
	Grant Likely <grant.likely@linaro.org>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Matt Fleming <matt@codeblueprint.co.uk>,
	"linux-efi@vger.kernel.org" <linux-efi@vger.kernel.org>,
	Ganapatrao Kulkarni <gkulkarni@caviumnetworks.com>,
	Robert Richter <rrichter@cavium.com>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	David Daney <david.daney@cavium.com>
Subject: Re: [PATCH v11 08/10] dt, numa: Add NUMA dt binding implementation.
Date: Tue, 1 Mar 2016 10:56:19 -0600	[thread overview]
Message-ID: <CAL_JsqKASAdfM_s=G3Bd+cGrQz7f914FYFuL3r=sdhscGjx9SQ@mail.gmail.com> (raw)
In-Reply-To: <20160226182734.GM29125@arm.com>

On Fri, Feb 26, 2016 at 12:27 PM, Will Deacon <will.deacon@arm.com> wrote:
> On Thu, Feb 25, 2016 at 05:26:34PM -0800, David Daney wrote:
>> On 02/23/2016 11:36 AM, Rob Herring wrote:
>> >On Fri, Feb 19, 2016 at 05:13:17PM -0800, David Daney wrote:
>> >>From: Ganapatrao Kulkarni <gkulkarni@caviumnetworks.com>
>> >>
>> >>ADD device tree node parsing for NUMA topology using device
>> >>"numa-node-id" property distance-map.
>> >
>> >I still want an adequate explanation why NUMA setup cannot be done with
>> >an unflattened tree. PowerPC manages to do that and should have a
>> >similar init flow being memblock based, so I would expect arm64 can too.
>>
>> Many things could be done.  Really, we want to know what *should* be done.
>>
>> In the context of the current arm64 memory initialization we (more or less)
>> do:
>>
>>  1) early_init_fdt_scan_reserved_mem();
>>  2) memory_present()
>>  3) sparse_init()
>>  4) other things
>>  5) unflatten_device_tree()
>>
>> We are already reading information out of the FDT at #1.
>>
>> This patch set adds a step between 1 and 2 where we read NUMA information
>> out of the FDT.
>>
>> Hypothetically, it might be possible to rewrite the arm64 setup code so that
>> the ordering was different, and the NUMA setup was done on the unflattened
>> tree, but that would certainly be a much more invasive patch.
>
> I just looked at what PPC get up to, and there's really not an obvious
> way we could do that on arm64. They run whole swathes of the kernel
> with the MMU off directly from head.S to parse the flattened tree and
> get memblock up really early. On arm64, the head.S environment is
> considerably more hostile, and I don't think we'd want to do that (not
> to mention the interaction with EFI stub).
>
> So I'm perfectly happy for this to operate on the flattened tree.

Of course you are. The code is not in your tree. I'm all for keeping
things out of /arch, but just want to understand what are the
dependencies which aren't clearly spelled out here.

Rob

WARNING: multiple messages have this Message-ID (diff)
From: robh@kernel.org (Rob Herring)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v11 08/10] dt, numa: Add NUMA dt binding implementation.
Date: Tue, 1 Mar 2016 10:56:19 -0600	[thread overview]
Message-ID: <CAL_JsqKASAdfM_s=G3Bd+cGrQz7f914FYFuL3r=sdhscGjx9SQ@mail.gmail.com> (raw)
In-Reply-To: <20160226182734.GM29125@arm.com>

On Fri, Feb 26, 2016 at 12:27 PM, Will Deacon <will.deacon@arm.com> wrote:
> On Thu, Feb 25, 2016 at 05:26:34PM -0800, David Daney wrote:
>> On 02/23/2016 11:36 AM, Rob Herring wrote:
>> >On Fri, Feb 19, 2016 at 05:13:17PM -0800, David Daney wrote:
>> >>From: Ganapatrao Kulkarni <gkulkarni@caviumnetworks.com>
>> >>
>> >>ADD device tree node parsing for NUMA topology using device
>> >>"numa-node-id" property distance-map.
>> >
>> >I still want an adequate explanation why NUMA setup cannot be done with
>> >an unflattened tree. PowerPC manages to do that and should have a
>> >similar init flow being memblock based, so I would expect arm64 can too.
>>
>> Many things could be done.  Really, we want to know what *should* be done.
>>
>> In the context of the current arm64 memory initialization we (more or less)
>> do:
>>
>>  1) early_init_fdt_scan_reserved_mem();
>>  2) memory_present()
>>  3) sparse_init()
>>  4) other things
>>  5) unflatten_device_tree()
>>
>> We are already reading information out of the FDT at #1.
>>
>> This patch set adds a step between 1 and 2 where we read NUMA information
>> out of the FDT.
>>
>> Hypothetically, it might be possible to rewrite the arm64 setup code so that
>> the ordering was different, and the NUMA setup was done on the unflattened
>> tree, but that would certainly be a much more invasive patch.
>
> I just looked at what PPC get up to, and there's really not an obvious
> way we could do that on arm64. They run whole swathes of the kernel
> with the MMU off directly from head.S to parse the flattened tree and
> get memblock up really early. On arm64, the head.S environment is
> considerably more hostile, and I don't think we'd want to do that (not
> to mention the interaction with EFI stub).
>
> So I'm perfectly happy for this to operate on the flattened tree.

Of course you are. The code is not in your tree. I'm all for keeping
things out of /arch, but just want to understand what are the
dependencies which aren't clearly spelled out here.

Rob

  reply	other threads:[~2016-03-01 16:56 UTC|newest]

Thread overview: 57+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-02-20  1:13 [PATCH v11 00/10] arm64, numa: Add numa support for arm64 platforms David Daney
2016-02-20  1:13 ` David Daney
2016-02-20  1:13 ` David Daney
2016-02-20  1:13 ` [PATCH v11 01/10] of/fdt: make generic early_init_dt_add_memory_arch() a weak alias David Daney
2016-02-20  1:13   ` David Daney
2016-02-20  1:13 ` [PATCH v11 02/10] arm64: override generic version of early_init_dt_add_memory_arch() David Daney
2016-02-20  1:13   ` David Daney
2016-02-20  1:13 ` [PATCH v11 03/10] efi: move FDT handling to separate object file David Daney
2016-02-20  1:13   ` David Daney
2016-02-20  1:13 ` [PATCH v11 04/10] arm64/efi: move EFI /chosen node parsing before early FDT processing David Daney
2016-02-20  1:13   ` David Daney
2016-02-20  1:13 ` [PATCH v11 05/10] arm64/efi: ignore DT memory nodes instead of removing them David Daney
2016-02-20  1:13   ` David Daney
2016-02-20  1:13 ` [PATCH v11 06/10] arm64/efi: ignore DT memreserve entries " David Daney
2016-02-20  1:13   ` David Daney
2016-02-20  1:13 ` [PATCH v11 07/10] Documentation, dt, numa: dt bindings for NUMA David Daney
2016-02-20  1:13   ` David Daney
2016-02-20  1:13 ` [PATCH v11 08/10] dt, numa: Add NUMA dt binding implementation David Daney
2016-02-20  1:13   ` David Daney
2016-02-23 19:36   ` Rob Herring
2016-02-23 19:36     ` Rob Herring
2016-02-23 19:36     ` Rob Herring
2016-02-26  1:26     ` David Daney
2016-02-26  1:26       ` David Daney
2016-02-26  1:26       ` David Daney
2016-02-26 18:27       ` Will Deacon
2016-02-26 18:27         ` Will Deacon
2016-02-26 18:27         ` Will Deacon
2016-03-01 16:56         ` Rob Herring [this message]
2016-03-01 16:56           ` Rob Herring
2016-03-01 16:56           ` Rob Herring
2016-03-01 16:47       ` Rob Herring
2016-03-01 16:47         ` Rob Herring
2016-03-01 16:47         ` Rob Herring
2016-03-01 16:57         ` David Daney
2016-03-01 16:57           ` David Daney
2016-03-01 16:57           ` David Daney
2016-03-01 17:43           ` Rob Herring
2016-03-01 17:43             ` Rob Herring
2016-03-01 17:43             ` Rob Herring
2016-03-01 17:58             ` David Daney
2016-03-01 17:58               ` David Daney
2016-03-01 17:58               ` David Daney
2016-02-20  1:13 ` [PATCH v11 09/10] arm64, numa: Add NUMA support for arm64 platforms David Daney
2016-02-20  1:13   ` David Daney
2016-02-20  1:13   ` David Daney
2016-02-20  1:13 ` [PATCH v11 10/10] arm64, mm, numa: Add NUMA balancing support for arm64 David Daney
2016-02-20  1:13   ` David Daney
2016-02-20  8:20 ` [PATCH v11 00/10] arm64, numa: Add numa support for arm64 platforms Ard Biesheuvel
2016-02-20  8:20   ` Ard Biesheuvel
2016-02-20  8:20   ` Ard Biesheuvel
2016-02-20 10:39   ` Robert Richter
2016-02-20 10:39     ` Robert Richter
2016-02-20 10:39     ` Robert Richter
2016-02-20 10:44     ` Ard Biesheuvel
2016-02-20 10:44       ` Ard Biesheuvel
2016-02-20 10:44       ` Ard Biesheuvel

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='CAL_JsqKASAdfM_s=G3Bd+cGrQz7f914FYFuL3r=sdhscGjx9SQ@mail.gmail.com' \
    --to=robh@kernel.org \
    --cc=ard.biesheuvel@linaro.org \
    --cc=catalin.marinas@arm.com \
    --cc=david.daney@cavium.com \
    --cc=ddaney.cavm@gmail.com \
    --cc=ddaney@caviumnetworks.com \
    --cc=devicetree@vger.kernel.org \
    --cc=frowand.list@gmail.com \
    --cc=galak@codeaurora.org \
    --cc=gkulkarni@caviumnetworks.com \
    --cc=grant.likely@linaro.org \
    --cc=ijc+devicetree@hellion.org.uk \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-efi@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mark.rutland@arm.com \
    --cc=matt@codeblueprint.co.uk \
    --cc=pawel.moll@arm.com \
    --cc=rrichter@cavium.com \
    --cc=will.deacon@arm.com \
    /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.