From: Marc Zyngier <marc.zyngier@arm.com> To: Hanjun Guo <guohanjun@huawei.com>, Thomas Gleixner <tglx@linutronix.de> Cc: linux-acpi@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linuxarm@huawei.com, Hanjun Guo <hanjun.guo@linaro.org>, Ganapatrao Kulkarni <ganapatrao.kulkarni@cavium.com>, Lorenzo Pieralisi <lorenzo.pieralisi@arm.com> Subject: Re: [PATCH] irqchip/gic-v3-its: Allow GIC ITS number more than MAX_NUMNODES Date: Fri, 21 Jul 2017 12:20:08 +0100 [thread overview] Message-ID: <84d411ff-596b-c451-29fb-f506abc4fb04@arm.com> (raw) In-Reply-To: <5971D208.3040005@huawei.com> On 21/07/17 11:06, Hanjun Guo wrote: > On 2017/7/21 17:51, Hanjun Guo wrote: >> From: Hanjun Guo <hanjun.guo@linaro.org> >> >> When running 4.13-rc1 on top of D05, I got the boot log: >> >> [ 0.000000] SRAT: PXM 0 -> ITS 0 -> Node 0 >> [ 0.000000] SRAT: PXM 0 -> ITS 1 -> Node 0 >> [ 0.000000] SRAT: PXM 0 -> ITS 2 -> Node 0 >> [ 0.000000] SRAT: PXM 1 -> ITS 3 -> Node 1 >> [ 0.000000] SRAT: ITS affinity exceeding max count[4] >> >> This is wrong on D05 as we have 8 ITSes with 4 NUMA nodes. I'm not seeing this on the D05 I have access to. Actually, I'm not seeing any data related to SRAT and the ITS. Is that a different firmware? >> >> So dynamically alloc the memory needed instead of using >> its_srat_maps[MAX_NUMNODES], which count the number of >> ITS entry(ies) in SRAT and alloc its_srat_maps as needed, >> then build the mapping of numa node to ITS ID. >> >> After doing this, I got what I wanted: >> >> [ 0.000000] SRAT: PXM 0 -> ITS 0 -> Node 0 >> [ 0.000000] SRAT: PXM 0 -> ITS 1 -> Node 0 >> [ 0.000000] SRAT: PXM 0 -> ITS 2 -> Node 0 >> [ 0.000000] SRAT: PXM 1 -> ITS 3 -> Node 1 >> [ 0.000000] SRAT: PXM 2 -> ITS 4 -> Node 2 >> [ 0.000000] SRAT: PXM 2 -> ITS 5 -> Node 2 >> [ 0.000000] SRAT: PXM 2 -> ITS 6 -> Node 2 >> [ 0.000000] SRAT: PXM 3 -> ITS 7 -> Node 3 >> >> Fixes: dbd2b8267233 ("irqchip/gic-v3-its: Add ACPI NUMA node mapping") >> Signed-off-by: Hanjun Guo <hanjun.guo@linaro.org> >> Cc: Ganapatrao Kulkarni <ganapatrao.kulkarni@cavium.com> >> Cc: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com> >> Cc: Marc Zyngier <marc.zyngier@arm.com> >> --- >> drivers/irqchip/irq-gic-v3-its.c | 28 +++++++++++++++++++++------- >> 1 file changed, 21 insertions(+), 7 deletions(-) >> >> diff --git a/drivers/irqchip/irq-gic-v3-its.c b/drivers/irqchip/irq-gic-v3-its.c >> index 3ccdf76..fb1c090 100644 >> --- a/drivers/irqchip/irq-gic-v3-its.c >> +++ b/drivers/irqchip/irq-gic-v3-its.c >> @@ -1847,7 +1847,7 @@ struct its_srat_map { >> u32 its_id; >> }; >> >> -static struct its_srat_map its_srat_maps[MAX_NUMNODES] __initdata; >> +static struct its_srat_map *its_srat_maps __initdata; >> static int its_in_srat __initdata; >> >> static int __init acpi_get_its_numa_node(u32 its_id) >> @@ -1861,6 +1861,12 @@ static int __init acpi_get_its_numa_node(u32 its_id) >> return NUMA_NO_NODE; >> } > > Oops, need to check if the its_srat_maps valid or not here, please > comment on what else I'm missing or wrong, then I will prepare another > version. Please post a patch that has all of the fixes, and I'll review that. Thanks, M. -- Jazz is not dead. It just smells funny...
WARNING: multiple messages have this Message-ID (diff)
From: marc.zyngier@arm.com (Marc Zyngier) To: linux-arm-kernel@lists.infradead.org Subject: [PATCH] irqchip/gic-v3-its: Allow GIC ITS number more than MAX_NUMNODES Date: Fri, 21 Jul 2017 12:20:08 +0100 [thread overview] Message-ID: <84d411ff-596b-c451-29fb-f506abc4fb04@arm.com> (raw) In-Reply-To: <5971D208.3040005@huawei.com> On 21/07/17 11:06, Hanjun Guo wrote: > On 2017/7/21 17:51, Hanjun Guo wrote: >> From: Hanjun Guo <hanjun.guo@linaro.org> >> >> When running 4.13-rc1 on top of D05, I got the boot log: >> >> [ 0.000000] SRAT: PXM 0 -> ITS 0 -> Node 0 >> [ 0.000000] SRAT: PXM 0 -> ITS 1 -> Node 0 >> [ 0.000000] SRAT: PXM 0 -> ITS 2 -> Node 0 >> [ 0.000000] SRAT: PXM 1 -> ITS 3 -> Node 1 >> [ 0.000000] SRAT: ITS affinity exceeding max count[4] >> >> This is wrong on D05 as we have 8 ITSes with 4 NUMA nodes. I'm not seeing this on the D05 I have access to. Actually, I'm not seeing any data related to SRAT and the ITS. Is that a different firmware? >> >> So dynamically alloc the memory needed instead of using >> its_srat_maps[MAX_NUMNODES], which count the number of >> ITS entry(ies) in SRAT and alloc its_srat_maps as needed, >> then build the mapping of numa node to ITS ID. >> >> After doing this, I got what I wanted: >> >> [ 0.000000] SRAT: PXM 0 -> ITS 0 -> Node 0 >> [ 0.000000] SRAT: PXM 0 -> ITS 1 -> Node 0 >> [ 0.000000] SRAT: PXM 0 -> ITS 2 -> Node 0 >> [ 0.000000] SRAT: PXM 1 -> ITS 3 -> Node 1 >> [ 0.000000] SRAT: PXM 2 -> ITS 4 -> Node 2 >> [ 0.000000] SRAT: PXM 2 -> ITS 5 -> Node 2 >> [ 0.000000] SRAT: PXM 2 -> ITS 6 -> Node 2 >> [ 0.000000] SRAT: PXM 3 -> ITS 7 -> Node 3 >> >> Fixes: dbd2b8267233 ("irqchip/gic-v3-its: Add ACPI NUMA node mapping") >> Signed-off-by: Hanjun Guo <hanjun.guo@linaro.org> >> Cc: Ganapatrao Kulkarni <ganapatrao.kulkarni@cavium.com> >> Cc: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com> >> Cc: Marc Zyngier <marc.zyngier@arm.com> >> --- >> drivers/irqchip/irq-gic-v3-its.c | 28 +++++++++++++++++++++------- >> 1 file changed, 21 insertions(+), 7 deletions(-) >> >> diff --git a/drivers/irqchip/irq-gic-v3-its.c b/drivers/irqchip/irq-gic-v3-its.c >> index 3ccdf76..fb1c090 100644 >> --- a/drivers/irqchip/irq-gic-v3-its.c >> +++ b/drivers/irqchip/irq-gic-v3-its.c >> @@ -1847,7 +1847,7 @@ struct its_srat_map { >> u32 its_id; >> }; >> >> -static struct its_srat_map its_srat_maps[MAX_NUMNODES] __initdata; >> +static struct its_srat_map *its_srat_maps __initdata; >> static int its_in_srat __initdata; >> >> static int __init acpi_get_its_numa_node(u32 its_id) >> @@ -1861,6 +1861,12 @@ static int __init acpi_get_its_numa_node(u32 its_id) >> return NUMA_NO_NODE; >> } > > Oops, need to check if the its_srat_maps valid or not here, please > comment on what else I'm missing or wrong, then I will prepare another > version. Please post a patch that has all of the fixes, and I'll review that. Thanks, M. -- Jazz is not dead. It just smells funny...
next prev parent reply other threads:[~2017-07-21 11:20 UTC|newest] Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top 2017-07-21 9:51 [PATCH] irqchip/gic-v3-its: Allow GIC ITS number more than MAX_NUMNODES Hanjun Guo 2017-07-21 9:51 ` Hanjun Guo 2017-07-21 9:51 ` Hanjun Guo 2017-07-21 10:06 ` Hanjun Guo 2017-07-21 10:06 ` Hanjun Guo 2017-07-21 10:06 ` Hanjun Guo 2017-07-21 10:50 ` Hanjun Guo 2017-07-21 10:50 ` Hanjun Guo 2017-07-21 10:50 ` Hanjun Guo 2017-07-21 11:20 ` Marc Zyngier [this message] 2017-07-21 11:20 ` Marc Zyngier 2017-07-21 11:42 ` Ganapatrao Kulkarni 2017-07-21 11:42 ` Ganapatrao Kulkarni 2017-07-22 3:52 ` Hanjun Guo 2017-07-22 3:52 ` Hanjun Guo 2017-07-22 3:52 ` Hanjun Guo 2017-07-22 3:44 ` Hanjun Guo 2017-07-22 3:44 ` Hanjun Guo 2017-07-22 3:44 ` Hanjun Guo
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=84d411ff-596b-c451-29fb-f506abc4fb04@arm.com \ --to=marc.zyngier@arm.com \ --cc=ganapatrao.kulkarni@cavium.com \ --cc=guohanjun@huawei.com \ --cc=hanjun.guo@linaro.org \ --cc=linux-acpi@vger.kernel.org \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linuxarm@huawei.com \ --cc=lorenzo.pieralisi@arm.com \ --cc=tglx@linutronix.de \ /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: linkBe 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.