From mboxrd@z Thu Jan 1 00:00:00 1970 From: fche@redhat.com (Frank Ch. Eigler) Date: Wed, 23 May 2012 07:48:16 -0400 Subject: Communication between kernel and kernel module In-Reply-To: (drewd77.gm@gmail.com's message of "Tue, 22 May 2012 11:18:32 -0700") References: Message-ID: To: kernelnewbies@lists.kernelnewbies.org List-Id: kernelnewbies.lists.kernelnewbies.org "drewd77.gm" writes: > Is there any way to call a function defined in a kernel module from within the > kernel proper? One needs a proper hook mechanism such as kprobes or tracepoints. > I'm trying to keep track of when and for how long a process is being executed > on the processor, i.e. I need to know when context switches occur. > > There is a function called context_switch() in?linux/kernel/sched/core.c that > is called whenever a context switch happens. I would like to call a function in > a kernel module I've written from within context_switch() and pass some data to > it. The sched_switch tracepoint is probably the best spot for this. A systemtap script that listens for these events and simply traces them to stdout looks like: probe scheduler.ctxswitch { println(cpu(), ":", prev_tid, "->", next_tid) } - FChE