Re: Fwd: Re: [2.6.24 patch] restore ARMv6 OProfile support

From: Mathieu Desnoyers
Date: Tue Jan 15 2008 - 12:47:22 EST


* Linus Torvalds (torvalds@xxxxxxxxxxxxxxxxxxxx) wrote:
>
>
> On Tue, 15 Jan 2008, Russell King wrote:
> >
> > I don't particularly like stuffing the options into some random place
> > in the architectures Kconfig file when they should stay along side the
> > instrumentation configuration entries.
>
> Well, I have to say that I don't particularly like obviously
> architecture-specific stuff in an obviously non-architecture file..
>
> I'd almost prefer to revert the thing that caused the problem, because
> with Adrian's patch, I think the end result may *work*, but it's uglier
> than what we started out with.
>
> However, I think the *cleanest* solution right now may be something like
> the appended. Totally untested, of course. It basically just copies the
> generic kernel/Kconfig.instrumentation file into the arm directory, makes
> arm use its own instead of the generic one, and removes the dependencies
> on ARM in there (including all of the KPROBES entry that apparently isn't
> an issue on ARM anyway). It then adds back the ARM-specific ones.
>
> This follows the sacred rules of good code:
>
> - generic code is either generic or not. If it's not generic, don't claim
> it is.
>
> - don't *force* people to use generic code if it doesn't suit them. Make
> it available for the cases it makes sense for, but don't shoe-horn it
> into cases where it doesn't work well.
>
> So it allows the sharing of the common case and *many* architectures end
> up using the generic Kconfig file, but hey, if it doesn't make sense for
> ARM, it doesn't make sense for ARM. It's that simple.
>
> But as mentioned, it's totally untested and I don't have (or really want
> to have) a cross-compiling environment. And I don't care *that* much. I
> just want something we can all live with.
>
> So does something like this work for people?
>

Hi,

Well, it goes along the lines of the patch I suggested as a reply to
Adrian, with these differences :

- I still source the kernel/Kconfig.instrumentation file.
- I put back the missing OPROFILE options directly in arch/arm/Kconfig

Then end result is the same as your patch, but without the code
duplication.

Here is the patch :


Fix ARMv6 oprofile support

This patch restores the ARMv6 OProfile support that was killed by
commit 09cadedbdc01f1a4bea1f427d4fb4642eaa19da9.

It puts the config options in arch/arm/Kconfig.

Thanks to Adrian Bunk for finding this bug and providing an initial
patch.

Changelog :
Use def_bool.

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@xxxxxxxxxx>
CC: Adrian Bunk <adrian.bunk@xxxxxxxxx>
CC: Randy Dunlap <randy.dunlap@xxxxxxxxxx>
CC: rmk@xxxxxxxxxxxxxxxx
CC: phil.el@xxxxxxxxxx
CC: oprofile-list@xxxxxxxxxxxxxxxxxxxxx
---
arch/arm/Kconfig | 17 +++++++++++++++++
1 file changed, 17 insertions(+)

Index: linux-2.6-lttng/arch/arm/Kconfig
===================================================================
--- linux-2.6-lttng.orig/arch/arm/Kconfig 2007-12-29 16:58:32.000000000 -0500
+++ linux-2.6-lttng/arch/arm/Kconfig 2007-12-29 16:59:25.000000000 -0500
@@ -130,6 +130,23 @@ config FIQ
config ARCH_MTD_XIP
bool

+if OPROFILE
+
+config OPROFILE_ARMV6
+ def_bool y
+ depends on CPU_V6 && !SMP
+ select OPROFILE_ARM11_CORE
+
+config OPROFILE_MPCORE
+ def_bool y
+ depends on CPU_V6 && SMP
+ select OPROFILE_ARM11_CORE
+
+config OPROFILE_ARM11_CORE
+ bool
+
+endif
+
config VECTORS_BASE
hex
default 0xffff0000 if MMU || CPU_HIGH_VECTOR


-
Mathieu Desnoyers
Computer Engineering Ph.D. Student, Ecole Polytechnique de Montreal
OpenPGP key fingerprint: 8CD5 52C3 8E3C 4140 715F BA06 3F25 A8FE 3BAE 9A68
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/