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



* 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/



Relevant Pages

  • Re: Fwd: Re: [2.6.24 patch] restore ARMv6 OProfile support
    ... instrumentation configuration entries. ... generic kernel/Kconfig.instrumentation file into the arm directory, ... So it allows the sharing of the common case and *many* architectures end ... +config PROFILING ...
    (Linux-Kernel)
  • Re: [PATCH 1/1] edac x38: new MC driver module
    ... with CONFIG_ARCH_HAS_READQ which architectures can select, ... If it's along side the relevent config option, ... I knew that implementing architecture-independed readq/writeq is too hard. ... So I wrote patch in Andrew's way. ...
    (Linux-Kernel)
  • [2.6 patch] arm: NR_CPUS: use range
    ... This patch uses range for NR_CPUS on arm (the same is already done on ... all other architectures). ... send the line "unsubscribe linux-kernel" in ...
    (Linux-Kernel)
  • [2.6 patch] arm: NR_CPUS: use range
    ... The patch below uses range for NR_CPUS on arm (the same is already ... done on all other architectures). ... config NR_CPUS ... To unsubscribe from this list: send the line "unsubscribe linux-kernel" in ...
    (Linux-Kernel)
  • Re: [patch] lockf(3) user-exploitable kernel panic
    ... I know my patch fails ... that libutil tries to provide this interface. ... The reason I asked was because I don't have access to many boxes of ... different architectures or operating systems. ...
    (freebsd-arch)