Skip to content
  • Masami Hiramatsu's avatar
    kprobes: Allow probe on some kprobe functions · 55479f64
    Masami Hiramatsu authored
    There is no need to prohibit probing on the functions
    used for preparation, registeration, optimization,
    controll etc. Those are safely probed because those are
    not invoked from breakpoint/fault/debug handlers,
    there is no chance to cause recursive exceptions.
    
    Following functions are now removed from the kprobes blacklist:
    
    	add_new_kprobe
    	aggr_kprobe_disabled
    	alloc_aggr_kprobe
    	alloc_aggr_kprobe
    	arm_all_kprobes
    	__arm_kprobe
    	arm_kprobe
    	arm_kprobe_ftrace
    	check_kprobe_address_safe
    	collect_garbage_slots
    	collect_garbage_slots
    	collect_one_slot
    	debugfs_kprobe_init
    	__disable_kprobe
    	disable_kprobe
    	disarm_all_kprobes
    	__disarm_kprobe
    	disarm_kprobe
    	disarm_kprobe_ftrace
    	do_free_cleaned_kprobes
    	do_optimize_kprobes
    	do_unoptimize_kprobes
    	enable_kprobe
    	force_unoptimize_kprobe
    	free_aggr_kprobe
    	free_aggr_kprobe
    	__free_insn_slot
    	__get_insn_slot
    	get_optimized_kprobe
    	__get_valid_kprobe
    	init_aggr_kprobe
    	init_aggr_kprobe
    	in_nokprobe_functions
    	kick_kprobe_optimizer
    	kill_kprobe
    	kill_optimized_kprobe
    	kprobe_addr
    	kprobe_optimizer
    	kprobe_queued
    	kprobe_seq_next
    	kprobe_seq_start
    	kprobe_seq_stop
    	kprobes_module_callback
    	kprobes_open
    	optimize_all_kprobes
    	optimize_kprobe
    	prepare_kprobe
    	prepare_optimized_kprobe
    	register_aggr_kprobe
    	register_jprobe
    	register_jprobes
    	register_kprobe
    	register_kprobes
    	register_kretprobe
    	register_kretprobe
    	register_kretprobes
    	register_kretprobes
    	report_probe
    	show_kprobe_addr
    	try_to_optimize_kprobe
    	unoptimize_all_kprobes
    	unoptimize_kprobe
    	unregister_jprobe
    	unregister_jprobes
    	unregister_kprobe
    	__unregister_kprobe_bottom
    	unregister_kprobes
    	__unregister_kprobe_top
    	unregister_kretprobe
    	unregister_kretprobe
    	unregister_kretprobes
    	unregister_kretprobes
    	wait_for_kprobe_optimizer
    
    I tested those functions by putting kprobes on all
    instructions in the functions with the bash script
    I sent to LKML. See:
    
      https://lkml.org/lkml/2014/3/27/33
    
    
    
    Signed-off-by: default avatarMasami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
    Link: http://lkml.kernel.org/r/20140417081753.26341.57889.stgit@ltc230.yrl.intra.hitachi.co.jp
    
    
    Cc: Ananth N Mavinakayanahalli <ananth@in.ibm.com>
    Cc: Anil S Keshavamurthy <anil.s.keshavamurthy@intel.com>
    Cc: David S. Miller <davem@davemloft.net>
    Cc: fche@redhat.com
    Cc: systemtap@sourceware.org
    Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
    55479f64