This is the mail archive of the
systemtap@sourceware.org
mailing list for the systemtap project.
another Bug
- From: James Dickens <jamesd dot wi at gmail dot com>
- To: systemtap at sources dot redhat dot com
- Date: Mon, 12 Sep 2005 14:06:09 -0500
- Subject: another Bug
- Domainkey-signature: a=rsa-sha1; q=dns; c=nofws; s=beta; d=gmail.com; h=received:message-id:date:from:reply-to:to:subject:mime-version:content-type:content-transfer-encoding:content-disposition; b=Vl3P/dt3JOGZqMqJNTVoDQNrFQDRyECYzNSjMYuALRUYxf4u3PdkIaA/fiWLFQTpN/ExBn8xq4B5BNOfwOdzOvXxE+7bK0vG5j6CsJ0AtI7fn+drsSzeU7KeXmQItoAedLwlQsyV+Wg4C+XgKyqPLFxaacJCXluoXjs28KQY9CQ=
- Reply-to: jamesd dot wi at gmail dot com
I decided to look a activating smaller groups of probes, so far in my
tests nfs and ext have both failed in the same way.
the script i'm using
probe module("ext3").function("*")
{
if (target() == pid())
i++;
}
probe timer.jiffies(100) { exit(); }
here is the errors from ext
/tmp/stap2llCXg/stap_29556.c: In function âsystemtap_module_initâ:
/tmp/stap2llCXg/stap_29556.c:126672: warning: integer constant is too
large for long type
/tmp/stap2llCXg/stap_29556.c:127008: warning: integer constant is too
large for long type
/tmp/stap2llCXg/stap_29556.c:130512: warning: integer constant is too
large for long type
/tmp/stap2llCXg/stap_29556.c:132648: warning: integer constant is too
large for long type
/tmp/stap2llCXg/stap_29556.c:132808: warning: integer constant is too
large for long type
/tmp/stap2llCXg/stap_29556.c:133776: warning: integer constant is too
large for long type
here are the functions that are causing the error register 203 is
good... 204 and after are bad, looks like sometype of overflow error.
/* register 203 */
/* module("ext3").function("ext3_alloc_block@fs/ext3/inode.c:238") */
dwarf_kprobe_203.addr = (void *) 0xd28aff00;
rc = register_kprobe (&dwarf_kprobe_203);
if (unlikely (rc)) {
atomic_set (&session_state, STAP_SESSION_ERROR);
goto unregister_202;
}
/* register 204 */
/* module("ext3").function("ext3_block_to_path@fs/ext3/inode.c:298") */
dwarf_kprobe_204.addr = (void *) 0xbfbc52d80000004f;
rc = register_kprobe (&dwarf_kprobe_204);
if (unlikely (rc)) {
atomic_set (&session_state, STAP_SESSION_ERROR);
goto unregister_203;
}
/* register 205 */
/* module("ext3").function("ext3_get_branch@fs/ext3/inode.c:366") */
dwarf_kprobe_205.addr = (void *) 0xd28b0027;
rc = register_kprobe (&dwarf_kprobe_205);
if (unlikely (rc)) {
atomic_set (&session_state, STAP_SESSION_ERROR);
goto unregister_204;
}
if anyone is wondering why i would want to do such a thing, here is
one example.
if I want to make module blah faster, so i want to see what function
gets called the most, and which takes the most time. the script above
doesn't do that but could be expanded to complete the required tasks.
James Dickens