From mboxrd@z Thu Jan 1 00:00:00 1970 X-GM-THRID: 6709026804638679040 Date: Tue, 2 Jul 2019 05:14:27 -0700 (PDT) From: chombourger@gmail.com To: isar-users Message-Id: <45064917-b93a-4cb7-80dd-833f192bde19@googlegroups.com> In-Reply-To: <866f4164-0dc6-beba-ea97-c9904b4bc391@siemens.com> References: <4aafffd4-e6ed-4db1-a93b-dc853aa5dc84@googlegroups.com> <866f4164-0dc6-beba-ea97-c9904b4bc391@siemens.com> Subject: Re: linux perf_4.19 MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_2262_2010244166.1562069667696" X-Google-Token: EKOV7egFiKiQDTpsdCA0 X-Google-IP: 192.94.31.2 X-TUID: RSfc1MQhVJaS ------=_Part_2262_2010244166.1562069667696 Content-Type: multipart/alternative; boundary="----=_Part_2263_977958643.1562069667697" ------=_Part_2263_977958643.1562069667697 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit I do have a kernel patch to make builddep produce a debian package for perf I however need to clean it up before I submit it upstream. Consider the inline patch below as RFC (tested on 4.14 and 4.19). My worry is around the hard-coded Depends (tested OK on Debian 9) Just did not get around to finalize it - sorry Index: linux-4.14.71/scripts/package/builddeb =================================================================== --- linux-4.14.71.orig/scripts/package/builddeb +++ linux-4.14.71/scripts/package/builddeb @@ -90,12 +90,23 @@ if [ -n "$KDEB_PKGVERSION" ]; then else packageversion=$version-$revision fi +perf_kver="${version%%-*}" +case "$perf_kver" in + *.*.*) + perf_kver="${perf_kver%.*}" + ;; +esac sourcename=$KDEB_SOURCENAME tmpdir="$objtree/debian/tmp" kernel_headers_dir="$objtree/debian/hdrtmp" libc_headers_dir="$objtree/debian/headertmp" dbg_dir="$objtree/debian/dbgtmp" packagename=linux-image-$version +perf_dir="$objtree/debian/perf-$perf_kver-tmp" +meta_perf_dir="$objtree/debian/perftmp" +perf_packagename=linux-perf-$perf_kver +meta_perf_packagename=linux-perf +dbg_dir="$objtree/debian/dbgtmp" kernel_headers_packagename=linux-headers-$version libc_headers_packagename=linux-libc-dev dbg_packagename=$packagename-dbg @@ -125,6 +136,7 @@ BUILD_DEBUG="$(grep -s '^CONFIG_DEBUG_IN # Setup the directory structure rm -rf "$tmpdir" "$kernel_headers_dir" "$libc_headers_dir" "$dbg_dir" $objtree/debian/files +rm -rf "$meta_perf_dir" "$perf_dir" mkdir -m 755 -p "$tmpdir/DEBIAN" mkdir -p "$tmpdir/lib" "$tmpdir/boot" mkdir -p "$kernel_headers_dir/lib/modules/$version/" @@ -177,6 +189,21 @@ if grep -q '^CONFIG_MODULES=y' $KCONFIG_ fi fi +mkdir -p $perf_dir +$MAKE -C tools/perf -f Makefile.perf \ + DESTDIR="$(readlink -f $perf_dir)" \ + srctree=$(pwd) \ + LDFLAGS= \ + prefix=/usr \ + perfexecdir=lib/perf_$perf_kver-core \ + install +mv $perf_dir/usr/bin/perf $perf_dir/usr/bin/perf_$perf_kver +rm -f $perf_dir/usr/bin/trace +for p in $perf_dir/usr/bin/perf-*; do + [ -f $p ] || continue + mv $p $perf_dir/usr/lib/perf_$perf_kver-core/ +done + if [ "$ARCH" != "um" ]; then $MAKE headers_check KBUILD_SRC= $MAKE headers_install KBUILD_SRC= INSTALL_HDR_PATH="$libc_headers_dir/usr" @@ -352,12 +379,35 @@ Description: Linux support headers for u are used by the installed headers for GNU glibc and other system libraries. EOF +cat <> debian/control + +Package: $meta_perf_packagename +Section: devel +Architecture: all +Depends: $perf_packagename +Description: Performance analysis tools for Linux (meta-package) + This package depends on the package containing the 'perf' performance analysis + tools for the latest Linux kernel. + +Package: $perf_packagename +Section: devel +Architecture: any +Depends: libunwind8, libperl5.24, libpython2.7, binutils, libnuma1 +Description: Performance analysis tools for Linux $KERNELRELEASE + This package contains the 'perf' performance analysis tools for Linux kernel + version $KERNELRELEASE +EOF + if [ "$ARCH" != "um" ]; then create_package "$kernel_headers_packagename" "$kernel_headers_dir" create_package "$libc_headers_packagename" "$libc_headers_dir" fi create_package "$packagename" "$tmpdir" +create_package "$perf_packagename" "$perf_dir" + +forcearch="-DArchitecture=all" \ +create_package "$meta_perf_packagename" "$meta_perf_dir" if [ -n "$BUILD_DEBUG" ] ; then # Build debug package On Tuesday, July 2, 2019 at 1:38:03 PM UTC+2, Jan Kiszka wrote: > > On 02.07.19 13:30, srinuv...@gmail.com wrote: > > Hi All, > > > > We need to support perf tool in linux-cip 4.19 kernel, > Is it > > available perf_4.19 in ISAR? > > > > Let's start differently: > > - describe the problem you are facing (Debian perf vs. perf from custom > kernels) > - describe your current downstream approach to resolve that (ideally > with code) > - ask for feedback / suggestions how to address that in Isar generically > > Jan > > -- > Siemens AG, Corporate Technology, CT RDA IOT SES-DE > Corporate Competence Center Embedded Linux > ------=_Part_2263_977958643.1562069667697 Content-Type: text/html; charset=utf-8 Content-Transfer-Encoding: quoted-printable
I do have a kernel patch to make builddep produce a debian= package for perf

I however need to clean it up before I= submit it upstream. Consider the inline patch below as RFC
(test= ed on 4.14 and 4.19). My worry is around the hard-coded Depends (tested OK = on Debian 9)

Just did not get around to finalize i= t - sorry

Index: linux-4.14.71/scripts/packag= e/builddeb
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- linux-4.14.71.orig/scripts/package/builddeb
+++ linux= -4.14.71/scripts/package/builddeb
@@ -90,12 +90,23 @@ if [ -n &qu= ot;$KDEB_PKGVERSION" ]; then
=C2=A0else
=C2=A0 =C2= =A0 =C2=A0 =C2=A0 packageversion=3D$version-$revision
=C2=A0fi
+perf_kver=3D"${version%%-*}"
+case "$perf= _kver" in
+=C2=A0 =C2=A0 *.*.*)
+=C2=A0 =C2=A0 =C2= =A0 =C2=A0 perf_kver=3D"${perf_kver%.*}"
+=C2=A0 =C2=A0= =C2=A0 =C2=A0 ;;
+esac
=C2=A0sourcename=3D$KDEB_SOURCE= NAME
=C2=A0tmpdir=3D"$objtree/debian/tmp"
=C2= =A0kernel_headers_dir=3D"$objtree/debian/hdrtmp"
=C2=A0= libc_headers_dir=3D"$objtree/debian/headertmp"
=C2=A0db= g_dir=3D"$objtree/debian/dbgtmp"
=C2=A0packagename=3Dli= nux-image-$version
+perf_dir=3D"$objtree/debian/perf-$perf_k= ver-tmp"
+meta_perf_dir=3D"$objtree/debian/perftmp"= ;
+perf_packagename=3Dlinux-perf-$perf_kver
+meta_perf_= packagename=3Dlinux-perf
+dbg_dir=3D"$objtree/debian/dbgtmp&= quot;
=C2=A0kernel_headers_packagename=3Dlinux-headers-$version
=C2=A0libc_headers_packagename=3Dlinux-libc-dev
=C2=A0db= g_packagename=3D$packagename-dbg
@@ -125,6 +136,7 @@ BUILD_DEBUG= =3D"$(grep -s '^CONFIG_DEBUG_IN

=C2=A0# S= etup the directory structure
=C2=A0rm -rf "$tmpdir" &qu= ot;$kernel_headers_dir" "$libc_headers_dir" "$dbg_dir&q= uot; $objtree/debian/files
+rm -rf "$meta_perf_dir" &qu= ot;$perf_dir"
=C2=A0mkdir -m 755 -p "$tmpdir/DEBIAN&quo= t;
=C2=A0mkdir -p "$tmpdir/lib" "$tmpdir/boot"= ;
=C2=A0mkdir -p "$kernel_headers_dir/lib/modules/$version/&= quot;
@@ -177,6 +189,21 @@ if grep -q '^CONFIG_MODULES=3Dy= 9; $KCONFIG_
=C2=A0 =C2=A0 =C2=A0 =C2=A0 fi
=C2=A0fi
+mkdir -p $perf_dir
+$MAKE -C tools/perf -f Makefile= .perf=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0\
+=C2=A0 =C2=A0 = =C2=A0 =C2=A0DESTDIR=3D"$(readlink -f $perf_dir)"=C2=A0 =C2=A0 = =C2=A0 \
+=C2=A0 =C2=A0 =C2=A0 =C2=A0srctree=3D$(pwd)=C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 \
+=C2=A0 =C2=A0 =C2=A0 =C2=A0LDFLAGS=3D=C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 \
+=C2=A0 =C2=A0 =C2=A0 =C2=A0prefix=3D/usr= =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0\
+=C2=A0 =C2=A0 =C2=A0 =C2=A0perf= execdir=3Dlib/perf_$perf_kver-core=C2=A0 =C2=A0 \
+=C2=A0 =C2=A0 = =C2=A0 =C2=A0install
+mv $perf_dir/usr/bin/perf $perf_dir/usr/bin= /perf_$perf_kver
+rm -f $perf_dir/usr/bin/trace
+for p = in $perf_dir/usr/bin/perf-*; do
+=C2=A0 =C2=A0 =C2=A0 =C2=A0[ -f = $p ] || continue
+=C2=A0 =C2=A0 =C2=A0 =C2=A0mv $p $perf_dir/usr/= lib/perf_$perf_kver-core/
+done
+
=C2=A0if [ = "$ARCH" !=3D "um" ]; then
=C2=A0 =C2=A0 =C2= =A0 =C2=A0 $MAKE headers_check KBUILD_SRC=3D
=C2=A0 =C2=A0 =C2=A0= =C2=A0 $MAKE headers_install KBUILD_SRC=3D INSTALL_HDR_PATH=3D"$libc_= headers_dir/usr"
@@ -352,12 +379,35 @@ Description: Linux su= pport headers for u
=C2=A0 are used by the installed headers for = GNU glibc and other system libraries.
=C2=A0EOF

+cat <<EOF >> debian/control
+
+Pac= kage: $meta_perf_packagename
+Section: devel
+Architect= ure: all
+Depends: $perf_packagename
+Description: Perf= ormance analysis tools for Linux (meta-package)
+ This package de= pends on the package containing the 'perf' performance analysis
+ tools for the latest Linux kernel.
+
+Package:= $perf_packagename
+Section: devel
+Architecture: any
+Depends: libunwind8, libperl5.24, libpython2.7, binutils, libnuma= 1
+Description: Performance analysis tools for Linux $KERNELRELEA= SE
+ This package contains the 'perf' performance analysi= s tools for Linux kernel
+ version $KERNELRELEASE
+EOF
+
=C2=A0if [ "$ARCH" !=3D "um= " ]; then
=C2=A0 =C2=A0 =C2=A0 =C2=A0 create_package "$= kernel_headers_packagename" "$kernel_headers_dir"
= =C2=A0 =C2=A0 =C2=A0 =C2=A0 create_package "$libc_headers_packagename&= quot; "$libc_headers_dir"
=C2=A0fi

=
=C2=A0create_package "$packagename" "$tmpdir"
+create_package "$perf_packagename" "$perf_dir"
+
+forcearch=3D"-DArchitecture=3Dall" \
<= div>+create_package "$meta_perf_packagename" "$meta_perf_dir= "

=C2=A0if [ -n "$BUILD_DEBUG" ] ; = then
=C2=A0 =C2=A0 =C2=A0 =C2=A0 # Build debug package

On Tuesday, July 2, 2019 at 1:38:03 PM UTC+2, Jan Kiszka wrote:On 02.07.19 13:30, srinuv...@gmail.com= wrote:
> Hi All,
>=20
> =C2=A0=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0We ne= ed to support perf tool in linux-cip 4.19 kernel, Is it=20
> available perf_4.19 in ISAR?
>=20

Let's start differently:

- describe the problem you are facing (Debian perf vs. perf from custom
=C2=A0 =C2=A0kernels)
- describe your current downstream approach to resolve that (ideally
=C2=A0 =C2=A0with code)
- ask for feedback / suggestions how to address that in Isar genericall= y

Jan

--=20
Siemens AG, Corporate Technology, CT RDA IOT SES-DE
Corporate Competence Center Embedded Linux
------=_Part_2263_977958643.1562069667697-- ------=_Part_2262_2010244166.1562069667696--