packages: add sysprof tool
Add sysprof - preformance profiler for Linux - to the development tools. Patches for mips/arm are from openembedded code. sysprof-cli <outfile> get required events/stack frames. Next outfile can be loaded/displayed on PC using sysprof. Tool using: - PERF events - /proc/kallsyms for kernel symbols You should compile kernel with profiling enabled, debug information, symbol table information. Signed-off-by: Janusz Dziedzic <janusz.dziedzic@tieto.com> Signed-off-by: Gabor Juhos <juhosg@openwrt.org> git-svn-id: svn://svn.openwrt.org/openwrt/packages@38466 3c298f89-4303-0410-b956-a3cf2f4a3e73
This commit is contained in:
22
devel/sysprof/patches/define-NT_GNU_BUILD_ID.patch
Normal file
22
devel/sysprof/patches/define-NT_GNU_BUILD_ID.patch
Normal file
@ -0,0 +1,22 @@
|
||||
On uclibc elf.h does not have GNU extentions but we need this define
|
||||
so we define it locally if its not getting it from elf.h
|
||||
|
||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
|
||||
Upstream-Status: Pending
|
||||
|
||||
Index: git/elfparser.h
|
||||
===================================================================
|
||||
--- git.orig/elfparser.h 2011-07-16 18:57:41.000000000 -0700
|
||||
+++ git/elfparser.h 2011-07-16 20:28:54.733829895 -0700
|
||||
@@ -17,6 +17,10 @@
|
||||
*/
|
||||
#include <glib.h>
|
||||
|
||||
+#ifndef NT_GNU_BUILD_ID
|
||||
+#define NT_GNU_BUILD_ID 3
|
||||
+#endif
|
||||
+
|
||||
typedef struct ElfSym ElfSym;
|
||||
typedef struct ElfParser ElfParser;
|
||||
|
21
devel/sysprof/patches/rmb-arm.patch
Normal file
21
devel/sysprof/patches/rmb-arm.patch
Normal file
@ -0,0 +1,21 @@
|
||||
|
||||
Upstream-Status: Pending
|
||||
|
||||
Index: git/util.h
|
||||
===================================================================
|
||||
--- git.orig/util.h 2010-12-07 22:41:57.156243001 -0600
|
||||
+++ git/util.h 2010-12-07 22:43:47.616243002 -0600
|
||||
@@ -37,4 +37,13 @@
|
||||
#define cpu_relax() asm volatile("" ::: "memory");
|
||||
#endif
|
||||
|
||||
+#ifdef __arm__
|
||||
+/*
|
||||
+ * Use the __kuser_memory_barrier helper in the CPU helper page. See
|
||||
+ * arch/arm/kernel/entry-armv.S in the kernel source for details.
|
||||
+ */
|
||||
+#define rmb() ((void(*)(void))0xffff0fa0)()
|
||||
+#define cpu_relax() asm volatile("":::"memory")
|
||||
+#endif
|
||||
+
|
||||
#endif
|
22
devel/sysprof/patches/rmb-mips.patch
Normal file
22
devel/sysprof/patches/rmb-mips.patch
Normal file
@ -0,0 +1,22 @@
|
||||
Upstream-Status: Pending
|
||||
|
||||
Index: git/util.h
|
||||
===================================================================
|
||||
--- git.orig/util.h 2010-12-08 01:22:44.486243001 -0600
|
||||
+++ git/util.h 2010-12-08 01:23:27.836243001 -0600
|
||||
@@ -37,4 +37,15 @@
|
||||
#define cpu_relax() asm volatile("" ::: "memory");
|
||||
#endif
|
||||
|
||||
+#ifdef __mips__
|
||||
+#define rmb() asm volatile( \
|
||||
+ ".set mips2\n\t" \
|
||||
+ "sync\n\t" \
|
||||
+ ".set mips0" \
|
||||
+ : /* no output */ \
|
||||
+ : /* no input */ \
|
||||
+ : "memory")
|
||||
+#define cpu_relax() asm volatile("" ::: "memory")
|
||||
+#endif
|
||||
+
|
||||
#endif
|
Reference in New Issue
Block a user