Re: [PATCH] LTT for SH4

"Giuseppe Cavallaro" <[email protected]>
Newsgroups gmane.linux.kernel.tracing
Message-ID <[email protected]>
Hi Mathieu,

On 09/07/07, Mathieu Desnoyers <[email protected]> wrote:
>
> * Giuseppe Cavallaro ([email protected]) wrote:
> > The patch in attachment adds (in the lttng 0.9.10) the ltt_trace_generic
> and
> > ltt_register_generic syscalls for SH4.
>
> Great! If you can provide a patch for ltt-usertrace too, that would be


In attachment both the patch for ltt-usertrace and the xml file for the
ltt-control.

Ciao
  Giuseppe

_______________________________________________
Ltt-dev mailing list
[email protected]
http://listserv.shafik.org/mailman/listinfo/ltt-dev
ltt-usertrace-sh4.patch (application/octet-stream, 1.8 KB)
This patch adds the SH4 architecture in the ltt user trace tool.

Signed-off by Giuseppe Cavallaro <[email protected]>

--- ltt-usertrace-0.32/ltt/ltt-usertrace.h.orig	2007-06-07 09:22:42.000000000 +0200
+++ ltt-usertrace-0.32/ltt/ltt-usertrace.h	2007-06-07 09:23:24.000000000 +0200
@@ -39,6 +39,8 @@ extern "C" {
 #include <ltt/kernelutils-i386.h>
 #elif defined(__arm__)
 #include <ltt/kernelutils-arm.h>
+#elif defined(__SH4__)
+#include <ltt/kernelutils-sh.h>
 #else
 #error "Unsupported architecture"
 #endif
--- /dev/null	2007-05-31 07:53:02.048426799 +0200
+++ ltt-usertrace-0.32/ltt/kernelutils-sh.h	2007-06-07 09:36:53.000000000 +0200
@@ -0,0 +1,58 @@
+/*****************************************************************************
+ * kernelutils-sh.h
+ * 
+ * Giuseppe Cavallaro <[email protected]>
+ */
+
+#ifndef _KERNELUTILS_SH4_H
+#define _KERNELUTILS_SH4_H
+
+#include <time.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef struct { volatile int counter; } atomic_t;
+
+#define atomic_read(v)	((v)->counter)
+
+static inline int atomic_add_return(int i, atomic_t *v)
+{
+	unsigned long temp, flags;
+
+	temp = *(long *)v,
+	temp += i;
+	*(long *)v = temp;
+
+	return temp;
+}
+
+#define atomic_add(i, v)	(void) atomic_add_return(i, v)
+#define atomic_inc(v)		(void) atomic_add_return(1, v)
+
+static inline unsigned long cmpxchg(volatile void *ptr,
+				    unsigned long old,
+				    unsigned long new)
+{
+	unsigned long flags, prev;
+	volatile unsigned long *p = ptr;
+
+	if ((prev = *p) == old)
+		*p = new;
+	return(prev);
+}
+
+static inline unsigned long long get_cycles(void)
+{
+	struct timespec tp;
+	clock_gettime(CLOCK_MONOTONIC, &tp);	
+	return tp.tv_sec * 1000000000 + tp.tv_nsec;
+}
+
+
+#ifdef __cplusplus
+} /* end of extern "C" */
+#endif
+
+#endif
ltt-control-kernel_arch_sh.xml (text/xml, 13.9 KB)
<?xml version="1.0"?>
<facility name="kernel_arch" arch="sh">
  <description>The kernel facility has events related to kernel execution status for the SH4 architecture.</description>
  <type name="syscall_name">
    <enum>
			<label name="restart_syscall" value="0"/>
			<label name="exit" value="1"/>
			<label name="fork" value="2"/>
			<label name="read" value="3"/>
			<label name="write" value="4"/>
			<label name="open" value="5"/>
			<label name="close" value="6"/>
			<label name="waitpid" value="7"/>
			<label name="creat" value="8"/>
			<label name="link" value="9"/>
			<label name="unlink" value="10"/>
			<label name="execve" value="11"/>
			<label name="chdir" value="12"/>
			<label name="time" value="13"/>
			<label name="mknod" value="14"/>
			<label name="chmod" value="15"/>
			<label name="lchown" value="16"/>
			<label name="break" value="17"/>
			<label name="oldstat" value="18"/>
			<label name="lseek" value="19"/>
			<label name="getpid" value="20"/>
			<label name="mount" value="21"/>
			<label name="umount" value="22"/>
			<label name="setuid" value="23"/>
			<label name="getuid" value="24"/>
			<label name="stime" value="25"/>
			<label name="ptrace" value="26"/>
			<label name="alarm" value="27"/>
			<label name="oldfstat" value="28"/>
			<label name="pause" value="29"/>
			<label name="utime" value="30"/>
			<label name="stty" value="31"/>
			<label name="gtty" value="32"/>
			<label name="access" value="33"/>
			<label name="nice" value="34"/>
			<label name="ftime" value="35"/>
			<label name="sync" value="36"/>
			<label name="kill" value="37"/>
			<label name="rename" value="38"/>
			<label name="mkdir" value="39"/>
			<label name="rmdir" value="40"/>
			<label name="dup" value="41"/>
			<label name="pipe" value="42"/>
			<label name="times" value="43"/>
			<label name="prof" value="44"/>
			<label name="brk" value="45"/>
			<label name="setgid" value="46"/>
			<label name="getgid" value="47"/>
			<label name="signal" value="48"/>
			<label name="geteuid" value="49"/>
			<label name="getegid" value="50"/>
			<label name="acct" value="51"/>
			<label name="umount2" value="52"/>
			<label name="lock" value="53"/>
			<label name="ioctl" value="54"/>
			<label name="fcntl" value="55"/>
			<label name="mpx" value="56"/>
			<label name="setpgid" value="57"/>
			<label name="ulimit" value="58"/>
			<label name="oldolduname" value="59"/>
			<label name="umask" value="60"/>
			<label name="chroot" value="61"/>
			<label name="ustat" value="62"/>
			<label name="dup2" value="63"/>
			<label name="getppid" value="64"/>
			<label name="getpgrp" value="65"/>
			<label name="setsid" value="66"/>
			<label name="sigaction" value="67"/>
			<label name="sgetmask" value="68"/>
			<label name="ssetmask" value="69"/>
			<label name="setreuid" value="70"/>
			<label name="setregid" value="71"/>
			<label name="sigsuspend" value="72"/>
			<label name="sigpending" value="73"/>
			<label name="sethostname" value="74"/>
			<label name="setrlimit" value="75"/>
			<label name="getrlimit" value="76"/>
			<label name="getrusage" value="77"/>
			<label name="gettimeofday" value="78"/>
			<label name="settimeofday" value="79"/>
			<label name="getgroups" value="80"/>
			<label name="setgroups" value="81"/>
			<label name="select" value="82"/>
			<label name="symlink" value="83"/>
			<label name="oldlstat" value="84"/>
			<label name="readlink" value="85"/>
			<label name="uselib" value="86"/>
			<label name="swapon" value="87"/>
			<label name="reboot" value="88"/>
			<label name="readdir" value="89"/>
			<label name="mmap" value="90"/>
			<label name="munmap" value="91"/>
			<label name="truncate" value="92"/>
			<label name="ftruncate" value="93"/>
			<label name="fchmod" value="94"/>
			<label name="fchown" value="95"/>
			<label name="getpriority" value="96"/>
			<label name="setpriority" value="97"/>
			<label name="profil" value="98"/>
			<label name="statfs" value="99"/>
			<label name="fstatfs" value="100"/>
			<label name="ioperm" value="101"/>
			<label name="socketcall" value="102"/>
			<label name="syslog" value="103"/>
			<label name="setitimer" value="104"/>
			<label name="getitimer" value="105"/>
			<label name="stat" value="106"/>
			<label name="lstat" value="107"/>
			<label name="fstat" value="108"/>
			<label name="olduname" value="109"/>
			<label name="iopl" value="110"/>
			<label name="vhangup" value="111"/>
			<label name="idle" value="112"/>
			<label name="vm86old" value="113"/>
			<label name="wait4" value="114"/>
			<label name="swapoff" value="115"/>
			<label name="sysinfo" value="116"/>
			<label name="ipc" value="117"/>
			<label name="fsync" value="118"/>
			<label name="sigreturn" value="119"/>
			<label name="clone" value="120"/>
			<label name="setdomainname" value="121"/>
			<label name="uname" value="122"/>
			<label name="cacheflush" value="123"/>
			<label name="adjtimex" value="124"/>
			<label name="mprotect" value="125"/>
			<label name="sigprocmask" value="126"/>
			<label name="create_module" value="127"/>
			<label name="init_module" value="128"/>
			<label name="delete_module" value="129"/>
			<label name="get_kernel_syms" value="130"/>
			<label name="quotactl" value="131"/>
			<label name="getpgid" value="132"/>
			<label name="fchdir" value="133"/>
			<label name="bdflush" value="134"/>
			<label name="sysfs" value="135"/>
			<label name="personality" value="136"/>
			<label name="afs_syscall" value="137"/>
			<label name="setfsuid" value="138"/>
			<label name="setfsgid" value="139"/>
			<label name="_llseek" value="140"/>
			<label name="getdents" value="141"/>
			<label name="_newselect" value="142"/>
			<label name="flock" value="143"/>
			<label name="msync" value="144"/>
			<label name="readv" value="145"/>
			<label name="writev" value="146"/>
			<label name="getsid" value="147"/>
			<label name="fdatasync" value="148"/>
			<label name="_sysctl" value="149"/>
			<label name="mlock" value="150"/>
			<label name="munlock" value="151"/>
			<label name="mlockall" value="152"/>
			<label name="munlockall" value="153"/>
			<label name="sched_setparam" value="154"/>
			<label name="sched_getparam" value="155"/>
			<label name="sched_setscheduler" value="156"/>
			<label name="sched_getscheduler" value="157"/>
			<label name="sched_yield" value="158"/>
			<label name="sched_get_priority_max" value="159"/>
			<label name="sched_get_priority_min" value="160"/>
			<label name="sched_rr_get_interval" value="161"/>
			<label name="nanosleep" value="162"/>
			<label name="mremap" value="163"/>
			<label name="setresuid" value="164"/>
			<label name="getresuid" value="165"/>
			<label name="vm86" value="166"/>
			<label name="query_module" value="167"/>
			<label name="poll" value="168"/>
			<label name="nfsservctl" value="169"/>
			<label name="setresgid" value="170"/>
			<label name="getresgid" value="171"/>
			<label name="prctl              172"/>
			<label name="rt_sigreturn" value="173"/>
			<label name="rt_sigaction" value="174"/>
			<label name="rt_sigprocmask" value="175"/>
			<label name="rt_sigpending" value="176"/>
			<label name="rt_sigtimedwait" value="177"/>
			<label name="rt_sigqueueinfo" value="178"/>
			<label name="rt_sigsuspend" value="179"/>
			<label name="pread64" value="180"/>
			<label name="pwrite64" value="181"/>
			<label name="chown" value="182"/>
			<label name="getcwd" value="183"/>
			<label name="capget" value="184"/>
			<label name="capset" value="185"/>
			<label name="sigaltstack" value="186"/>
			<label name="sendfile" value="187"/>
			<label name="streams1" value="188"/>
			<label name="streams2" value="189"/>
			<label name="vfork" value="190"/>
			<label name="ugetrlimit" value="191"/>
			<label name="mmap2" value="192"/>
			<label name="truncate64" value="193"/>
			<label name="ftruncate64" value="194"/>
			<label name="stat64" value="195"/>
			<label name="lstat64" value="196"/>
			<label name="fstat64" value="197"/>
			<label name="lchown32" value="198"/>
			<label name="getuid32" value="199"/>
			<label name="getgid32" value="200"/>
			<label name="geteuid32" value="201"/>
			<label name="getegid32" value="202"/>
			<label name="setreuid32" value="203"/>
			<label name="setregid32" value="204"/>
			<label name="getgroups32" value="205"/>
			<label name="setgroups32" value="206"/>
			<label name="fchown32" value="207"/>
			<label name="setresuid32" value="208"/>
			<label name="getresuid32" value="209"/>
			<label name="setresgid32" value="210"/>
			<label name="getresgid32" value="211"/>
			<label name="chown32" value="212"/>
			<label name="setuid32" value="213"/>
			<label name="setgid32" value="214"/>
			<label name="setfsuid32" value="215"/>
			<label name="setfsgid32" value="216"/>
			<label name="pivot_root" value="217"/>
			<label name="mincore" value="218"/>
			<label name="madvise" value="219"/>
			<label name="getdents64" value="220"/>
			<label name="fcntl64" value="221"/>
			<label name="gettid" value="224"/>
			<label name="setxattr" value="226"/>
			<label name="lsetxattr" value="227"/>
			<label name="fsetxattr" value="228"/>
			<label name="getxattr" value="229"/>
			<label name="lgetxattr" value="230"/>
			<label name="fgetxattr" value="231"/>
			<label name="listxattr" value="232"/>
			<label name="llistxattr" value="233"/>
			<label name="flistxattr" value="234"/>
			<label name="removexattr" value="235"/>
			<label name="lremovexattr" value="236"/>
			<label name="fremovexattr" value="237"/>
			<label name="tkill" value="238"/>
			<label name="sendfile64" value="239"/>
			<label name="futex" value="240"/>
			<label name="sched_setaffinity" value="241"/>
			<label name="sched_getaffinity" value="242"/>
			<label name="set_thread_area" value="243"/>
			<label name="get_thread_area" value="244"/>
			<label name="io_setup" value="245"/>
			<label name="io_destroy" value="246"/>
			<label name="io_getevents" value="247"/>
			<label name="io_submit" value="248"/>
			<label name="io_cancel" value="249"/>
			<label name="fadvise64" value="250"/>
			<label name="exit_group" value="252"/>
			<label name="lookup_dcookie" value="253"/>
			<label name="epoll_create" value="254"/>
			<label name="epoll_ctl" value="255"/>
			<label name="epoll_wait" value="256"/>
			<label name="remap_file_pages" value="257"/>
			<label name="set_tid_address" value="258"/>
			<label name="timer_create" value="259"/>
			<label name="timer_settime" value="260"/>
			<label name="timer_gettime" value="261"/>
			<label name="timer_getoverrun" value="262"/>
			<label name="timer_delete" value="263"/>
			<label name="clock_settime" value="264"/>
			<label name="clock_gettime" value="265"/>
			<label name="clock_getres" value="266"/>
			<label name="clock_nanosleep" value="267"/>
			<label name="statfs64" value="268"/>
			<label name="fstatfs64" value="269"/>
			<label name="tgkill" value="270"/>
			<label name="utimes" value="271"/>
			<label name="fadvise64_64" value="272"/>
			<label name="vserver" value="273"/>
			<label name="mbind" value="274"/>
			<label name="get_mempolicy" value="275"/>
			<label name="set_mempolicy" value="276"/>
			<label name="mq_open" value="277"/>
			<label name="mq_unlink" value="278"/>
			<label name="mq_timedsend" value="279"/>
			<label name="mq_timedreceive" value="280"/>
			<label name="mq_notify" value="281"/>
			<label name="mq_getsetattr" value="282"/>
			<label name="kexec_load" value="283"/>
			<label name="waitid" value="284"/>
			<label name="add_key" value="285"/>
			<label name="request_key" value="286"/>
			<label name="keyctl" value="287"/>
			<label name="ioprio_set" value="288"/>
			<label name="ioprio_get" value="289"/>
			<label name="inotify_init" value="290"/>
			<label name="inotify_add_watch" value="291"/>
			<label name="inotify_rm_watch" value="292"/>
			<label name="migrate_pages" value="293"/>
			<label name="openat" value="294"/>
			<label name="mkdirat" value="295"/>
			<label name="mknodat" value="296"/>
			<label name="fchownat" value="297"/>
			<label name="futimesat" value="298"/>
			<label name="fstatat64" value="299"/>
			<label name="unlinkat" value="300"/>
			<label name="renameat" value="301"/>
			<label name="linkat" value="302"/>
			<label name="symlinkat" value="303"/>
			<label name="readlinkat" value="304"/>
			<label name="fchmodat" value="305"/>
			<label name="faccessat" value="305"/>
			<label name="pselect6" value="307"/>
			<label name="ppoll" value="308"/>
			<label name="unshare" value="309"/>
			<label name="set_robust_list" value="310"/>
			<label name="get_robust_list" value="311"/>
			<label name="splice" value="312"/>
			<label name="sync_file_range" value="313"/>
			<label name="tee" value="314"/>
			<label name="vmsplice" value="315"/>
			<label name="ltt_trace_generic" value="316"/>
			<label name="ltt_register_generic" value="317"/>
    </enum>
  </type>

  <event name="trap_entry">
    <description>Entry in a trap</description>
    <field name="trap_id"> <description>Trap number</description> <long/> </field>
    <field name="address"> <description>Address where trap occured</description> <long/> </field>
  </event>

  <event name="trap_exit">
    <description>Exit from a trap</description>
  </event>

  <event name="syscall_entry">
    <description>System call entry</description>
    <field name="syscall_id"> <description>Syscall entry number in entry.S</description> <typeref name="syscall_name"/> </field>
    <field name="address"> <description>Address from which call was made</description> <long/> </field>
  </event>

  <event name="syscall_exit">
    <description>System call exit</description>
  </event>

  <event name="ipc_call">
    <description>IPC call</description>
    <field name="call_number"> <description>Number of IPC call</description> <uint/> </field>
    <field name="first"> <description>First argument</description> <int/> </field>
  </event>

  <event name="kthread_create">
    <description>Just created a new kernel thread</description>
    <field name="pid"> <description>PID of the kernel thread</description> <long/> </field>
    <field name="function"> <description>Function called</description> <pointer/> </field>
  </event>

</facility>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.