linux/include
Masami Hiramatsu b4c6c34a53 [PATCH] kprobes: enable booster on the preemptible kernel
When we are unregistering a kprobe-booster, we can't release its
instruction buffer immediately on the preemptive kernel, because some
processes might be preempted on the buffer.  The freeze_processes() and
thaw_processes() functions can clean most of processes up from the buffer.
There are still some non-frozen threads who have the PF_NOFREEZE flag.  If
those threads are sleeping (not preempted) at the known place outside the
buffer, we can ensure safety of freeing.

However, the processing of this check routine takes a long time.  So, this
patch introduces the garbage collection mechanism of insn_slot.  It also
introduces the "dirty" flag to free_insn_slot because of efficiency.

The "clean" instruction slots (dirty flag is cleared) are released
immediately.  But the "dirty" slots which are used by boosted kprobes, are
marked as garbages.  collect_garbage_slots() will be invoked to release
"dirty" slots if there are more than INSNS_PER_PAGE garbage slots or if
there are no unused slots.

Cc: "Keshavamurthy, Anil S" <anil.s.keshavamurthy@intel.com>
Cc: Ananth N Mavinakayanahalli <ananth@in.ibm.com>
Cc: "bibo,mao" <bibo.mao@intel.com>
Cc: Prasanna S Panchamukhi <prasanna@in.ibm.com>
Cc: Yumiko Sugita <yumiko.sugita.yf@hitachi.com>
Cc: Satoshi Oshima <soshima@redhat.com>
Cc: Hideo Aoki <haoki@redhat.com>
Signed-off-by: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
Acked-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-12-07 08:39:38 -08:00
..
acpi [PATCH] slab: remove kmem_cache_t 2006-12-07 08:39:25 -08:00
asm-alpha [PATCH] remove kernel syscalls 2006-12-07 08:39:37 -08:00
asm-arm [PATCH] remove kernel syscalls 2006-12-07 08:39:37 -08:00
asm-arm26 [PATCH] remove kernel syscalls 2006-12-07 08:39:37 -08:00
asm-avr32 [PATCH] Centralise definitions of sector_t and blkcnt_t 2006-12-04 19:41:15 -08:00
asm-cris [NET]: Cris checksum annotations and cleanups. 2006-12-02 21:23:02 -08:00
asm-frv [PATCH] remove kernel syscalls 2006-12-07 08:39:37 -08:00
asm-generic [PATCH] mm: pagefault_{disable,enable}() 2006-12-07 08:39:21 -08:00
asm-h8300 [PATCH] remove kernel syscalls 2006-12-07 08:39:37 -08:00
asm-i386 [PATCH] remove kernel syscalls 2006-12-07 08:39:37 -08:00
asm-ia64 [PATCH] numa node ids are int, page_to_nid and zone_to_nid should return int 2006-12-07 08:39:23 -08:00
asm-m32r [PATCH] remove kernel syscalls 2006-12-07 08:39:37 -08:00
asm-m68k [PATCH] remove kernel syscalls 2006-12-07 08:39:37 -08:00
asm-m68knommu [PATCH] remove kernel syscalls 2006-12-07 08:39:37 -08:00
asm-mips [PATCH] remove kernel syscalls 2006-12-07 08:39:37 -08:00
asm-parisc [PATCH] mm: pagefault_{disable,enable}() 2006-12-07 08:39:21 -08:00
asm-powerpc [PATCH] elf: Always define elf_addr_t in linux/elf.h 2006-12-07 08:39:38 -08:00
asm-ppc [PATCH] mm: pagefault_{disable,enable}() 2006-12-07 08:39:21 -08:00
asm-s390 [PATCH] remove kernel syscalls 2006-12-07 08:39:37 -08:00
asm-sh [PATCH] remove kernel syscalls 2006-12-07 08:39:37 -08:00
asm-sh64 [PATCH] remove kernel syscalls 2006-12-07 08:39:37 -08:00
asm-sparc [PATCH] remove kernel syscalls 2006-12-07 08:39:37 -08:00
asm-sparc64 [PATCH] remove kernel syscalls 2006-12-07 08:39:37 -08:00
asm-um Driver core: add dev_archdata to struct device 2006-12-01 14:52:01 -08:00
asm-v850 [PATCH] remove kernel syscalls 2006-12-07 08:39:37 -08:00
asm-x86_64 [PATCH] remove kernel syscalls 2006-12-07 08:39:37 -08:00
asm-xtensa [PATCH] remove kernel syscalls 2006-12-07 08:39:37 -08:00
crypto [CRYPTO] digest: Added user API for new hash type 2006-09-21 11:46:17 +10:00
keys
linux [PATCH] kprobes: enable booster on the preemptible kernel 2006-12-07 08:39:38 -08:00
math-emu
media V4L/DVB (4666): Ensure the WM8775 driver is loaded generically for any board. 2006-10-03 15:13:48 -03:00
mtd Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6 2006-10-01 17:55:53 +01:00
net [PATCH] lockdep: annotate nfs/nfsd in-kernel sockets 2006-12-07 08:39:30 -08:00
pcmcia [PATCH] pcmcia: multifunction card handling fixes 2006-12-04 20:09:15 -05:00
rdma IB/cm: Fix automatic path migration support 2006-11-29 15:33:10 -08:00
rxrpc
scsi [PATCH] slab: remove kmem_cache_t 2006-12-07 08:39:25 -08:00
sound Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6 2006-12-05 17:01:28 +00:00
video fix file specification in comments 2006-10-03 23:01:26 +02:00
Kbuild [HEADERS] One line per header in Kbuild files to reduce conflicts 2006-09-19 12:43:58 +01:00