FAQ Search Today's Posts Mark Forums Read
» Video Reviews

» Linux Archive

Linux-archive is a website aiming to archive linux email lists and to make them easily accessible for linux users/developers.


» Sponsor

» Partners

» Sponsor

Go Back   Linux Archive > Ubuntu > Ubuntu Kernel Team

 
 
LinkBack Thread Tools
 
Old 04-21-2010, 01:27 PM
Andy Whitcroft
 
Default UBUNTU: fix perf kernel version detection for multiple-flavour strings

On Wed, Apr 21, 2010 at 08:42:59PM +0800, Jeremy Kerr wrote:
> Currently, the perf tool doesn't work for the generic-pae flavour:
>
> $ bash -x /usr/bin/perf
> ++ uname -r
> + version=2.6.32-21-generic-pae
> + version=2.6.32-21-generic
> + exec perf_2.6.32-21-generic
> /usr/bin/perf: line 4: exec: perf_2.6.32-21-generic: not found
>
> - the PAE flavour has a version string ending in -generic-pae, but the
> version cleaning in the perf script doesn't handle the multiple flavour
> strings correctly. The perf tool is named perf_2.6.32-21, not
> perf_2.6.32-21-generic.
>
> This change fixes the perf wrapper script to throw away version data
> after a 'dash, non-digit' sequence instead of just the last dash. This
> fixes the problem on the PAE kernel. We need to do a special pass for
> the -386 flavour, as it's virtually indisinguishable from a normal
> version number. Testing this parsing against the possible flavours
> gives:
>
> 2.6.32-21-generic -> 2.6.32-21
> 2.6.32-21-server -> 2.6.32-21
> 2.6.32-21-preempt -> 2.6.32-21
> 2.6.32-21-versatile -> 2.6.32-21
> 2.6.32-21-generic -> 2.6.32-21
> 2.6.32-21-generic-pae -> 2.6.32-21
> 2.6.32-21-386 -> 2.6.32-21
> 2.6.32-21-ia64 -> 2.6.32-21
> 2.6.32-21-lpia -> 2.6.32-21
> 2.6.32-21-powerpc -> 2.6.32-21
> 2.6.32-21-powerpc-smp -> 2.6.32-21
> 2.6.32-21-powerpc64-smp -> 2.6.32-21
> 2.6.32-21-sparc64 -> 2.6.32-21
> 2.6.32-21-sparc64-smp -> 2.6.32-21
>
> Signed-off-by: Jeremy Kerr <jeremy.kerr@canonical.com>
>
> ---
> debian/tools/perf | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/debian/tools/perf b/debian/tools/perf
> index 1a9915f..33df59d 100644
> --- a/debian/tools/perf
> +++ b/debian/tools/perf
> @@ -1,4 +1,5 @@
> #!/bin/bash
> version=`uname -r`
> -version=${version%-*}
> +version=${version/-[^0-9]*}
> +version=${version%-386}
> exec "perf_$version" "$@"

Yep, there is clearly an issue here. I don't like the fact we have to know
the form of some of the flavours here. I think we can more generically do
this by stripping the version-abi from the front which has a known form
(two lots of *-) and stripping the result from the original version.
Something like the patch below. Testing this gives:

2.6.32-21-generic -> 2.6.32-21
2.6.32-21-server -> 2.6.32-21
2.6.32-21-preempt -> 2.6.32-21
2.6.32-21-versatile -> 2.6.32-21
2.6.32-21-generic -> 2.6.32-21
2.6.32-21-generic-pae -> 2.6.32-21
2.6.32-21-386 -> 2.6.32-21
2.6.32-21-ia64 -> 2.6.32-21
2.6.32-21-lpia -> 2.6.32-21
2.6.32-21-powerpc -> 2.6.32-21
2.6.32-21-powerpc-smp -> 2.6.32-21
2.6.32-21-powerpc64-smp -> 2.6.32-21
2.6.32-21-sparc64 -> 2.6.32-21
2.6.32-21-sparc64-smp -> 2.6.32-21

-apw
 
Old 04-21-2010, 01:30 PM
Andy Whitcroft
 
Default UBUNTU: fix perf kernel version detection for multiple-flavour strings

On Wed, Apr 21, 2010 at 07:25:58AM -0600, Tim Gardner wrote:
> On 04/21/2010 06:42 AM, Jeremy Kerr wrote:
> >Currently, the perf tool doesn't work for the generic-pae flavour:
> >
> > $ bash -x /usr/bin/perf
> > ++ uname -r
> > + version=2.6.32-21-generic-pae
> > + version=2.6.32-21-generic
> > + exec perf_2.6.32-21-generic
> > /usr/bin/perf: line 4: exec: perf_2.6.32-21-generic: not found
> >
> >- the PAE flavour has a version string ending in -generic-pae, but the
> >version cleaning in the perf script doesn't handle the multiple flavour
> >strings correctly. The perf tool is named perf_2.6.32-21, not
> >perf_2.6.32-21-generic.
> >
> >This change fixes the perf wrapper script to throw away version data
> >after a 'dash, non-digit' sequence instead of just the last dash. This
> >fixes the problem on the PAE kernel. We need to do a special pass for
> >the -386 flavour, as it's virtually indisinguishable from a normal
> >version number. Testing this parsing against the possible flavours
> >gives:
> >
> > 2.6.32-21-generic -> 2.6.32-21
> > 2.6.32-21-server -> 2.6.32-21
> > 2.6.32-21-preempt -> 2.6.32-21
> > 2.6.32-21-versatile -> 2.6.32-21
> > 2.6.32-21-generic -> 2.6.32-21
> > 2.6.32-21-generic-pae -> 2.6.32-21
> > 2.6.32-21-386 -> 2.6.32-21
> > 2.6.32-21-ia64 -> 2.6.32-21
> > 2.6.32-21-lpia -> 2.6.32-21
> > 2.6.32-21-powerpc -> 2.6.32-21
> > 2.6.32-21-powerpc-smp -> 2.6.32-21
> > 2.6.32-21-powerpc64-smp -> 2.6.32-21
> > 2.6.32-21-sparc64 -> 2.6.32-21
> > 2.6.32-21-sparc64-smp -> 2.6.32-21
> >
> >Signed-off-by: Jeremy Kerr<jeremy.kerr@canonical.com>
> >
> >---
> > debian/tools/perf | 3 ++-
> > 1 file changed, 2 insertions(+), 1 deletion(-)
> >
> >diff --git a/debian/tools/perf b/debian/tools/perf
> >index 1a9915f..33df59d 100644
> >--- a/debian/tools/perf
> >+++ b/debian/tools/perf
> >@@ -1,4 +1,5 @@
> > #!/bin/bash
> > version=`uname -r`
> >-version=${version%-*}
> >+version=${version/-[^0-9]*}
> >+version=${version%-386}
> > exec "perf_$version" "$@"
> >
>
> Why not just drop everything after the second '-' inclusive ?
>
> rtg
> --
> Tim Gardner tim.gardner@canonical.com

> From f935a6337ea4a1b8d7061fc249cbbfa13c38f631 Mon Sep 17 00:00:00 2001
> From: Tim Gardner <tim.gardner@canonical.com>
> Date: Wed, 21 Apr 2010 07:24:13 -0600
> Subject: [PATCH] UBUNTU: Do a better job of stripping version information from the perf binary name
>
> Signed-off-by: Tim Gardner <tim.gardner@canonical.com>
> ---
> debian/tools/perf | 3 +--
> 1 files changed, 1 insertions(+), 2 deletions(-)
>
> diff --git a/debian/tools/perf b/debian/tools/perf
> index 1a9915f..7a3c10b 100644
> --- a/debian/tools/perf
> +++ b/debian/tools/perf
> @@ -1,4 +1,3 @@
> #!/bin/bash
> -version=`uname -r`
> -version=${version%-*}
> +version=`uname -r|sed 's/([0-9]*).([0-9]*).([0-9]*)-([0-9]*)-.*$/1.2.3-4/'`
> exec "perf_$version" "$@"

Yes we should use the known bits here. I would prefer to avoid the
additional fork here if possible. I think we can do that, see my other
reply for an alternative patch.

-apw

--
kernel-team mailing list
kernel-team@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/kernel-team
 

Thread Tools




All times are GMT. The time now is 10:27 PM.

VBulletin, Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO ©2007, Crawlability, Inc.
Copyright 2007 - 2008, www.linux-archive.org