From: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
To: Robert Richter <robert.richter@cavium.com>
Cc: Ganapatrao Kulkarni <ganapatrao.kulkarni@cavium.com>,
lv.zheng@intel.com, rjw@rjwysocki.net,
linux-kernel@vger.kernel.org,
linux-arm-kernel@lists.infradead.org, linux-acpi@vger.kernel.org,
iommu@lists.linux-foundation.org, Will.Deacon@arm.com,
hanjun.guo@linaro.org, sudeep.holla@arm.com,
robin.murphy@arm.com, joro@8bytes.org, lenb@kernel.org,
jnair@caviumnetworks.com, gpkulkarni@gmail.com
Subject: Re: [PATCH v3 2/2] acpi/iort: numa: Add numa node mapping for smmuv3 devices
Date: Tue, 4 Jul 2017 11:07:59 +0100 [thread overview]
Message-ID: <20170704100759.GA17491@red-moon> (raw)
In-Reply-To: <20170628174750.GY658@rric.localdomain>
Hi Robert,
On Wed, Jun 28, 2017 at 07:47:50PM +0200, Robert Richter wrote:
> On 15.06.17 14:46:03, Lorenzo Pieralisi wrote:
> > On Thu, Jun 08, 2017 at 10:14:19AM +0530, Ganapatrao Kulkarni wrote:
> > > Add code to parse proximity domain in SMMUv3 IORT table to
> > > set numa node mapping for smmuv3 devices.
> > >
> > > Signed-off-by: Ganapatrao Kulkarni <ganapatrao.kulkarni@cavium.com>
> > > ---
> > > drivers/acpi/arm64/iort.c | 28 ++++++++++++++++++++++++++--
> > > 1 file changed, 26 insertions(+), 2 deletions(-)
> >
> > I am happy to take this but I want to know what we shall do with
> > patch 1 and related ACPICA changes first.
>
> The change is now in acpica:
>
> https://github.com/acpica/acpica/commit/8cadc4fb500e2aa52241e367c87a0f95d9760c58
>
> So we could guard the code with an #ifdef until that patch is pulled
> in via acpica tree:
>
> > > diff --git a/drivers/acpi/arm64/iort.c b/drivers/acpi/arm64/iort.c
> > > index bba2b59..e804386 100644
> > > --- a/drivers/acpi/arm64/iort.c
> > > +++ b/drivers/acpi/arm64/iort.c
> > > @@ -882,6 +882,23 @@ static bool __init arm_smmu_v3_is_coherent(struct acpi_iort_node *node)
> > > return smmu->flags & ACPI_IORT_SMMU_V3_COHACC_OVERRIDE;
> > > }
> > >
> > > +/*
> > > + * set numa proximity domain for smmuv3 device
> > > + */
> > > +static void __init arm_smmu_v3_set_proximity(struct acpi_iort_node *node,
> > > + struct device *dev)
> > > +{
>
> #ifdef ACPI_IORT_SMMU_V3_PXM_VALID
>
> > > + struct acpi_iort_smmu_v3 *smmu;
> > > +
> > > + 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("SMMUV3[%llx] Mapped to Proximity domain %d\n",
> > > + smmu->base_address,
> > > + smmu->pxm);
> > > + }
>
> #endif
>
> > > +}
> > > +
>
> Could the patch be applied with this change?
Sorry I was away (and the ARM64 tree was not accepting any new code last
week anyway), I will send the patch upstream for 4.14 (with your change
above - or whatever ACPICA guard make it safe - since we will depend on
ACPICA changes merge timing anyway - they won't be merged this cycle).
Bad timing, apologies, I hope it is not a burden to carry it for one
cycle.
Thanks,
Lorenzo
>
> Thanks,
>
> -Robert
>
> > > static int __init arm_smmu_count_resources(struct acpi_iort_node *node)
> > > {
> > > struct acpi_iort_smmu *smmu;
> > > @@ -951,20 +968,24 @@ struct iort_iommu_config {
> > > int (*iommu_count_resources)(struct acpi_iort_node *node);
> > > void (*iommu_init_resources)(struct resource *res,
> > > struct acpi_iort_node *node);
> > > + void (*iommu_set_proximity)(struct acpi_iort_node *node,
> > > + struct device *dev);
> > > };
> > >
> > > static const struct iort_iommu_config iort_arm_smmu_v3_cfg __initconst = {
> > > .name = "arm-smmu-v3",
> > > .iommu_is_coherent = arm_smmu_v3_is_coherent,
> > > .iommu_count_resources = arm_smmu_v3_count_resources,
> > > - .iommu_init_resources = arm_smmu_v3_init_resources
> > > + .iommu_init_resources = arm_smmu_v3_init_resources,
> > > + .iommu_set_proximity = arm_smmu_v3_set_proximity
> > > };
> > >
> > > static const struct iort_iommu_config iort_arm_smmu_cfg __initconst = {
> > > .name = "arm-smmu",
> > > .iommu_is_coherent = arm_smmu_is_coherent,
> > > .iommu_count_resources = arm_smmu_count_resources,
> > > - .iommu_init_resources = arm_smmu_init_resources
> > > + .iommu_init_resources = arm_smmu_init_resources,
> > > + .iommu_set_proximity = NULL
> > > };
> > >
> > > static __init
> > > @@ -1002,6 +1023,9 @@ static int __init iort_add_smmu_platform_device(struct acpi_iort_node *node)
> > > if (!pdev)
> > > return -ENOMEM;
> > >
> > > + if (ops->iommu_set_proximity)
> > > + ops->iommu_set_proximity(node, &pdev->dev);
> > > +
> > > count = ops->iommu_count_resources(node);
> > >
> > > r = kcalloc(count, sizeof(*r), GFP_KERNEL);
> > > --
> > > 1.8.1.4
> > >
> > --
> > To unsubscribe from this list: send the line "unsubscribe linux-acpi" in
> > the body of a message to majordomo@vger.kernel.org
> > More majordomo info at http://vger.kernel.org/majordomo-info.html
WARNING: multiple messages have this Message-ID (diff)
From: lorenzo.pieralisi@arm.com (Lorenzo Pieralisi)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v3 2/2] acpi/iort: numa: Add numa node mapping for smmuv3 devices
Date: Tue, 4 Jul 2017 11:07:59 +0100 [thread overview]
Message-ID: <20170704100759.GA17491@red-moon> (raw)
In-Reply-To: <20170628174750.GY658@rric.localdomain>
Hi Robert,
On Wed, Jun 28, 2017 at 07:47:50PM +0200, Robert Richter wrote:
> On 15.06.17 14:46:03, Lorenzo Pieralisi wrote:
> > On Thu, Jun 08, 2017 at 10:14:19AM +0530, Ganapatrao Kulkarni wrote:
> > > Add code to parse proximity domain in SMMUv3 IORT table to
> > > set numa node mapping for smmuv3 devices.
> > >
> > > Signed-off-by: Ganapatrao Kulkarni <ganapatrao.kulkarni@cavium.com>
> > > ---
> > > drivers/acpi/arm64/iort.c | 28 ++++++++++++++++++++++++++--
> > > 1 file changed, 26 insertions(+), 2 deletions(-)
> >
> > I am happy to take this but I want to know what we shall do with
> > patch 1 and related ACPICA changes first.
>
> The change is now in acpica:
>
> https://github.com/acpica/acpica/commit/8cadc4fb500e2aa52241e367c87a0f95d9760c58
>
> So we could guard the code with an #ifdef until that patch is pulled
> in via acpica tree:
>
> > > diff --git a/drivers/acpi/arm64/iort.c b/drivers/acpi/arm64/iort.c
> > > index bba2b59..e804386 100644
> > > --- a/drivers/acpi/arm64/iort.c
> > > +++ b/drivers/acpi/arm64/iort.c
> > > @@ -882,6 +882,23 @@ static bool __init arm_smmu_v3_is_coherent(struct acpi_iort_node *node)
> > > return smmu->flags & ACPI_IORT_SMMU_V3_COHACC_OVERRIDE;
> > > }
> > >
> > > +/*
> > > + * set numa proximity domain for smmuv3 device
> > > + */
> > > +static void __init arm_smmu_v3_set_proximity(struct acpi_iort_node *node,
> > > + struct device *dev)
> > > +{
>
> #ifdef ACPI_IORT_SMMU_V3_PXM_VALID
>
> > > + struct acpi_iort_smmu_v3 *smmu;
> > > +
> > > + 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("SMMUV3[%llx] Mapped to Proximity domain %d\n",
> > > + smmu->base_address,
> > > + smmu->pxm);
> > > + }
>
> #endif
>
> > > +}
> > > +
>
> Could the patch be applied with this change?
Sorry I was away (and the ARM64 tree was not accepting any new code last
week anyway), I will send the patch upstream for 4.14 (with your change
above - or whatever ACPICA guard make it safe - since we will depend on
ACPICA changes merge timing anyway - they won't be merged this cycle).
Bad timing, apologies, I hope it is not a burden to carry it for one
cycle.
Thanks,
Lorenzo
>
> Thanks,
>
> -Robert
>
> > > static int __init arm_smmu_count_resources(struct acpi_iort_node *node)
> > > {
> > > struct acpi_iort_smmu *smmu;
> > > @@ -951,20 +968,24 @@ struct iort_iommu_config {
> > > int (*iommu_count_resources)(struct acpi_iort_node *node);
> > > void (*iommu_init_resources)(struct resource *res,
> > > struct acpi_iort_node *node);
> > > + void (*iommu_set_proximity)(struct acpi_iort_node *node,
> > > + struct device *dev);
> > > };
> > >
> > > static const struct iort_iommu_config iort_arm_smmu_v3_cfg __initconst = {
> > > .name = "arm-smmu-v3",
> > > .iommu_is_coherent = arm_smmu_v3_is_coherent,
> > > .iommu_count_resources = arm_smmu_v3_count_resources,
> > > - .iommu_init_resources = arm_smmu_v3_init_resources
> > > + .iommu_init_resources = arm_smmu_v3_init_resources,
> > > + .iommu_set_proximity = arm_smmu_v3_set_proximity
> > > };
> > >
> > > static const struct iort_iommu_config iort_arm_smmu_cfg __initconst = {
> > > .name = "arm-smmu",
> > > .iommu_is_coherent = arm_smmu_is_coherent,
> > > .iommu_count_resources = arm_smmu_count_resources,
> > > - .iommu_init_resources = arm_smmu_init_resources
> > > + .iommu_init_resources = arm_smmu_init_resources,
> > > + .iommu_set_proximity = NULL
> > > };
> > >
> > > static __init
> > > @@ -1002,6 +1023,9 @@ static int __init iort_add_smmu_platform_device(struct acpi_iort_node *node)
> > > if (!pdev)
> > > return -ENOMEM;
> > >
> > > + if (ops->iommu_set_proximity)
> > > + ops->iommu_set_proximity(node, &pdev->dev);
> > > +
> > > count = ops->iommu_count_resources(node);
> > >
> > > r = kcalloc(count, sizeof(*r), GFP_KERNEL);
> > > --
> > > 1.8.1.4
> > >
> > --
> > To unsubscribe from this list: send the line "unsubscribe linux-acpi" in
> > the body of a message to majordomo at vger.kernel.org
> > More majordomo info at http://vger.kernel.org/majordomo-info.html
next prev parent reply other threads:[~2017-07-04 10:06 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-06-08 4:44 [PATCH v3 0/2] acpi/iort, numa: Add numa node mapping for smmuv3 devices Ganapatrao Kulkarni
2017-06-08 4:44 ` Ganapatrao Kulkarni
[not found] ` <1496897059-8272-1-git-send-email-ganapatrao.kulkarni-YGCgFSpz5w/QT0dZR+AlfA@public.gmane.org>
2017-06-08 4:44 ` [PATCH v3 1/2] acpica: iort: Update SMMUv3 header for proximity domain mapping Ganapatrao Kulkarni
2017-06-08 4:44 ` Ganapatrao Kulkarni
2017-06-08 4:44 ` Ganapatrao Kulkarni
[not found] ` <1496897059-8272-2-git-send-email-ganapatrao.kulkarni-YGCgFSpz5w/QT0dZR+AlfA@public.gmane.org>
2017-06-19 17:54 ` Robin Murphy
2017-06-19 17:54 ` Robin Murphy
2017-06-19 17:54 ` Robin Murphy
2017-06-20 2:27 ` Ganapatrao Kulkarni
2017-06-20 2:27 ` Ganapatrao Kulkarni
2017-06-08 4:44 ` [PATCH v3 2/2] acpi/iort: numa: Add numa node mapping for smmuv3 devices Ganapatrao Kulkarni
2017-06-08 4:44 ` Ganapatrao Kulkarni
2017-06-08 4:44 ` Ganapatrao Kulkarni
2017-06-15 13:46 ` Lorenzo Pieralisi
2017-06-15 13:46 ` Lorenzo Pieralisi
2017-06-28 17:47 ` Robert Richter
2017-06-28 17:47 ` Robert Richter
2017-07-04 10:07 ` Lorenzo Pieralisi [this message]
2017-07-04 10:07 ` Lorenzo Pieralisi
2017-07-06 11:20 ` Robert Richter
2017-07-06 11:20 ` Robert Richter
[not found] ` <1496897059-8272-3-git-send-email-ganapatrao.kulkarni-YGCgFSpz5w/QT0dZR+AlfA@public.gmane.org>
2017-07-22 3:23 ` Hanjun Guo
2017-07-22 3:23 ` Hanjun Guo
2017-07-22 3:23 ` Hanjun Guo
2017-07-22 13:05 ` Ganapatrao Kulkarni
2017-07-22 13:05 ` Ganapatrao Kulkarni
2017-06-08 9:04 ` [PATCH v3 0/2] acpi/iort, " John Garry
2017-06-08 9:04 ` John Garry
2017-06-08 9:04 ` John Garry
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=20170704100759.GA17491@red-moon \
--to=lorenzo.pieralisi@arm.com \
--cc=Will.Deacon@arm.com \
--cc=ganapatrao.kulkarni@cavium.com \
--cc=gpkulkarni@gmail.com \
--cc=hanjun.guo@linaro.org \
--cc=iommu@lists.linux-foundation.org \
--cc=jnair@caviumnetworks.com \
--cc=joro@8bytes.org \
--cc=lenb@kernel.org \
--cc=linux-acpi@vger.kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=lv.zheng@intel.com \
--cc=rjw@rjwysocki.net \
--cc=robert.richter@cavium.com \
--cc=robin.murphy@arm.com \
--cc=sudeep.holla@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.