This is the mail archive of the
systemtap@sourceware.org
mailing list for the systemtap project.
RE: [Bug translator/1276] support more timer varieties
- From: "Stone, Joshua I" <joshua dot i dot stone at intel dot com>
- To: "Keshavamurthy, Anil S" <anil dot s dot keshavamurthy at intel dot com>
- Cc: <systemtap at sources dot redhat dot com>
- Date: Thu, 8 Dec 2005 13:55:23 -0800
- Subject: RE: [Bug translator/1276] support more timer varieties
Keshavamurthy, Anil S wrote:
> We fixed similar return probe bug in RHEL4-U3 kernel. So, Can
you
> please try the same test on RHEL4-U3 Beta and get back to the
> mailing list.
I updated only the kernel-* rpms - that's all that matters here, right?
I'm now on 2.6.9-24.ELsmp...
I get the same result, only with the line number changed: "Kernel BUG at
kprobes:440". This line 440 is still the same BUG_ON check as I posted
before.
Here is the script I use to trigger it:
global i
probe begin { log("starting probe") }
probe kernel.function("__switch_to").return { ++i }
probe end { printf("ending probe (%d)\n", i) }
I also trimmed it down to a very small C file that still exhibits the
behavior, included below.
Let me know if there's more info I can provide...
Thanks,
Josh
===================================================================
#include <linux/module.h>
#include <linux/kprobes.h>
#ifdef ARCH_SUPPORTS_KRETPROBES
static int
probe_enter (struct kretprobe_instance *probe_instance, struct pt_regs
*regs) {
return 0;
}
//
kernel.function("__switch_to@arch/x86_64/kernel/process.c:433").return
static struct kretprobe probe = {
.kp.addr= (void *) 0xffffffff8010ebea,
.handler = &probe_enter,
.maxactive = 0,
};
#endif /* ARCH_SUPPORTS_KRETPROBES */
int init_module(void) {
#ifdef ARCH_SUPPORTS_KRETPROBES
return register_kretprobe (&probe);
#else
return -1;
#endif
}
void cleanup_module(void) {
#ifdef ARCH_SUPPORTS_KRETPROBES
unregister_kretprobe (&probe);
#endif
}
MODULE_DESCRIPTION("systemtap probe");
MODULE_LICENSE("GPL");