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>