linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
From: Robin Murphy <robin.murphy@arm.com>
To: Kefeng Wang <wangkefeng.wang@huawei.com>,
	Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>,
	Hanjun Guo <hanjun.guo@linaro.org>,
	Sudeep Holla <sudeep.holla@arm.com>,
	rjw@rjwysocki.net, linux-acpi@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH 1/2] ACPI/IORT: set online numa node for smmuv3 device
Date: Wed, 20 Mar 2019 11:41:18 +0000	[thread overview]
Message-ID: <d45aa526-2cd9-2381-8856-6ddb7e7ced7d@arm.com> (raw)
In-Reply-To: <20190315021940.86905-2-wangkefeng.wang@huawei.com>

On 15/03/2019 02:19, Kefeng Wang wrote:
> If there is only node 0 in system, but smmuv3 device is set to offline
> node 1, parsed from proximity domain in SMMUv3 IORT table, it will lead
> to following crash,

Surely that's just a firmware bug? If node 1 doesn't exist in the system 
then AFAICS if we're presented with a device claiming to be on that node 
we can only assume the whole thing is bogus. Thus if we're going to work 
around it at all, it seems to me like we should reject the entire device 
rather than just bodging it to some other node.

Robin.

> 
> [   47.492451] Unable to handle kernel paging request at virtual address 0000000000001388
> [   47.500361] Mem abort info:
> [   47.503143]   ESR = 0x96000004
> [   47.506189]   Exception class = DABT (current EL), IL = 32 bits
> [   47.512099]   SET = 0, FnV = 0
> [   47.515140]   EA = 0, S1PTW = 0
> [   47.518272] Data abort info:
> [   47.521144]   ISV = 0, ISS = 0x00000004
> [   47.524970]   CM = 0, WnR = 0
> [   47.527929] [0000000000001388] user address but active_mm is swapper
> [   47.534285] Internal error: Oops: 96000004 [#1] SMP
> [   47.539151] Modules linked in:
> [   47.542194] CPU: 5 PID: 1 Comm: swapper/0 Not tainted 5.0.0 #15
> [   47.549490] pstate: 80c00009 (Nzcv daif +PAN +UAO)
> [   47.554272] pc : __alloc_pages_nodemask+0x13c/0x1068
> [   47.559224] lr : __alloc_pages_nodemask+0xdc/0x1068
> ...
> [   47.646873] Process swapper/0 (pid: 1, stack limit = 0x(____ptrval____))
> [   47.653560] Call trace:
> [   47.655994]  __alloc_pages_nodemask+0x13c/0x1068
> [   47.660600]  new_slab+0xec/0x570
> [   47.663816]  ___slab_alloc+0x3e0/0x4f8
> [   47.667553]  __slab_alloc+0x60/0x80
> [   47.671029]  __kmalloc_node_track_caller+0x10c/0x478
> [   47.675984]  devm_kmalloc+0x44/0xb0
> [   47.679460]  pinctrl_bind_pins+0x4c/0x188
> [   47.683457]  really_probe+0x78/0x2b8
> [   47.687019]  driver_probe_device+0x64/0x110
> [   47.691189]  device_driver_attach+0x74/0x98
> [   47.695360]  __driver_attach+0x9c/0xe8
> [   47.699095]  bus_for_each_dev+0x84/0xd8
> [   47.702919]  driver_attach+0x30/0x40
> [   47.706481]  bus_add_driver+0x170/0x218
> [   47.710304]  driver_register+0x64/0x118
> [   47.714128]  __platform_driver_register+0x54/0x60
> [   47.718820]  arm_smmu_driver_init+0x24/0x2c
> [   47.722991]  do_one_initcall+0xbc/0x328
> [   47.726816]  kernel_init_freeable+0x304/0x3ac
> [   47.731162]  kernel_init+0x18/0x110
> [   47.734638]  ret_from_fork+0x10/0x1c
> [   47.738202] Code: f90013b5 b9410fa1 1a9f0694 b50014c2 (b9400804)
> [   47.744307] ---[ end trace dfeaed4c373a32da ]--
> 
> Using acpi_map_pxm_to_online_node() to get online node to fix it.
> 
> Signed-off-by: Kefeng Wang <wangkefeng.wang@huawei.com>
> ---
>   drivers/acpi/arm64/iort.c | 8 ++++----
>   1 file changed, 4 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/acpi/arm64/iort.c b/drivers/acpi/arm64/iort.c
> index e48894e002ba..a2ce836ec103 100644
> --- a/drivers/acpi/arm64/iort.c
> +++ b/drivers/acpi/arm64/iort.c
> @@ -1239,10 +1239,10 @@ static void  __init arm_smmu_v3_set_proximity(struct device *dev,
>   
>   	smmu = (struct acpi_iort_smmu_v3 *)node->node_data;
>   	if (smmu->flags & ACPI_IORT_SMMU_V3_PXM_VALID) {
> -		set_dev_node(dev, acpi_map_pxm_to_node(smmu->pxm));
> -		pr_info("SMMU-v3[%llx] Mapped to Proximity domain %d\n",
> -			smmu->base_address,
> -			smmu->pxm);
> +		int node = acpi_map_pxm_to_online_node(smmu->pxm);
> +		set_dev_node(dev, node);
> +		pr_info("SMMU-v3[%llx] -> PXM %d -> Node %d\n",
> +			smmu->base_address, smmu->pxm, node);
>   	}
>   }
>   #else
> 

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

  reply	other threads:[~2019-03-20 11:41 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-03-15  2:19 [PATCH 0/2] fix issue when acpi smmuv3 device alloc offline node memory Kefeng Wang
2019-03-15  2:19 ` [PATCH 1/2] ACPI/IORT: set online numa node for smmuv3 device Kefeng Wang
2019-03-20 11:41   ` Robin Murphy [this message]
2019-03-20 14:00     ` Lorenzo Pieralisi
2019-03-21  6:08       ` Kefeng Wang
2019-03-27 14:24         ` Kefeng Wang
2019-03-28 11:32         ` Lorenzo Pieralisi
2019-03-28 14:00           ` [PATCH v2] ACPI/IORT: Reject platform dev creation when dev set to wrong numa node Kefeng Wang
2019-03-28 13:59             ` Robin Murphy
2019-03-28 14:29               ` Kefeng Wang
2019-03-29  3:17             ` [PATCH RESEND " Kefeng Wang
2019-04-08 10:42               ` Lorenzo Pieralisi
2019-04-08 10:46               ` Lorenzo Pieralisi
2019-04-08 15:21                 ` [PATCH v3] ACPI/IORT: Reject platform device creation on NUMA node mapping failure Kefeng Wang
2019-04-16 17:02                   ` Lorenzo Pieralisi
2019-04-16 17:05                     ` Will Deacon
2019-03-15  2:19 ` [PATCH 2/2] ACPI: NUMA: show match info about PXM ID and offline/online node Kefeng Wang
2019-03-15  8:34   ` Kefeng Wang

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=d45aa526-2cd9-2381-8856-6ddb7e7ced7d@arm.com \
    --to=robin.murphy@arm.com \
    --cc=hanjun.guo@linaro.org \
    --cc=linux-acpi@vger.kernel.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=lorenzo.pieralisi@arm.com \
    --cc=rjw@rjwysocki.net \
    --cc=sudeep.holla@arm.com \
    --cc=wangkefeng.wang@huawei.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 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).