diff mbox

[v2,1/2] ARM: shmobile: sh73a0: enable PMU(Performance Monitoring Unit)

Message ID 1346909447-12526-2-git-send-email-koba@kmckk.co.jp (mailing list archive)
State New, archived
Headers show

Commit Message

Tetsuyuki Kobayashi Sept. 6, 2012, 5:30 a.m. UTC
From: Tetsuyuki Kobayashi <koba@kmckk.co.jp>

This patch enables PMU(Performance Monitoring Unit) for sh73a0.

Signed-off-by: Tetsuyuki Kobayashi <koba@kmckk.co.jp>
---
Changes for v2:
- Removed #ifdef CONFIG_HW_PERF_EVENTS
- Added kzm9g_defconfig

 arch/arm/configs/kzm9g_defconfig      |    1 +
 arch/arm/mach-shmobile/setup-sh73a0.c |   22 ++++++++++++++++++++++
 2 files changed, 23 insertions(+)

Comments

Will Deacon Sept. 6, 2012, 9:11 a.m. UTC | #1
On Thu, Sep 06, 2012 at 06:30:46AM +0100, Tetsuyuki Kobayshi wrote:
> From: Tetsuyuki Kobayashi <koba@kmckk.co.jp>
> 
> This patch enables PMU(Performance Monitoring Unit) for sh73a0.
> 
> Signed-off-by: Tetsuyuki Kobayashi <koba@kmckk.co.jp>
> ---
> Changes for v2:
> - Removed #ifdef CONFIG_HW_PERF_EVENTS
> - Added kzm9g_defconfig
> 
>  arch/arm/configs/kzm9g_defconfig      |    1 +
>  arch/arm/mach-shmobile/setup-sh73a0.c |   22 ++++++++++++++++++++++
>  2 files changed, 23 insertions(+)
> 
> diff --git a/arch/arm/configs/kzm9g_defconfig b/arch/arm/configs/kzm9g_defconfig
> index 2388c86..5d0c667 100644
> --- a/arch/arm/configs/kzm9g_defconfig
> +++ b/arch/arm/configs/kzm9g_defconfig
> @@ -14,6 +14,7 @@ CONFIG_NAMESPACES=y
>  CONFIG_CC_OPTIMIZE_FOR_SIZE=y
>  CONFIG_SYSCTL_SYSCALL=y
>  CONFIG_EMBEDDED=y
> +CONFIG_PERF_EVENTS=y
>  CONFIG_SLAB=y
>  CONFIG_MODULES=y
>  CONFIG_MODULE_FORCE_LOAD=y
> diff --git a/arch/arm/mach-shmobile/setup-sh73a0.c b/arch/arm/mach-shmobile/setup-sh73a0.c
> index d230af6..8186a08 100644
> --- a/arch/arm/mach-shmobile/setup-sh73a0.c
> +++ b/arch/arm/mach-shmobile/setup-sh73a0.c
> @@ -39,6 +39,7 @@
>  #include <asm/mach/map.h>
>  #include <asm/mach/arch.h>
>  #include <asm/mach/time.h>
> +#include <asm/pmu.h>
>  
>  static struct map_desc sh73a0_io_desc[] __initdata = {
>  	/* create a 1:1 entity map for 0xe6xxxxxx
> @@ -734,6 +735,26 @@ static struct platform_device mpdma0_device = {
>  	},
>  };
>  
> +static struct resource pmu_resources[] = {
> +	[0] = {
> +		.start	= gic_spi(55),
> +		.end	= gic_spi(55),
> +		.flags	= IORESOURCE_IRQ,
> +	},
> +	[1] = {
> +		.start	= gic_spi(56),
> +		.end	= gic_spi(56),
> +		.flags	= IORESOURCE_IRQ,
> +	},
> +};
> +
> +static struct platform_device pmu_device = {
> +	.name		= "arm-pmu",
> +	.id		= ARM_PMU_DEVICE_CPU,
> +	.num_resources	= ARRAY_SIZE(pmu_resources),
> +	.resource	= pmu_resources,
> +};

Please check my latest perf stuff to go into arm-soc (pmu/cleanup). The
ARM_PMU_DEVICE_CPU crap has disappeared and you won't need to include
asm/pmu.h anymore.

Will
Tetsuyuki Kobayashi Sept. 6, 2012, 9:57 a.m. UTC | #2
Hello, Will

(2012/09/06 18:11), Will Deacon wrote:
> On Thu, Sep 06, 2012 at 06:30:46AM +0100, Tetsuyuki Kobayshi wrote:
>> From: Tetsuyuki Kobayashi <koba@kmckk.co.jp>
>>
>> This patch enables PMU(Performance Monitoring Unit) for sh73a0.
>>
>> Signed-off-by: Tetsuyuki Kobayashi <koba@kmckk.co.jp>
>> ---
>> Changes for v2:
>> - Removed #ifdef CONFIG_HW_PERF_EVENTS
>> - Added kzm9g_defconfig
>>
>>   arch/arm/configs/kzm9g_defconfig      |    1 +
>>   arch/arm/mach-shmobile/setup-sh73a0.c |   22 ++++++++++++++++++++++
>>   2 files changed, 23 insertions(+)
>>
>> diff --git a/arch/arm/configs/kzm9g_defconfig b/arch/arm/configs/kzm9g_defconfig
>> index 2388c86..5d0c667 100644
>> --- a/arch/arm/configs/kzm9g_defconfig
>> +++ b/arch/arm/configs/kzm9g_defconfig
>> @@ -14,6 +14,7 @@ CONFIG_NAMESPACES=y
>>   CONFIG_CC_OPTIMIZE_FOR_SIZE=y
>>   CONFIG_SYSCTL_SYSCALL=y
>>   CONFIG_EMBEDDED=y
>> +CONFIG_PERF_EVENTS=y
>>   CONFIG_SLAB=y
>>   CONFIG_MODULES=y
>>   CONFIG_MODULE_FORCE_LOAD=y
>> diff --git a/arch/arm/mach-shmobile/setup-sh73a0.c b/arch/arm/mach-shmobile/setup-sh73a0.c
>> index d230af6..8186a08 100644
>> --- a/arch/arm/mach-shmobile/setup-sh73a0.c
>> +++ b/arch/arm/mach-shmobile/setup-sh73a0.c
>> @@ -39,6 +39,7 @@
>>   #include <asm/mach/map.h>
>>   #include <asm/mach/arch.h>
>>   #include <asm/mach/time.h>
>> +#include <asm/pmu.h>
>>
>>   static struct map_desc sh73a0_io_desc[] __initdata = {
>>   	/* create a 1:1 entity map for 0xe6xxxxxx
>> @@ -734,6 +735,26 @@ static struct platform_device mpdma0_device = {
>>   	},
>>   };
>>
>> +static struct resource pmu_resources[] = {
>> +	[0] = {
>> +		.start	= gic_spi(55),
>> +		.end	= gic_spi(55),
>> +		.flags	= IORESOURCE_IRQ,
>> +	},
>> +	[1] = {
>> +		.start	= gic_spi(56),
>> +		.end	= gic_spi(56),
>> +		.flags	= IORESOURCE_IRQ,
>> +	},
>> +};
>> +
>> +static struct platform_device pmu_device = {
>> +	.name		= "arm-pmu",
>> +	.id		= ARM_PMU_DEVICE_CPU,
>> +	.num_resources	= ARRAY_SIZE(pmu_resources),
>> +	.resource	= pmu_resources,
>> +};
>
> Please check my latest perf stuff to go into arm-soc (pmu/cleanup). The
> ARM_PMU_DEVICE_CPU crap has disappeared and you won't need to include
> asm/pmu.h anymore.
>
Thak you, Will. I'm checking out pmu/cleanup branch of arm-soc.
I will post v3 patch based on it.
Tetsuyuki Kobayashi Sept. 6, 2012, 11:14 a.m. UTC | #3
From: Tetsuyuki Kobayashi <koba@kmckk.co.jp>

Hello, Will

Could you apply this patch set to your pmu/cleanup branch on arm-soc?

The follewing patches enables PMU(Performance Monitoring Unit) for sh73a0 and emev2 SoCs. I tested these patches on kzm9g board and kzm9d board.

Tetsuyuki Kobayashi (2):
  ARM: shmobile: sh73a0: enable PMU(Performance Monitoring Unit)
  ARM: shmobile: emev2: enable PMU(Performance Monitoring Unit)

 arch/arm/configs/kzm9d_defconfig      |    1 +
 arch/arm/configs/kzm9g_defconfig      |    1 +
 arch/arm/mach-shmobile/setup-emev2.c  |   21 +++++++++++++++++++++
 arch/arm/mach-shmobile/setup-sh73a0.c |   21 +++++++++++++++++++++
 4 files changed, 44 insertions(+)
Will Deacon Sept. 6, 2012, 11:21 a.m. UTC | #4
On Thu, Sep 06, 2012 at 12:14:05PM +0100, Tetsuyuki Kobayshi wrote:
> From: Tetsuyuki Kobayashi <koba@kmckk.co.jp>
> 
> Hello, Will

Hi,

Thanks for updating the patches.

> Could you apply this patch set to your pmu/cleanup branch on arm-soc?

Actually, it's better if you just base your branch against that one when you
send it to arm-soc for merging. That way, other SoCs can also develop
against that branch without having to worry about each other.

Cheers,

Will
Tetsuyuki Kobayashi Sept. 7, 2012, 1:50 a.m. UTC | #5
Hi, Will
Hi, Simon

(2012/09/06 20:21), Will Deacon wrote:
> On Thu, Sep 06, 2012 at 12:14:05PM +0100, Tetsuyuki Kobayshi wrote:
>> From: Tetsuyuki Kobayashi <koba@kmckk.co.jp>
>>
>> Hello, Will
>
> Hi,
>
> Thanks for updating the patches.
>
>> Could you apply this patch set to your pmu/cleanup branch on arm-soc?
>
> Actually, it's better if you just base your branch against that one when you
> send it to arm-soc for merging. That way, other SoCs can also develop
> against that branch without having to worry about each other.
>
I see.
I thought that removing ARM_PMU_DEVICE_CPU depends on your pmu/cleanup 
branch, but I found it does not.
I verified this v3 patch can apply cleanly to soc branch on renesus.git
and works fine.

Simon-san, could you apply this v3 patch to soc branch after review ?
Will Deacon Sept. 7, 2012, 8:46 a.m. UTC | #6
On Fri, Sep 07, 2012 at 02:50:47AM +0100, Tetsuyuki Kobayashi wrote:
> (2012/09/06 20:21), Will Deacon wrote:
> > On Thu, Sep 06, 2012 at 12:14:05PM +0100, Tetsuyuki Kobayshi wrote:
> >> From: Tetsuyuki Kobayashi <koba@kmckk.co.jp>
> > Actually, it's better if you just base your branch against that one when you
> > send it to arm-soc for merging. That way, other SoCs can also develop
> > against that branch without having to worry about each other.
> >
> I see.
> I thought that removing ARM_PMU_DEVICE_CPU depends on your pmu/cleanup 
> branch, but I found it does not.

It will probably build alright for you without my patches, but I don't
thinkt it will work correctly as we'll fail to reserve the PMU.

Will
Simon Horman Sept. 7, 2012, 1:25 p.m. UTC | #7
On Fri, Sep 07, 2012 at 10:50:47AM +0900, Tetsuyuki Kobayashi wrote:
> Hi, Will
> Hi, Simon
> 
> (2012/09/06 20:21), Will Deacon wrote:
> >On Thu, Sep 06, 2012 at 12:14:05PM +0100, Tetsuyuki Kobayshi wrote:
> >>From: Tetsuyuki Kobayashi <koba@kmckk.co.jp>
> >>
> >>Hello, Will
> >
> >Hi,
> >
> >Thanks for updating the patches.
> >
> >>Could you apply this patch set to your pmu/cleanup branch on arm-soc?
> >
> >Actually, it's better if you just base your branch against that one when you
> >send it to arm-soc for merging. That way, other SoCs can also develop
> >against that branch without having to worry about each other.
> >
> I see.
> I thought that removing ARM_PMU_DEVICE_CPU depends on your
> pmu/cleanup branch, but I found it does not.
> I verified this v3 patch can apply cleanly to soc branch on renesus.git
> and works fine.
> 
> Simon-san, could you apply this v3 patch to soc branch after review ?

Sure, will do.
Simon Horman Sept. 11, 2012, 8:10 a.m. UTC | #8
On Thu, Sep 06, 2012 at 08:14:05PM +0900, Tetsuyuki Kobayshi wrote:
> From: Tetsuyuki Kobayashi <koba@kmckk.co.jp>
> 
> Hello, Will
> 
> Could you apply this patch set to your pmu/cleanup branch on arm-soc?
> 
> The follewing patches enables PMU(Performance Monitoring Unit) for sh73a0 and emev2 SoCs. I tested these patches on kzm9g board and kzm9d board.

Thanks, I have pushed this to the pmu/cleanup branch of my renesas tree
and sent a pull-request to Will.
diff mbox

Patch

diff --git a/arch/arm/configs/kzm9g_defconfig b/arch/arm/configs/kzm9g_defconfig
index 2388c86..5d0c667 100644
--- a/arch/arm/configs/kzm9g_defconfig
+++ b/arch/arm/configs/kzm9g_defconfig
@@ -14,6 +14,7 @@  CONFIG_NAMESPACES=y
 CONFIG_CC_OPTIMIZE_FOR_SIZE=y
 CONFIG_SYSCTL_SYSCALL=y
 CONFIG_EMBEDDED=y
+CONFIG_PERF_EVENTS=y
 CONFIG_SLAB=y
 CONFIG_MODULES=y
 CONFIG_MODULE_FORCE_LOAD=y
diff --git a/arch/arm/mach-shmobile/setup-sh73a0.c b/arch/arm/mach-shmobile/setup-sh73a0.c
index d230af6..8186a08 100644
--- a/arch/arm/mach-shmobile/setup-sh73a0.c
+++ b/arch/arm/mach-shmobile/setup-sh73a0.c
@@ -39,6 +39,7 @@ 
 #include <asm/mach/map.h>
 #include <asm/mach/arch.h>
 #include <asm/mach/time.h>
+#include <asm/pmu.h>
 
 static struct map_desc sh73a0_io_desc[] __initdata = {
 	/* create a 1:1 entity map for 0xe6xxxxxx
@@ -734,6 +735,26 @@  static struct platform_device mpdma0_device = {
 	},
 };
 
+static struct resource pmu_resources[] = {
+	[0] = {
+		.start	= gic_spi(55),
+		.end	= gic_spi(55),
+		.flags	= IORESOURCE_IRQ,
+	},
+	[1] = {
+		.start	= gic_spi(56),
+		.end	= gic_spi(56),
+		.flags	= IORESOURCE_IRQ,
+	},
+};
+
+static struct platform_device pmu_device = {
+	.name		= "arm-pmu",
+	.id		= ARM_PMU_DEVICE_CPU,
+	.num_resources	= ARRAY_SIZE(pmu_resources),
+	.resource	= pmu_resources,
+};
+
 static struct platform_device *sh73a0_early_devices[] __initdata = {
 	&scif0_device,
 	&scif1_device,
@@ -757,6 +778,7 @@  static struct platform_device *sh73a0_late_devices[] __initdata = {
 	&i2c4_device,
 	&dma0_device,
 	&mpdma0_device,
+	&pmu_device,
 };
 
 #define SRCR2          0xe61580b0