From: hanjun.guo@linaro.org (Hanjun Guo)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v5 2/4] Documentation: arm64/arm: dt bindings for numa.
Date: Wed, 14 Oct 2015 21:21:23 +0800 [thread overview]
Message-ID: <561E56D3.3030105@linaro.org> (raw)
In-Reply-To: <20151013164730.GF24353@leverpostej>
On 10/14/2015 12:47 AM, Mark Rutland wrote:
>>> Hi Mark,
>>>
>>> i am thinking, if we could not address(or becomes complex) these topologies
>>> using associativity,
>>> we should think of an alternate binding which suits existing and upcoming
>>> arm64 platforms.
>>> can we think of below numa binding which is inline with ACPI and will
>>> address all sort of topologies!
>>>
>>> i am proposing as below,
>>>
>>> 1. introduce "proximity" node property. this property will be
>>> present in dt nodes like memory, cpu, bus and devices(like associativity
>>> property) and
>>> will tell which numa node(proximity domain) this dt node belongs to.
>>>
>>> examples:
>>> cpu at 000 {
>>> device_type = "cpu";
>>> compatible = "cavium,thunder", "arm,armv8";
>>> reg = <0x0 0x000>;
>>> enable-method = "psci";
>>> proximity = <0>;
>>> };
>>> cpu at 001 {
>>> device_type = "cpu";
>>> compatible = "cavium,thunder", "arm,armv8";
>>> reg = <0x0 0x001>;
>>> enable-method = "psci";
>>> proximity = <1>;
>>> };
>>>
>>> memory at 00000000 {
>>> device_type = "memory";
>>> reg = <0x0 0x01400000 0x3 0xFEC00000>;
>>> proximity =<0>;
>>>
>>> };
>>>
>>> memory at 10000000000 {
>>> device_type = "memory";
>>> reg = <0x100 0x00400000 0x3 0xFFC00000>;
>>> proximity =<1>;
>>> };
>>>
>>> pcie0 at 0x8480,00000000 {
>>> compatible = "cavium,thunder-pcie";
>>> device_type = "pci";
>>> msi-parent = <&its>;
>>> bus-range = <0 255>;
>>> #size-cells = <2>;
>>> #address-cells = <3>;
>>> #stream-id-cells = <1>;
>>> reg = <0x8480 0x00000000 0 0x10000000>; /*Configuration
>>> space */
>>> ranges = <0x03000000 0x8010 0x00000000 0x8010 0x00000000
>>> 0x70 0x00000000>, /* mem ranges */
>>> <0x03000000 0x8300 0x00000000 0x8300 0x00000000
>>> 0x500 0x00000000>;
>>> proximity =<0>;
>>> };
>>>
>>>
>>> 2. Introduce new dt node "proximity-map" which will capture the NxN numa
>>> node distance matrix.
>>>
>>> for example, 4 nodes connected in mesh/ring structure as,
>>> A(0) <connected to> B(1) <connected to> C(2) <connected to> D(3) <connected
>>> to> A(1)
>>>
>>> relative distance would be,
>>> A -> B = 20
>>> B -> C = 20
>>> C -> D = 20
>>> D -> A = 20
>>> A -> C = 40
>>> B -> D = 40
>>>
>>> and dt presentation for this distance matrix is :
>>>
>>> proximity-map {
>>> node-count = <4>;
>>> distance-matrix = <0 0 10>,
>>> <0 1 20>,
>>> <0 2 40>,
>>> <0 3 20>,
>>> <1 0 20>,
>>> <1 1 10>,
>>> <1 2 20>,
>>> <1 3 40>,
>>> <2 0 40>,
>>> <2 1 20>,
>>> <2 2 10>,
>>> <2 3 20>,
>>> <3 0 20>,
>>> <3 1 40>,
>>> <3 2 20>,
>>> <3 3 10>;
>>> }
>>>
>>> the entries like < 0 0 > < 1 1> < 2 2> < 3 3> can be optional and code can
>>> put default value(local distance).
>>> the entries like <1 0> can be optional if <0 1> and <1 0> are of same
>>> distance.
>> is this binding looks ok?
>
> This looks roughly requivalent to the ACPI SLIT, which means it's as
> powerful, which allays my previous concerns.
Cool, I think those bindings are quite extensible and easy understood.
Thanks
Hanjun
WARNING: multiple messages have this Message-ID (diff)
From: Hanjun Guo <hanjun.guo-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
To: Mark Rutland <mark.rutland-5wv7dgnIgG8@public.gmane.org>,
Ganapatrao Kulkarni
<gpkulkarni-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
Cc: "Prasun.Kapoor-M3mlKVOIwJVv6pq1l3V1OdBPR1lH4CV8@public.gmane.org"
<Prasun.Kapoor-M3mlKVOIwJVv6pq1l3V1OdBPR1lH4CV8@public.gmane.org>,
Rob Herring <robherring2-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>,
"Leizhen (ThunderTown)"
<thunder.leizhen-hv44wF8Li93QT0dZR+AlfA@public.gmane.org>,
Ganapatrao Kulkarni
<gkulkarni-M3mlKVOIwJVv6pq1l3V1OdBPR1lH4CV8@public.gmane.org>,
"linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org"
<linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org>,
"devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org"
<devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
Will Deacon <Will.Deacon-5wv7dgnIgG8@public.gmane.org>,
Catalin Marinas <Catalin.Marinas-5wv7dgnIgG8@public.gmane.org>,
"grant.likely-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org"
<grant.likely-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>,
"leif.lindholm-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org"
<leif.lindholm-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>,
"rfranz-YGCgFSpz5w/QT0dZR+AlfA@public.gmane.org"
<rfranz-YGCgFSpz5w/QT0dZR+AlfA@public.gmane.org>,
"ard.biesheuvel-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org"
<ard.biesheuvel-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>,
"msalter-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org"
<msalter-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>,
"robh+dt-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org"
<robh+dt-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>,
"steve.capper-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org"
<steve.capper-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>,
"al.stone-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org"
<al.stone-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>,
"arnd-r2nGTMty4D4@public.gmane.org"
<arnd-r2nGTMty4D4@public.gmane.org>, Pawel Moll <Pawel.Moll@ar>
Subject: Re: [PATCH v5 2/4] Documentation: arm64/arm: dt bindings for numa.
Date: Wed, 14 Oct 2015 21:21:23 +0800 [thread overview]
Message-ID: <561E56D3.3030105@linaro.org> (raw)
In-Reply-To: <20151013164730.GF24353@leverpostej>
On 10/14/2015 12:47 AM, Mark Rutland wrote:
>>> Hi Mark,
>>>
>>> i am thinking, if we could not address(or becomes complex) these topologies
>>> using associativity,
>>> we should think of an alternate binding which suits existing and upcoming
>>> arm64 platforms.
>>> can we think of below numa binding which is inline with ACPI and will
>>> address all sort of topologies!
>>>
>>> i am proposing as below,
>>>
>>> 1. introduce "proximity" node property. this property will be
>>> present in dt nodes like memory, cpu, bus and devices(like associativity
>>> property) and
>>> will tell which numa node(proximity domain) this dt node belongs to.
>>>
>>> examples:
>>> cpu@000 {
>>> device_type = "cpu";
>>> compatible = "cavium,thunder", "arm,armv8";
>>> reg = <0x0 0x000>;
>>> enable-method = "psci";
>>> proximity = <0>;
>>> };
>>> cpu@001 {
>>> device_type = "cpu";
>>> compatible = "cavium,thunder", "arm,armv8";
>>> reg = <0x0 0x001>;
>>> enable-method = "psci";
>>> proximity = <1>;
>>> };
>>>
>>> memory@00000000 {
>>> device_type = "memory";
>>> reg = <0x0 0x01400000 0x3 0xFEC00000>;
>>> proximity =<0>;
>>>
>>> };
>>>
>>> memory@10000000000 {
>>> device_type = "memory";
>>> reg = <0x100 0x00400000 0x3 0xFFC00000>;
>>> proximity =<1>;
>>> };
>>>
>>> pcie0@0x8480,00000000 {
>>> compatible = "cavium,thunder-pcie";
>>> device_type = "pci";
>>> msi-parent = <&its>;
>>> bus-range = <0 255>;
>>> #size-cells = <2>;
>>> #address-cells = <3>;
>>> #stream-id-cells = <1>;
>>> reg = <0x8480 0x00000000 0 0x10000000>; /*Configuration
>>> space */
>>> ranges = <0x03000000 0x8010 0x00000000 0x8010 0x00000000
>>> 0x70 0x00000000>, /* mem ranges */
>>> <0x03000000 0x8300 0x00000000 0x8300 0x00000000
>>> 0x500 0x00000000>;
>>> proximity =<0>;
>>> };
>>>
>>>
>>> 2. Introduce new dt node "proximity-map" which will capture the NxN numa
>>> node distance matrix.
>>>
>>> for example, 4 nodes connected in mesh/ring structure as,
>>> A(0) <connected to> B(1) <connected to> C(2) <connected to> D(3) <connected
>>> to> A(1)
>>>
>>> relative distance would be,
>>> A -> B = 20
>>> B -> C = 20
>>> C -> D = 20
>>> D -> A = 20
>>> A -> C = 40
>>> B -> D = 40
>>>
>>> and dt presentation for this distance matrix is :
>>>
>>> proximity-map {
>>> node-count = <4>;
>>> distance-matrix = <0 0 10>,
>>> <0 1 20>,
>>> <0 2 40>,
>>> <0 3 20>,
>>> <1 0 20>,
>>> <1 1 10>,
>>> <1 2 20>,
>>> <1 3 40>,
>>> <2 0 40>,
>>> <2 1 20>,
>>> <2 2 10>,
>>> <2 3 20>,
>>> <3 0 20>,
>>> <3 1 40>,
>>> <3 2 20>,
>>> <3 3 10>;
>>> }
>>>
>>> the entries like < 0 0 > < 1 1> < 2 2> < 3 3> can be optional and code can
>>> put default value(local distance).
>>> the entries like <1 0> can be optional if <0 1> and <1 0> are of same
>>> distance.
>> is this binding looks ok?
>
> This looks roughly requivalent to the ACPI SLIT, which means it's as
> powerful, which allays my previous concerns.
Cool, I think those bindings are quite extensible and easy understood.
Thanks
Hanjun
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
next prev parent reply other threads:[~2015-10-14 13:21 UTC|newest]
Thread overview: 94+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-08-14 16:39 [PATCH v5 0/8] arm64, numa: Add numa support for arm64 platforms Ganapatrao Kulkarni
2015-08-14 16:39 ` Ganapatrao Kulkarni
2015-08-14 16:39 ` [PATCH v5 1/4] arm64, numa: adding " Ganapatrao Kulkarni
2015-08-14 16:39 ` Ganapatrao Kulkarni
2015-09-03 9:52 ` Ganapatrao Kulkarni
2015-09-03 9:52 ` Ganapatrao Kulkarni
2015-09-03 10:13 ` Will Deacon
2015-09-03 10:13 ` Will Deacon
2015-09-29 8:43 ` Ganapatrao Kulkarni
2015-09-29 8:43 ` Ganapatrao Kulkarni
2015-10-05 5:24 ` Ganapatrao Kulkarni
2015-10-05 5:24 ` Ganapatrao Kulkarni
2015-08-14 16:39 ` [PATCH v5 2/4] Documentation: arm64/arm: dt bindings for numa Ganapatrao Kulkarni
2015-08-14 16:39 ` Ganapatrao Kulkarni
2015-08-22 15:06 ` Robert Richter
2015-08-22 15:06 ` Robert Richter
2015-08-23 21:49 ` Rob Herring
2015-08-23 21:49 ` Rob Herring
2015-08-28 11:32 ` Matthias Brugger
2015-08-28 11:32 ` Matthias Brugger
2015-08-28 12:32 ` Mark Rutland
2015-08-28 12:32 ` Mark Rutland
2015-08-28 14:02 ` Rob Herring
2015-08-28 14:02 ` Rob Herring
2015-08-28 21:37 ` Benjamin Herrenschmidt
2015-08-28 21:37 ` Benjamin Herrenschmidt
2015-09-02 17:11 ` Ganapatrao Kulkarni
2015-09-02 17:11 ` Ganapatrao Kulkarni
2015-08-29 9:46 ` Leizhen (ThunderTown)
2015-08-29 9:46 ` Leizhen (ThunderTown)
2015-08-29 10:37 ` Benjamin Herrenschmidt
2015-08-29 10:37 ` Benjamin Herrenschmidt
2015-08-31 1:46 ` Leizhen (ThunderTown)
2015-08-31 1:46 ` Leizhen (ThunderTown)
2015-08-29 14:56 ` Ganapatrao Kulkarni
2015-08-29 14:56 ` Ganapatrao Kulkarni
2015-08-31 2:53 ` Leizhen (ThunderTown)
2015-08-31 2:53 ` Leizhen (ThunderTown)
2015-09-08 13:27 ` Hanjun Guo
2015-09-08 13:27 ` Hanjun Guo
2015-09-08 16:27 ` Ganapatrao Kulkarni
2015-09-08 16:27 ` Ganapatrao Kulkarni
2015-09-11 3:53 ` Ganapatrao Kulkarni
2015-09-11 3:53 ` Ganapatrao Kulkarni
2015-09-11 6:43 ` Leizhen (ThunderTown)
2015-09-11 6:43 ` Leizhen (ThunderTown)
2015-09-29 8:35 ` Ganapatrao Kulkarni
2015-09-29 8:38 ` Ganapatrao Kulkarni
2015-09-29 8:38 ` Ganapatrao Kulkarni
2015-09-29 9:42 ` Benjamin Herrenschmidt
2015-09-29 9:42 ` Benjamin Herrenschmidt
2015-09-30 0:28 ` Benjamin Herrenschmidt
2015-09-30 0:28 ` Benjamin Herrenschmidt
2015-09-30 10:19 ` Ganapatrao Kulkarni
2015-09-30 10:19 ` Ganapatrao Kulkarni
2015-09-30 10:53 ` Mark Rutland
2015-09-30 10:53 ` Mark Rutland
2015-09-30 17:50 ` Ganapatrao Kulkarni
2015-09-30 17:50 ` Ganapatrao Kulkarni
2015-10-01 1:05 ` Benjamin Herrenschmidt
2015-10-01 1:05 ` Benjamin Herrenschmidt
2015-10-01 5:11 ` Ganapatrao Kulkarni
2015-10-01 5:25 ` Ganapatrao Kulkarni
2015-10-01 5:25 ` Ganapatrao Kulkarni
2015-10-01 7:17 ` Benjamin Herrenschmidt
2015-10-01 7:17 ` Benjamin Herrenschmidt
2015-10-01 11:36 ` Ganapatrao Kulkarni
2015-10-01 11:36 ` Ganapatrao Kulkarni
2015-10-13 16:47 ` Mark Rutland
2015-10-13 16:47 ` Mark Rutland
2015-10-13 17:07 ` Ganapatrao Kulkarni
2015-10-13 17:07 ` Ganapatrao Kulkarni
2015-10-14 13:21 ` Hanjun Guo [this message]
2015-10-14 13:21 ` Hanjun Guo
2015-08-14 16:39 ` [PATCH v5 3/4] arm64, numa, dt: adding dt based numa support using dt node property arm, associativity Ganapatrao Kulkarni
2015-08-14 16:39 ` Ganapatrao Kulkarni
2015-10-09 15:18 ` Catalin Marinas
2015-10-09 15:18 ` Catalin Marinas
2015-10-09 16:51 ` Ganapatrao Kulkarni
2015-10-09 16:51 ` Ganapatrao Kulkarni
2015-08-14 16:39 ` [PATCH v5 4/4] arm64, dt, thunderx: Add initial dts for Cavium Thunder SoC in 2 Node topology Ganapatrao Kulkarni
2015-08-14 16:39 ` Ganapatrao Kulkarni
2015-08-18 6:16 ` Jisheng Zhang
2015-08-18 6:16 ` Jisheng Zhang
2015-08-14 16:44 ` [PATCH v5 0/8] arm64, numa: Add numa support for arm64 platforms Ganapatrao Kulkarni
2015-08-14 16:44 ` Ganapatrao Kulkarni
2015-08-20 6:50 ` Ganapatrao Kulkarni
2015-08-20 6:50 ` Ganapatrao Kulkarni
2015-08-28 14:31 ` Matthias Brugger
2015-08-28 14:31 ` Matthias Brugger
2015-08-28 14:59 ` Ganapatrao Kulkarni
2015-08-28 14:59 ` Ganapatrao Kulkarni
2015-08-28 15:36 ` Matthias Brugger
2015-08-28 15:36 ` Matthias Brugger
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=561E56D3.3030105@linaro.org \
--to=hanjun.guo@linaro.org \
--cc=linux-arm-kernel@lists.infradead.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.