This is the mail archive of the
mailing list for the systemtap project.
Re: [PATCH]kprobe booster for IA64
- From: Masami Hiramatsu <hiramatu at sdl dot hitachi dot co dot jp>
- To: Keshavamurthy Anil S <anil dot s dot keshavamurthy at intel dot com>
- Cc: Ananth N Mavinakayanahalli <ananth at in dot ibm dot com>, SystemTAP <systemtap at sources dot redhat dot com>, Yumiko Sugita <sugita at sdl dot hitachi dot co dot jp>, Satoshi Oshima <soshima at redhat dot com>, Hideo Aoki <haoki at redhat dot com>, Prasanna S Panchamukhi <prasanna at in dot ibm dot com>, Jim Keniston <jkenisto at us dot ibm dot com>
- Date: Wed, 05 Jul 2006 07:56:07 +0900
- Subject: Re: [PATCH]kprobe booster for IA64
- References: <4485223C.email@example.com> <20060628190541.A13874@unix-os.sc.intel.com>
Keshavamurthy Anil S wrote:
> pre_preempt_count will always be one here, since
> So currently you might be preparing for boosting even for
> preemptable code path. Can you verify this.
Thank you for the advice!
I hadn't realized it. Now, I verified it and had some ideas.
The problem comes from reusing the insn buffer, because
there might be some processes sleeping on the buffer.
So, I think we can avoid this problem as below:
First, we disable a kprobe (remove the break). Next,
wait until all preempted processes are waken up. And Last,
we release its insn buffer to reuse. Then, it will be safe.
Because there is no process slept on the buffer.
For this purpose, I'd like to use stop_machine_run().
However we can't execute it each releasing time because
it is very costly.
I think we can resolve it by using garbage collector.
I describe my idea below:
The kprobe frees its insn slot(buffer) after disable it.
Thus, when an insn slot is freed, it will be just marked as
a garbage. And when get_insn_slot() can't find any free slot,
it will call the garbage collector to try to refill free slots.
And the garbage collector uses stop_machine_run() to ensure safety.
What do you think about this idea?
2nd Research Dept.
Hitachi, Ltd., Systems Development Laboratory
(New)E-mail: firstname.lastname@example.org (This is available from 8th, Jul)