[Bug 555130] Re: perf doesn't work on -pae-kernels [patch proposal]
Andy Whitcroft
apw at canonical.com
Thu Apr 22 17:49:54 UTC 2010
** Description changed:
+ SRU Justification
+
+ Justification: by default the perf command will not work correctly on
+ any flavour which contains a - in its name
+
+ Impact: unable to use the perf command to debug applications when using
+ generic-paeetc
+
+ Fix Description: change flavour removal to work with all flavours
+ through use of the known shape version number
+
+ Patch: http://kernel.ubuntu.com/git?p=ubuntu/ubuntu-
+ lucid.git;a=commit;h=6ec3efb32496eafa8be998507d26f7ffbe0747c4
+
+ Risks: low, this only changes the perf wrapper which has been tested
+ with all known flavours
+
+ TEST CASE: attempt to use perf on a generic-pae install note it fails,
+ install patch, note it now works as expected
+
+ ===
+
Binary package hint: linux-tools-common
linux-tools-common contains a small redirection-script (/usr/bin/perf),
for dispatching to the perf-version corresponding to the running kernel.
This script uses basically ${`uname -r`%-*} to figure the running kernel
version, where %-* strips the last dash-delimited component of the
kernel name. This breaks for -generic-pae.
Examples of uname "-r":
2.6.32-19-generic # Works today
2.6.32-19-generic-pae # Breaks, since the TWO last components needs to be stripped.
A proposed solution could be to instead use "%%-[a-z-]*", which would
remove ALL trailing letters, and dashes, up to the last digit in the
string (the package-release-number).
However, since I don't know kernel-release names for other
architectures, it needs to be verified first.
Suggested new perf, change only on line 3
----------------
#!/bin/bash
version=`uname -r`
version=${version%%-[a-z-]*}
exec "perf_$version" "$@"
--
perf doesn't work on -pae-kernels [patch proposal]
https://bugs.launchpad.net/bugs/555130
You received this bug notification because you are a member of Kernel
Bugs, which is subscribed to linux in ubuntu.
More information about the kernel-bugs
mailing list