diff mbox

ARM: automatically select OMAP3_PMU if we try to use perf on OMAP3

Message ID CAK5ve-LQcY6XQENBJw6JaarLffULA7EtjJMxCtpzhwPCfs2OuA@mail.gmail.com (mailing list archive)
State New, archived
Headers show

Commit Message

Bryan Wu June 30, 2011, 11:35 a.m. UTC
On Tue, Jun 28, 2011 at 9:57 PM, Will Deacon <will.deacon@arm.com> wrote:
>
> Hi Bryan,
>
> On Tue, Jun 28, 2011 at 02:37:45PM +0100, Bryan Wu wrote:
>> For our Ubuntu kernel on OMAP4 machine, we need to enable OMAP3 as well as
>> OMAP4. OMAP3_EMU has to be enabled manully to make CPU_HAS_PMU=y, which is
>> required by perf.
>>
>> So this patch will select the OMAP3_EMU if ARCH_OMAP3 is enabled.
>>
>> Cc: Ming Lei <ming.lei@canonical.com>
>> Signed-off-by: Bryan Wu <bryan.wu@canonical.com>
>> ---
>>  arch/arm/Kconfig |    4 ++--
>>  1 files changed, 2 insertions(+), 2 deletions(-)
>>
>> diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
>> index 2fd0911..53d0eba 100644
>> --- a/arch/arm/Kconfig
>> +++ b/arch/arm/Kconfig
>> @@ -1084,10 +1084,10 @@ config XSCALE_PMU
>>       default y
>>
>>  config CPU_HAS_PMU
>> -     depends on (CPU_V6 || CPU_V6K || CPU_V7 || XSCALE_PMU) && \
>> -                (!ARCH_OMAP3 || OMAP3_EMU)
>> +     depends on CPU_V6 || CPU_V6K || CPU_V7 || XSCALE_PMU
>>       default y
>>       bool
>> +     select OMAP3_EMU if ARCH_OMAP3
>>
>>  config MULTI_IRQ_HANDLER
>>       bool
>
> This issue has been discussed on the list in the past and I still think that
> it would be better for your config to select OMAP3_EMU explicitly. If we do
> that here unconditionally then we end up also bringing in OC_ETM which isn't
> something that sounds like a good idea (may have implications for power
> consumption in production hardware?).
>

Will,

I quite understand your concern. How about this one?
----

----

I think it is quite logically clear.
1. if the CPU is V6, V6K, V7, then CPU_HAS_PMU supported
2. if the CPU is OMAP3, we need select OMAP3_EMU built-in
3. if we don't use PERF at all, we don't need built-in OMAP3_EMU

Thanks,

Comments

Arnd Bergmann June 30, 2011, 1:27 p.m. UTC | #1
On Thursday 30 June 2011, Bryan Wu wrote:
> On Tue, Jun 28, 2011 at 9:57 PM, Will Deacon <will.deacon@arm.com> wrote:

> >
> > This issue has been discussed on the list in the past and I still think that
> > it would be better for your config to select OMAP3_EMU explicitly. If we do
> > that here unconditionally then we end up also bringing in OC_ETM which isn't
> > something that sounds like a good idea (may have implications for power
> > consumption in production hardware?).
> >
> I quite understand your concern. How about this one?
> ----
> diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
> index 2fd0911..e53f9e4 100644
> --- a/arch/arm/Kconfig
> +++ b/arch/arm/Kconfig
> @@ -1084,10 +1084,10 @@ config XSCALE_PMU
>         default y
> 
>  config CPU_HAS_PMU
> -       depends on (CPU_V6 || CPU_V6K || CPU_V7 || XSCALE_PMU) && \
> -                  (!ARCH_OMAP3 || OMAP3_EMU)
> +       depends on CPU_V6 || CPU_V6K || CPU_V7 || XSCALE_PMU
>         default y
>         bool
> +       select OMAP3_EMU if (PERF_EVENTS && ARCH_OMAP3)
> 
>  config MULTI_IRQ_HANDLER
>         bool
> 

As far as I can tell, it still has the same issue. I think the existing
code is better. If you want to support HW_PERF_EVENTS on OMAP3, just
turn on OMAP3_EMU. Where's the problem with that?

In general, specifying clear dependencies is preferred over 'select'
statements, which are the equivalent to the 'comefrom' statement
in programming languages [1].

	Arnd

[1] http://en.wikipedia.org/wiki/COMEFROM
Will Deacon June 30, 2011, 9:51 p.m. UTC | #2
On Thu, Jun 30, 2011 at 02:27:02PM +0100, Arnd Bergmann wrote:
> On Thursday 30 June 2011, Bryan Wu wrote:
> > On Tue, Jun 28, 2011 at 9:57 PM, Will Deacon <will.deacon@arm.com> wrote:
> 
> > >
> > > This issue has been discussed on the list in the past and I still think that
> > > it would be better for your config to select OMAP3_EMU explicitly. If we do
> > > that here unconditionally then we end up also bringing in OC_ETM which isn't
> > > something that sounds like a good idea (may have implications for power
> > > consumption in production hardware?).
> > >
> > I quite understand your concern. How about this one?
> > ----
> > diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
> > index 2fd0911..e53f9e4 100644
> > --- a/arch/arm/Kconfig
> > +++ b/arch/arm/Kconfig
> > @@ -1084,10 +1084,10 @@ config XSCALE_PMU
> >         default y
> > 
> >  config CPU_HAS_PMU
> > -       depends on (CPU_V6 || CPU_V6K || CPU_V7 || XSCALE_PMU) && \
> > -                  (!ARCH_OMAP3 || OMAP3_EMU)
> > +       depends on CPU_V6 || CPU_V6K || CPU_V7 || XSCALE_PMU
> >         default y
> >         bool
> > +       select OMAP3_EMU if (PERF_EVENTS && ARCH_OMAP3)
> > 
> >  config MULTI_IRQ_HANDLER
> >         bool
> > 
> 
> As far as I can tell, it still has the same issue. I think the existing
> code is better. If you want to support HW_PERF_EVENTS on OMAP3, just
> turn on OMAP3_EMU. Where's the problem with that?

Yup. Although the new patch does address my previous technical concerns, I'm
still not happy with it. Just select OMAP3_EMU!

> [1] http://en.wikipedia.org/wiki/COMEFROM

Ha, that really is horrible!

Will
diff mbox

Patch

diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 2fd0911..e53f9e4 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -1084,10 +1084,10 @@  config XSCALE_PMU
        default y

 config CPU_HAS_PMU
-       depends on (CPU_V6 || CPU_V6K || CPU_V7 || XSCALE_PMU) && \
-                  (!ARCH_OMAP3 || OMAP3_EMU)
+       depends on CPU_V6 || CPU_V6K || CPU_V7 || XSCALE_PMU
        default y
        bool
+       select OMAP3_EMU if (PERF_EVENTS && ARCH_OMAP3)

 config MULTI_IRQ_HANDLER
        bool