public inbox for systemtap@sourceware.org
 help / color / mirror / Atom feed
* [PATCH -tip v2 0/5] kprobes: batch (un)optimization support
@ 2010-05-18 20:08 Masami Hiramatsu
  2010-05-18 20:29 ` [PATCH -tip v2 1/5] [BUGFIX] kprobes: Fix selftest to clear flags field for reusing probes Masami Hiramatsu
                   ` (4 more replies)
  0 siblings, 5 replies; 8+ messages in thread
From: Masami Hiramatsu @ 2010-05-18 20:08 UTC (permalink / raw)
  To: Ingo Molnar, lkml
  Cc: Ananth N Mavinakayanahalli, Ingo Molnar, Jim Keniston,
	Jason Baron, Mathieu Desnoyers, systemtap, DLE

Hi,

Here is the 2nd version of batch optimizing patch series.

Since current kprobes jump optimization calls stop_machine() for each
probe, it can make a lot latency noise when (un)registering a lot of
probes (~1000) at once. For example, on 4 core Xeon, 256 probes
optimization takes 770us in average (max 3.3ms).
This patch series introduces batch (un)optimization which modifies
code with just one stop_machine(), and it improves optimization time
to 90us in average (max 330us).

- Introduce text_poke_smp_batch() which modifies multiple
  codes with one stop_machine().
- Limit how many probes can be (un)optimized at once.
- Introduce delayed unoptimization for batch processing.

text_poke_smp_batch() also helps Jason's Jump label to reduce
its overhead coming from text_poke_smp().

Changes in v2:
- Add kprobes selftest bugfix patch.
- Add some comments about locks according to Mathieu's comment.
- Allocate working buffers when initializing kprobes, instead of
  using static arraies.
- Merge max optimization limit patch into batch optimizing patch.

Thank you,

---

Masami Hiramatsu (5):
      kprobes: Support delayed unoptimization
      kprobes/x86: Use text_poke_smp_batch
      x86: Introduce text_poke_smp_batch() for batch-code modifying
      [CLEANUP] kprobes: Remove redundant text_mutex lock in optimize
      [BUGFIX] kprobes: Fix selftest to clear flags field for reusing probes


 arch/x86/include/asm/alternative.h |    7 +
 arch/x86/include/asm/kprobes.h     |    4 
 arch/x86/kernel/alternative.c      |   49 +++-
 arch/x86/kernel/kprobes.c          |  114 +++++++++
 include/linux/kprobes.h            |    4 
 kernel/kprobes.c                   |  442 ++++++++++++++++++++++++------------
 kernel/test_kprobes.c              |   12 +
 7 files changed, 464 insertions(+), 168 deletions(-)

-- 
Masami Hiramatsu
e-mail: mhiramat@redhat.com

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2010-05-19 16:56 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-05-18 20:08 [PATCH -tip v2 0/5] kprobes: batch (un)optimization support Masami Hiramatsu
2010-05-18 20:29 ` [PATCH -tip v2 1/5] [BUGFIX] kprobes: Fix selftest to clear flags field for reusing probes Masami Hiramatsu
2010-05-19 16:47   ` Ananth N Mavinakayanahalli
2010-05-19 19:52     ` Masami Hiramatsu
2010-05-19  5:03 ` [PATCH -tip v2 2/5] [CLEANUP] kprobes: Remove redundant text_mutex lock in optimize Masami Hiramatsu
2010-05-19 14:10 ` [PATCH -tip v2 4/5] kprobes/x86: Use text_poke_smp_batch Masami Hiramatsu
2010-05-19 14:10 ` [PATCH -tip v2 3/5] x86: Introduce text_poke_smp_batch() for batch-code modifying Masami Hiramatsu
2010-05-19 14:11 ` [PATCH -tip v2 5/5] kprobes: Support delayed unoptimization Masami Hiramatsu

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).