Skip to contentSkip to conversation

tracing: trace-cmd fixes and new kernelshark recipe

PATCH In review Darren Hart 3 participants 10 messages Jan 3, 2011

lore
Share & tools
lore
#0 lore raw

v2 cover tracing: trace-cmd fixes and new kernelshark recipe

This series fixes some issues with the existing trace-cmd recipe and adds a new recipe for kernelshark. The latter catches a bug in glib-2.0 which is also addressed in this series with a patch from Open Embedded.

V2: Update license and license files for trace-cmd and kernelshark

Pull URL: git://git.pokylinux.org/poky-contrib.git
Branch: dvhart/tracing
Browse: http://git.pokylinux.org/cgit.cgi/poky-contrib/log/?h=dvhart/tracing

Thanks,
Darren Hart <[email protected]>
---

Darren Hart (4):
trace-cmd: fix cross-compilation
trace-cmd: license file updates
glib-2.0: fix g_once_init_enter compile failure
kernelshark: add ftrace gui viewer

 .../glib-2.0-2.27.3/g_once_init_enter.patch        |   13 +++++++++++
 meta/recipes-core/glib-2.0/glib-2.0_2.27.3.bb      |    6 +++-
 meta/recipes-kernel/trace-cmd/kernelshark_git.bb   |   22 ++++++++++++++++++++
 meta/recipes-kernel/trace-cmd/trace-cmd_git.bb     |   17 +++++++--------
 4 files changed, 47 insertions(+), 11 deletions(-)
 create mode 100644 meta/recipes-core/glib-2.0/glib-2.0-2.27.3/g_once_init_enter.patch
 create mode 100644 meta/recipes-kernel/trace-cmd/kernelshark_git.bb
#2 lore raw

PATCH v2 2/4 trace-cmd: license file updates

---
 meta/recipes-kernel/trace-cmd/trace-cmd_git.bb |    5 +++--
 1 files changed, 3 insertions(+), 2 deletions(-)
meta/recipes-kernel/trace-cmd/trace-cmd_git.bb +3 -2
index a7eca5f..bc03b0c 100644
@@ -1,6 +1,7 @@
 DESCRIPTION = "User interface to Ftrace"
-LICENSE = "GPL"
-LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe \
+                    file://trace-cmd.c;beginline=6;endline=8;md5=2c22c965a649ddd7973d7913c5634a5e"
 
 PR = r2
 PV = "1.0.4+git${SRCPV}"
Signature · 1 line
1.7.1
#1 lore raw

PATCH v2 1/4 trace-cmd: fix cross-compilation

In reply to Darren Hart

The trace-cmd Makefile forces certain variables, such as CC and AR. It was using the host gcc and loader, fix it to use the poky-built cross-compiler and linker.

inherit pkgconfig to ensure we don't use the host pkg-config.

Remove unecessary variables from the oemake commands, such as ARCH and LD which aren't used by the Makefile.

---
 meta/recipes-kernel/trace-cmd/trace-cmd_git.bb |   12 +++++-------
 1 files changed, 5 insertions(+), 7 deletions(-)
meta/recipes-kernel/trace-cmd/trace-cmd_git.bb +5 -7
index e375afc..a7eca5f 100644
@@ -2,18 +2,16 @@ DESCRIPTION = "User interface to Ftrace"
 LICENSE = "GPL"
 LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
 
-PR = r1
+PR = r2
 PV = "1.0.4+git${SRCPV}"
 
+inherit pkgconfig
+
 SRC_URI = "git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/trace-cmd.git;protocol=git"
 S = "${WORKDIR}/git"
 
-
-do_compile() { 
-	oe_runmake ARCH="${ARCH}" CC="${CC}" LD="${LD}" prefix=${prefix}
-}
+EXTRA_OEMAKE = "'CC=${CC}' 'AR=${AR}' 'prefix=${prefix}'"
 
 do_install() {
-	oe_runmake ARCH="${ARCH}" CC="${CC}" LD="${LD}" \
-                   prefix=${prefix} DESTDIR=${D} install
+	oe_runmake CC="${CC}" AR="${AR}" prefix="${prefix}" DESTDIR="${D}" install
 }
Signature · 1 line
1.7.1
#3 lore raw

PATCH v2 3/4 glib-2.0: fix g_once_init_enter compile failure

In reply to Darren Hart

Kernelshark trips over a compile bug in glib-2.0 addressed by Open Embedded back in the 2.22 timeframe. It appears to still be present in 2.27.

http://www.mail-archive.com/[email protected]/msg00529.html

---
 .../glib-2.0-2.27.3/g_once_init_enter.patch        |   13 +++++++++++++
 meta/recipes-core/glib-2.0/glib-2.0_2.27.3.bb      |    6 ++++--
 2 files changed, 17 insertions(+), 2 deletions(-)
 create mode 100644 meta/recipes-core/glib-2.0/glib-2.0-2.27.3/g_once_init_enter.patch
meta/recipes-core/glib-2.0/glib-2.0-2.27.3/g_once_init_enter.patch new file +13 -0
new file mode 100644
index 0000000..1c4ce50
@@ -0,0 +1,13 @@
+Index: glib-2.27.3/glib/gthread.h
+===================================================================
+--- glib-2.27.3.orig/glib/gthread.h
++++ glib-2.27.3/glib/gthread.h
+@@ -344,7 +344,7 @@ void                    g_once_init_leav
+ G_INLINE_FUNC gboolean
+ g_once_init_enter (volatile gsize *value_location)
+ {
+-  if G_LIKELY ((gpointer) g_atomic_pointer_get (value_location) != NULL)
++  if G_LIKELY ((gpointer) g_atomic_pointer_get ((volatile gpointer *)value_location) != NULL)
+     return FALSE;
+   else
+     return g_once_init_enter_impl (value_location);
meta/recipes-core/glib-2.0/glib-2.0_2.27.3.bb +4 -2
index 30e208a..a9ff3ec 100644
@@ -1,10 +1,12 @@
 require glib.inc
 
-PR = "r0"
+PR = "r1"
 
 SRC_URI = "http://ftp.gnome.org/pub/GNOME/sources/glib/2.27/glib-${PV}.tar.bz2 \
            file://configure-libtool.patch \
-           file://60_wait-longer-for-threads-to-die.patch"
+           file://60_wait-longer-for-threads-to-die.patch \
+           file://g_once_init_enter.patch \
+          "
 
 SRC_URI[md5sum] = "d3e976ff92b55b6064a0eb3110f36158"
 SRC_URI[sha256sum] = "c44177b635e88639361eb1daf7aaa33315a00aaf46db5accf2f11920c7ff1919"
Signature · 1 line
1.7.1
#4 lore raw

PATCH v2 4/4 kernelshark: add ftrace gui viewer

In reply to Darren Hart

The trace-cmd source includes a graphical trace viewer, but we don't want to make the trace-cmd recipe depend on gtk+. This patch adds a second recipe in the meta/recipes-kernel/trace-cmd directory which uses the trace-cmd SRCREV and RDEPENDS on trace-cmd to ensure compatibility.

---
 meta/recipes-kernel/trace-cmd/kernelshark_git.bb |   22 ++++++++++++++++++++++
 1 files changed, 22 insertions(+), 0 deletions(-)
 create mode 100644 meta/recipes-kernel/trace-cmd/kernelshark_git.bb
meta/recipes-kernel/trace-cmd/kernelshark_git.bb new file +22 -0
new file mode 100644
index 0000000..781f983
@@ -0,0 +1,22 @@
+DESCRIPTION = "Graphical trace viewer for Ftrace"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe \
+                    file://kernelshark.c;beginline=6;endline=8;md5=2c22c965a649ddd7973d7913c5634a5e"
+
+PR = r0
+PV = "1.0.4+git${SRCPV}"
+
+DEPENDS = "gtk+"
+RDEPENDS = "trace-cmd"
+
+inherit pkgconfig
+
+SRC_URI = "git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/trace-cmd.git;protocol=git"
+SRCREV = "${SRCREV_pn-trace-cmd}"
+S = "${WORKDIR}/git"
+
+EXTRA_OEMAKE = "'CC=${CC}' 'AR=${AR}' 'prefix=${prefix}' gui"
+
+do_install() {
+	oe_runmake CC="${CC}" AR="${AR}" prefix="${prefix}" DESTDIR="${D}" install_gui
+}
Signature · 1 line
1.7.1
#5 lore raw

Re: [PATCH 4/4] kernelshark: add ftrace gui viewer

Quoted 6 lines · Darren Hart

trace-cmd/kernelshark_git.bb b/meta/recipes-kernel/trace-cmd/kernelshark_git.bb new file mode 100644
index 0000000..781f983

meta/recipes-kernel/trace-cmd/kernelshark_git.bb line 10

Quoted 10 lines
meta/recipes-kernel/trace-cmd/kernelshark_git.bb new file +10 -0
@@ -0,0 +1,22 @@
+DESCRIPTION = "Graphical trace viewer for Ftrace"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe \
+                    file://kernelshark.c;beginline=6;endline=8;md5=2c22c965a649ddd7973d7913c5634a5e"
+
+PR = r0
+PV = "1.0.4+git${SRCPV}"
+
+DEPENDS = "gtk+"
+RDEPENDS = "trace-cmd"

This should be RDEPENDS_${PN} I suspect. We need to be clear about which package has the runtime dependency.

meta/recipes-kernel/trace-cmd/kernelshark_git.bb line 15

Quoted 4 lines
meta/recipes-kernel/trace-cmd/kernelshark_git.bb new file +4 -0
+inherit pkgconfig
+
+SRC_URI = "git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/trace-cmd.git;protocol=git"
+SRCREV = "${SRCREV_pn-trace-cmd}"

I'd suggest declaring that alongside the trace-cmd SRCREV definition, something like:

TRACECMDREV ?= "xxx"
SRCREV_pn-trace-cmd ?= "${TRACECMDREV}"
SRCREV_pn-kernelshark ?= "${TRACECMDREV}"

meta/recipes-kernel/trace-cmd/kernelshark_git.bb line 22

Quoted 7 lines
meta/recipes-kernel/trace-cmd/kernelshark_git.bb new file +7 -0
+S = "${WORKDIR}/git"
+
+EXTRA_OEMAKE = "'CC=${CC}' 'AR=${AR}' 'prefix=${prefix}' gui"
+
+do_install() {
+	oe_runmake CC="${CC}" AR="${AR}" prefix="${prefix}" DESTDIR="${D}" install_gui
+}

Cheers,

Richard

#9 lore raw

Re: [PATCH 4/4] kernelshark: add ftrace gui viewer

In reply to Darren Hart
Quoted 19 lines · Darren Hart

The trace-cmd source includes a graphical trace viewer, but we don't want to make the trace-cmd recipe depend on gtk+. This patch adds a second recipe in the meta/recipes-kernel/trace-cmd directory which uses the trace-cmd SRCREV and RDEPENDS on trace-cmd to ensure compatibility.

---
  meta/recipes-kernel/trace-cmd/kernelshark_git.bb |   22 ++++++++++++++++++++++
  1 files changed, 22 insertions(+), 0 deletions(-)

create mode 100644 meta/recipes-kernel/trace-cmd/kernelshark_git.bb

meta/recipes-kernel/trace-cmd/kernelshark_git.bb new file +0 -0
new file mode 100644
index 0000000..781f983

meta/recipes-kernel/trace-cmd/kernelshark_git.bb line 4

Quoted 4 lines
meta/recipes-kernel/trace-cmd/kernelshark_git.bb new file +4 -0
@@ -0,0 +1,22 @@
+DESCRIPTION = "Graphical trace viewer for Ftrace"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe \
+                    file://kernelshark.c;beginline=6;endline=8;md5=2c22c965a649ddd7973d7913c5634a5e"

This should have been kernel-shark.c. A failed thermal cleaning of the previous build resulted in my not catching it. I have fixed this in my contrib branch, but won't resend the patch series unless requested.

Signature · 1 line
Darren Hart
#6 lore raw

Re: [PATCH 4/4] kernelshark: add ftrace gui viewer

In reply to Richard Purdie
Quoted 12 lines · Richard Purdie
Quoted 11 lines · Darren Hart

trace-cmd/kernelshark_git.bb b/meta/recipes-kernel/trace-cmd/kernelshark_git.bb new file mode 100644
index 0000000..781f983

meta/recipes-kernel/trace-cmd/kernelshark_git.bb new file +5 -0
@@ -0,0 +1,22 @@
+DESCRIPTION = "Graphical trace viewer for Ftrace"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe \
+                    file://kernelshark.c;beginline=6;endline=8;md5=2c22c965a649ddd7973d7913c5634a5e"
+
Quoted 8 lines

meta/recipes-kernel/trace-cmd/kernelshark_git.bb line 10

Quoted 5 lines
meta/recipes-kernel/trace-cmd/kernelshark_git.bb new file +5 -0
+PR = r0
+PV = "1.0.4+git${SRCPV}"
+
+DEPENDS = "gtk+"
+RDEPENDS = "trace-cmd"

This should be RDEPENDS_${PN} I suspect. We need to be clear about which package has the runtime dependency.

Hi Richard, thanks for the review.

I'm missing something about how these variables are used I guess. I had thought that being assigned inside the kernelshark_git.bb recipe would have been sufficient to make it clear it applied to kernelshark. How does this bleed over into other recipes?

Quoted 9 lines

meta/recipes-kernel/trace-cmd/kernelshark_git.bb line 15

Quoted 5 lines
meta/recipes-kernel/trace-cmd/kernelshark_git.bb new file +4 -0
+inherit pkgconfig
+
+SRC_URI = "git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/trace-cmd.git;protocol=git"
+SRCREV = "${SRCREV_pn-trace-cmd}"

I'd suggest declaring that alongside the trace-cmd SRCREV definition, something like:

Quoted 3 lines

TRACECMDREV ?= "xxx"
SRCREV_pn-trace-cmd ?= "${TRACECMDREV}"
SRCREV_pn-kernelshark ?= "${TRACECMDREV}"

If I do this, I think a trace-cmd.inc would be the right way to go. Having kernelshark specific bits in the base trace-cmd recipe seems backwards to me: kernelshark builds on trace-cmd, so it makes sense to me for the extension to made in the kernelshark recipe.

Signature · 2 lines
Darren Hart
Yocto Linux Kernel
#7 lore raw

Re: [PATCH 4/4] kernelshark: add ftrace gui viewer

Op 3 jan 2011, om 20:23 heeft Darren Hart het volgende geschreven:

Quoted 9 lines · Richard Purdie
Quoted 7 lines · Darren Hart

meta/recipes-kernel/trace-cmd/kernelshark_git.bb line 10

Quoted 3 lines
meta/recipes-kernel/trace-cmd/kernelshark_git.bb new file +2 -0
+DEPENDS = "gtk+"
+RDEPENDS = "trace-cmd"

This should be RDEPENDS_${PN} I suspect. We need to be clear about which package has the runtime dependency.

Quoted 3 lines

Hi Richard, thanks for the review.

I'm missing something about how these variables are used I guess. I had thought that being assigned inside the kernelshark_git.bb recipe would have been sufficient to make it clear it applied to kernelshark. How does this bleed over into other recipes?

It bleeds over into the -dev, -dbg and any other packages the recipes generates.

regards,

Koen

#8 lore raw

Re: [PATCH 4/4] kernelshark: add ftrace gui viewer

In reply to Darren Hart
Quoted 22 lines · Darren Hart
Quoted 12 lines · Richard Purdie
Quoted 11 lines · Darren Hart

trace-cmd/kernelshark_git.bb b/meta/recipes-kernel/trace-cmd/kernelshark_git.bb new file mode 100644
index 0000000..781f983

meta/recipes-kernel/trace-cmd/kernelshark_git.bb new file +5 -0
@@ -0,0 +1,22 @@
+DESCRIPTION = "Graphical trace viewer for Ftrace"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe \
+                    file://kernelshark.c;beginline=6;endline=8;md5=2c22c965a649ddd7973d7913c5634a5e"
+
Quoted 8 lines

meta/recipes-kernel/trace-cmd/kernelshark_git.bb line 10

Quoted 5 lines
meta/recipes-kernel/trace-cmd/kernelshark_git.bb new file +5 -0
+PR = r0
+PV = "1.0.4+git${SRCPV}"
+
+DEPENDS = "gtk+"
+RDEPENDS = "trace-cmd"

This should be RDEPENDS_${PN} I suspect. We need to be clear about which package has the runtime dependency.

Quoted 6 lines

Hi Richard, thanks for the review.

I'm missing something about how these variables are used I guess. I had thought that being assigned inside the kernelshark_git.bb recipe would have been sufficient to make it clear it applied to kernelshark. How does this bleed over into other recipes?

Other packages (.rpm/ipk), not recipes.

RDEPENDS = "XXX" means apply this RDEPENDS to every package the kernelshark recipe generates. This as standard would be:

kernelshark
kernelshark-dbg
kernelshark-dev
kernelshark-doc

and it clearly doesn't apply for the last three, only the first (in general principle, the kernelshark recipe probably doesn't generate a -doc at all but you get the idea).

Quoted 8 lines
Quoted 8 lines

meta/recipes-kernel/trace-cmd/kernelshark_git.bb line 15

Quoted 4 lines
meta/recipes-kernel/trace-cmd/kernelshark_git.bb new file +4 -0
+inherit pkgconfig
+
+SRC_URI = "git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/trace-cmd.git;protocol=git"
+SRCREV = "${SRCREV_pn-trace-cmd}"

I'd suggest declaring that alongside the trace-cmd SRCREV definition, something like:

Quoted 8 lines
Quoted 3 lines

TRACECMDREV ?= "xxx"
SRCREV_pn-trace-cmd ?= "${TRACECMDREV}"
SRCREV_pn-kernelshark ?= "${TRACECMDREV}"

If I do this, I think a trace-cmd.inc would be the right way to go. Having kernelshark specific bits in the base trace-cmd recipe seems backwards to me: kernelshark builds on trace-cmd, so it makes sense to me for the extension to made in the kernelshark recipe.

I meant in the common .inc file in the distro directiory where all the other SRCREVs are set.

Cheers,

Richard