All of lore.kernel.org
 help / color / mirror / Atom feed
From: Yisheng Xie <xieyisheng1@huawei.com>
To: Shameerali Kolothum Thodi <shameerali.kolothum.thodi@huawei.com>,
	"Neil Leeder" <nleeder@codeaurora.org>,
	Will Deacon <will.deacon@arm.com>,
	"Mark Rutland" <mark.rutland@arm.com>
Cc: Mark Langsdorf <mlangsdo@redhat.com>,
	Jon Masters <jcm@redhat.com>, "Timur Tabi" <timur@codeaurora.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	Mark Brown <broonie@kernel.org>, Mark Salter <msalter@redhat.com>,
	"linux-arm-kernel@lists.infradead.org"
	<linux-arm-kernel@lists.infradead.org>
Subject: Re: [PATCH 2/2] perf: add arm64 smmuv3 pmu driver
Date: Thu, 19 Apr 2018 09:17:48 +0800	[thread overview]
Message-ID: <70d0c34c-853d-547b-49cb-4b70a85c4da4@huawei.com> (raw)
In-Reply-To: <5FC3163CFD30C246ABAA99954A238FA83868C029@FRAEML521-MBX.china.huawei.com>

Hi Shameerali,

On 2018/4/18 19:05, Shameerali Kolothum Thodi wrote:
> 
> 
>> -----Original Message-----
>> From: linux-arm-kernel [mailto:linux-arm-kernel-bounces@lists.infradead.org]
>> On Behalf Of Yisheng Xie
>> Sent: Thursday, March 29, 2018 8:04 AM
>> To: Neil Leeder <nleeder@codeaurora.org>; Will Deacon
>> <will.deacon@arm.com>; Mark Rutland <mark.rutland@arm.com>
>> Cc: Mark Langsdorf <mlangsdo@redhat.com>; Jon Masters
>> <jcm@redhat.com>; Timur Tabi <timur@codeaurora.org>; linux-
>> kernel@vger.kernel.org; Mark Brown <broonie@kernel.org>; Mark Salter
>> <msalter@redhat.com>; linux-arm-kernel@lists.infradead.org
>> Subject: Re: [PATCH 2/2] perf: add arm64 smmuv3 pmu driver
>>
>> Hi Neil,
>>
>> On 2017/8/5 3:59, Neil Leeder wrote:
>>> +	mem_resource_0 = platform_get_resource(pdev, IORESOURCE_MEM,
>> 0);
>>> +	mem_map_0 = devm_ioremap_resource(&pdev->dev,
>> mem_resource_0);
>>> +
>> Can we use devm_ioremap instead? for the reg_base of smmu_pmu is
>> IMPLEMENTATION DEFINED. If the reg of smmu_pmu is inside smmu,
>> devm_ioremap_resource will failed and return -EBUSY, eg.:
>>
>>  smmu reg ranges:		0x180000000 ~ 0x1801fffff
>>  its smmu_pmu reg ranges:	0x180001000 ~ 0x180001fff
> 
> I think this will not solve the issue completely as the smmu v3 driver 
> uses devm_ioremap_resource() currently and that will fail because of
> the overlap.

Right, I get your point.

> 
> Please find the discussion here:
> https://lkml.org/lkml/2018/1/31/235

Thanks for the infomation.

Thanks
Yisheng

> 
> Thanks,
> Shameer
> 
>>> +	if (IS_ERR(mem_map_0)) {
>>> +		dev_err(&pdev->dev, "Can't map SMMU PMU @%pa\n",
>>> +			&mem_resource_0->start);
>>> +		return PTR_ERR(mem_map_0);
>>> +	}
>>> +
>>> +	smmu_pmu->reg_base = mem_map_0;
>>> +	smmu_pmu->pmu.name =
>>> +		devm_kasprintf(&pdev->dev, GFP_KERNEL, "smmu_0_%llx",
>>> +			       (mem_resource_0->start) >> SMMU_PA_SHIFT);
>>> +
>>> +	if (!smmu_pmu->pmu.name) {
>>> +		dev_err(&pdev->dev, "Failed to create PMU name");
>>> +		return -EINVAL;
>>> +	}
>>> +
>>> +	ceid_64 = readq(smmu_pmu->reg_base + SMMU_PMCG_CEID0);
>>> +	ceid[0] = ceid_64 & GENMASK(31, 0);
>>> +	ceid[1] = ceid_64 >> 32;
>>> +	ceid_64 = readq(smmu_pmu->reg_base + SMMU_PMCG_CEID1);
>>> +	ceid[2] = ceid_64 & GENMASK(31, 0);
>>> +	ceid[3] = ceid_64 >> 32;
>>> +	bitmap_from_u32array(smmu_pmu->supported_events,
>> SMMU_MAX_EVENT_ID,
>>> +			     ceid, SMMU_NUM_EVENTS_U32);
>>> +
>>> +	/* Determine if page 1 is present */
>>> +	if (readl(smmu_pmu->reg_base + SMMU_PMCG_CFGR) &
>>> +	    SMMU_PMCG_CFGR_RELOC_CTRS) {
>>> +		mem_resource_1 = platform_get_resource(pdev,
>> IORESOURCE_MEM, 1);
>>> +		mem_map_1 = devm_ioremap_resource(&pdev->dev,
>> mem_resource_1);
>>> +
>> The same as above.
>>
>> Thanks
>> Yisheng
>>
>>> +		if (IS_ERR(mem_map_1)) {
>>> +			dev_err(&pdev->dev, "Can't map SMMU PMU
>> @%pa\n",
>>> +				&mem_resource_1->start);
>>> +			return PTR_ERR(mem_map_1);
>>> +		}
>>> +		smmu_pmu->reloc_base = mem_map_1;
>>> +	} else {
>>> +		smmu_pmu->reloc_base = smmu_pmu->reg_base;
>>> +	}
>>> +
>>> +	irq = platform_get_irq(pdev, 0);
>>> +	if (irq < 0) {
>>> +		dev_err(&pdev->dev,
>>> +			"Failed to get valid irq for smmu @%pa\n",
>>> +			&mem_resource_0->start);
>>> +		return irq;
>>> +	}
>>
>>
>> _______________________________________________
>> linux-arm-kernel mailing list
>> linux-arm-kernel@lists.infradead.org
>> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
> 
> .
> 

WARNING: multiple messages have this Message-ID (diff)
From: xieyisheng1@huawei.com (Yisheng Xie)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 2/2] perf: add arm64 smmuv3 pmu driver
Date: Thu, 19 Apr 2018 09:17:48 +0800	[thread overview]
Message-ID: <70d0c34c-853d-547b-49cb-4b70a85c4da4@huawei.com> (raw)
In-Reply-To: <5FC3163CFD30C246ABAA99954A238FA83868C029@FRAEML521-MBX.china.huawei.com>

Hi Shameerali,

On 2018/4/18 19:05, Shameerali Kolothum Thodi wrote:
> 
> 
>> -----Original Message-----
>> From: linux-arm-kernel [mailto:linux-arm-kernel-bounces at lists.infradead.org]
>> On Behalf Of Yisheng Xie
>> Sent: Thursday, March 29, 2018 8:04 AM
>> To: Neil Leeder <nleeder@codeaurora.org>; Will Deacon
>> <will.deacon@arm.com>; Mark Rutland <mark.rutland@arm.com>
>> Cc: Mark Langsdorf <mlangsdo@redhat.com>; Jon Masters
>> <jcm@redhat.com>; Timur Tabi <timur@codeaurora.org>; linux-
>> kernel at vger.kernel.org; Mark Brown <broonie@kernel.org>; Mark Salter
>> <msalter@redhat.com>; linux-arm-kernel at lists.infradead.org
>> Subject: Re: [PATCH 2/2] perf: add arm64 smmuv3 pmu driver
>>
>> Hi Neil,
>>
>> On 2017/8/5 3:59, Neil Leeder wrote:
>>> +	mem_resource_0 = platform_get_resource(pdev, IORESOURCE_MEM,
>> 0);
>>> +	mem_map_0 = devm_ioremap_resource(&pdev->dev,
>> mem_resource_0);
>>> +
>> Can we use devm_ioremap instead? for the reg_base of smmu_pmu is
>> IMPLEMENTATION DEFINED. If the reg of smmu_pmu is inside smmu,
>> devm_ioremap_resource will failed and return -EBUSY, eg.:
>>
>>  smmu reg ranges:		0x180000000 ~ 0x1801fffff
>>  its smmu_pmu reg ranges:	0x180001000 ~ 0x180001fff
> 
> I think this will not solve the issue completely as the smmu v3 driver 
> uses devm_ioremap_resource() currently and that will fail because of
> the overlap.

Right, I get your point.

> 
> Please find the discussion here:
> https://lkml.org/lkml/2018/1/31/235

Thanks for the infomation.

Thanks
Yisheng

> 
> Thanks,
> Shameer
> 
>>> +	if (IS_ERR(mem_map_0)) {
>>> +		dev_err(&pdev->dev, "Can't map SMMU PMU @%pa\n",
>>> +			&mem_resource_0->start);
>>> +		return PTR_ERR(mem_map_0);
>>> +	}
>>> +
>>> +	smmu_pmu->reg_base = mem_map_0;
>>> +	smmu_pmu->pmu.name =
>>> +		devm_kasprintf(&pdev->dev, GFP_KERNEL, "smmu_0_%llx",
>>> +			       (mem_resource_0->start) >> SMMU_PA_SHIFT);
>>> +
>>> +	if (!smmu_pmu->pmu.name) {
>>> +		dev_err(&pdev->dev, "Failed to create PMU name");
>>> +		return -EINVAL;
>>> +	}
>>> +
>>> +	ceid_64 = readq(smmu_pmu->reg_base + SMMU_PMCG_CEID0);
>>> +	ceid[0] = ceid_64 & GENMASK(31, 0);
>>> +	ceid[1] = ceid_64 >> 32;
>>> +	ceid_64 = readq(smmu_pmu->reg_base + SMMU_PMCG_CEID1);
>>> +	ceid[2] = ceid_64 & GENMASK(31, 0);
>>> +	ceid[3] = ceid_64 >> 32;
>>> +	bitmap_from_u32array(smmu_pmu->supported_events,
>> SMMU_MAX_EVENT_ID,
>>> +			     ceid, SMMU_NUM_EVENTS_U32);
>>> +
>>> +	/* Determine if page 1 is present */
>>> +	if (readl(smmu_pmu->reg_base + SMMU_PMCG_CFGR) &
>>> +	    SMMU_PMCG_CFGR_RELOC_CTRS) {
>>> +		mem_resource_1 = platform_get_resource(pdev,
>> IORESOURCE_MEM, 1);
>>> +		mem_map_1 = devm_ioremap_resource(&pdev->dev,
>> mem_resource_1);
>>> +
>> The same as above.
>>
>> Thanks
>> Yisheng
>>
>>> +		if (IS_ERR(mem_map_1)) {
>>> +			dev_err(&pdev->dev, "Can't map SMMU PMU
>> @%pa\n",
>>> +				&mem_resource_1->start);
>>> +			return PTR_ERR(mem_map_1);
>>> +		}
>>> +		smmu_pmu->reloc_base = mem_map_1;
>>> +	} else {
>>> +		smmu_pmu->reloc_base = smmu_pmu->reg_base;
>>> +	}
>>> +
>>> +	irq = platform_get_irq(pdev, 0);
>>> +	if (irq < 0) {
>>> +		dev_err(&pdev->dev,
>>> +			"Failed to get valid irq for smmu @%pa\n",
>>> +			&mem_resource_0->start);
>>> +		return irq;
>>> +	}
>>
>>
>> _______________________________________________
>> linux-arm-kernel mailing list
>> linux-arm-kernel at lists.infradead.org
>> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
> 
> .
> 

  reply	other threads:[~2018-04-19  1:18 UTC|newest]

Thread overview: 80+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-08-04 19:59 [PATCH 0/2] arm64 SMMUv3 PMU driver with IORT support Neil Leeder
2017-08-04 19:59 ` Neil Leeder
2017-08-04 19:59 ` [PATCH 1/2] acpi: arm64: add iort support for PMCG Neil Leeder
2017-08-04 19:59   ` Neil Leeder
2017-08-07 11:17   ` Robin Murphy
2017-08-07 11:17     ` Robin Murphy
2017-08-07 20:52     ` Leeder, Neil
2017-08-07 20:52       ` Leeder, Neil
2017-08-07 16:44   ` Lorenzo Pieralisi
2017-08-07 16:44     ` Lorenzo Pieralisi
2017-08-07 21:00     ` Leeder, Neil
2017-08-07 21:00       ` Leeder, Neil
2018-01-30 10:39   ` Shameerali Kolothum Thodi
2018-01-30 10:39     ` Shameerali Kolothum Thodi
2018-01-30 18:00     ` Lorenzo Pieralisi
2018-01-30 18:00       ` Lorenzo Pieralisi
2018-01-31 12:10       ` Shameerali Kolothum Thodi
2018-01-31 12:10         ` Shameerali Kolothum Thodi
2018-01-31 12:34         ` Lorenzo Pieralisi
2018-01-31 12:34           ` Lorenzo Pieralisi
2017-08-04 19:59 ` [PATCH 2/2] perf: add arm64 smmuv3 pmu driver Neil Leeder
2017-08-04 19:59   ` Neil Leeder
2017-08-07 14:31   ` Robin Murphy
2017-08-07 14:31     ` Robin Murphy
2017-08-07 21:18     ` Leeder, Neil
2017-08-07 21:18       ` Leeder, Neil
2017-12-05  5:01     ` Linu Cherian
2017-12-05  5:01       ` Linu Cherian
2018-03-29  7:03   ` Yisheng Xie
2018-03-29  7:03     ` Yisheng Xie
     [not found]     ` <e55ab4404143ea0b3cc4795a93e37480@codeaurora.org>
2018-04-01  5:44       ` Neil Leeder
2018-04-01  5:44         ` Neil Leeder
2018-04-02  6:37         ` Yisheng Xie
2018-04-02  6:37           ` Yisheng Xie
2018-04-02 14:24           ` Hanjun Guo
2018-04-02 14:24             ` Hanjun Guo
2018-04-02 17:59             ` Neil Leeder
2018-04-02 17:59               ` Neil Leeder
2018-04-03  1:15               ` Hanjun Guo
2018-04-03  1:15                 ` Hanjun Guo
2018-04-04 11:35                 ` Lorenzo Pieralisi
2018-04-04 11:35                   ` Lorenzo Pieralisi
2018-05-02 14:20           ` Agustin Vega-Frias
2018-05-02 14:20             ` Agustin Vega-Frias
2018-05-03  9:22             ` Shameerali Kolothum Thodi
2018-05-03  9:22               ` Shameerali Kolothum Thodi
2018-04-18 11:05     ` Shameerali Kolothum Thodi
2018-04-18 11:05       ` Shameerali Kolothum Thodi
2018-04-19  1:17       ` Yisheng Xie [this message]
2018-04-19  1:17         ` Yisheng Xie
2017-08-09  7:56 ` [PATCH 0/2] arm64 SMMUv3 PMU driver with IORT support Hanjun Guo
2017-08-09  7:56   ` Hanjun Guo
2017-08-09 15:48   ` Leeder, Neil
2017-08-09 15:48     ` Leeder, Neil
2017-08-10  1:26     ` Hanjun Guo
2017-08-10  1:26       ` Hanjun Guo
2017-08-11  3:28       ` Leeder, Neil
2017-08-11  3:28         ` Leeder, Neil
2017-10-12 10:58         ` Hanjun Guo
2017-10-12 10:58           ` Hanjun Guo
2017-10-12 11:05           ` Lorenzo Pieralisi
2017-10-12 11:05             ` Lorenzo Pieralisi
2017-10-12 11:11             ` Hanjun Guo
2017-10-12 11:11               ` Hanjun Guo
2017-10-31 23:33 ` Yury Norov
2017-10-31 23:33   ` Yury Norov
2017-11-02 20:38   ` Leeder, Neil
2017-11-02 20:38     ` Leeder, Neil
2017-12-10  2:35 ` Linu Cherian
2017-12-10  2:35   ` Linu Cherian
2017-12-18 14:48   ` Robin Murphy
2017-12-18 14:48     ` Robin Murphy
2017-12-18 15:39     ` Marc Zyngier
2017-12-18 15:39       ` Marc Zyngier
2017-12-19  6:55       ` Linu Cherian
2017-12-19  6:55         ` Linu Cherian
2017-12-19 12:11         ` Marc Zyngier
2017-12-19 12:11           ` Marc Zyngier
2017-12-19  6:36     ` Linu Cherian
2017-12-19  6:36       ` Linu Cherian

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=70d0c34c-853d-547b-49cb-4b70a85c4da4@huawei.com \
    --to=xieyisheng1@huawei.com \
    --cc=broonie@kernel.org \
    --cc=jcm@redhat.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mark.rutland@arm.com \
    --cc=mlangsdo@redhat.com \
    --cc=msalter@redhat.com \
    --cc=nleeder@codeaurora.org \
    --cc=shameerali.kolothum.thodi@huawei.com \
    --cc=timur@codeaurora.org \
    --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.