Re: [RFC] [PATCH] To list all active probes in the system

From: Frederik Deweerdt
Date: Tue Feb 06 2007 - 09:56:44 EST


Hi,

Comments below,

On Tue, Feb 06, 2007 at 08:17:06PM +0530, Srinivasa Ds wrote:
> Srinivasa Ds wrote:
> > Christoph Hellwig wrote:
> >> On Tue, Feb 06, 2007 at 03:25:35PM +0530, Srinivasa Ds wrote:
> >>> Hi folks
> >>>
> >>> I have developed a patch, that lists all active probes in the
> >>> system. I have done this through /proc interface. Currently list is
> >>> available under /proc/kprobes/list. Any suggestions for better place and
> >>> name??
> >> /debug/kprobes/list? :)
> >>
> > Good Idea, I will update my patch to use debugfs.
> Patch that uses debugfs.
>
> Signed-off-by: Srinivasa DS <srinivasa@xxxxxxxxxx>
>
>
>
>
>

> fs/debugfs/inode.c | 4 ++
> include/linux/kprobes.h | 4 ++
> kernel/kprobes.c | 92 ++++++++++++++++++++++++++++++++++++++++++++++++
> 3 files changed, 100 insertions(+)
>
> Index: linux-2.6.20/fs/debugfs/inode.c
> ===================================================================
> --- linux-2.6.20.orig/fs/debugfs/inode.c
> +++ linux-2.6.20/fs/debugfs/inode.c
> @@ -25,6 +25,7 @@
> #include <linux/namei.h>
> #include <linux/debugfs.h>
> #include <linux/fsnotify.h>
> +#include <linux/kprobes.h>
>
> #define DEBUGFS_MAGIC 0x64626720
>
> @@ -320,6 +321,9 @@ static int __init debugfs_init(void)
> retval = register_filesystem(&debug_fs_type);
> if (retval)
> subsystem_unregister(&debug_subsys);
> +#ifdef CONFIG_KPROBES
> + debugfs_kprobe_init();
> +#endif
The ifdef here could be skipped if ....
> return retval;
> }
>
[... snip ...]
> Index: linux-2.6.20/include/linux/kprobes.h
> ===================================================================
> --- linux-2.6.20.orig/include/linux/kprobes.h
> +++ linux-2.6.20/include/linux/kprobes.h
> @@ -203,6 +203,7 @@ struct kretprobe_instance *get_free_rp_i
> void add_rp_inst(struct kretprobe_instance *ri);
> void kprobe_flush_task(struct task_struct *tk);
> void recycle_rp_inst(struct kretprobe_instance *ri, struct hlist_head *head);
> +void debugfs_kprobe_init(void);
> #else /* CONFIG_KPROBES */
>
> #define __kprobes /**/
> @@ -240,5 +241,8 @@ static inline void unregister_kretprobe(
> static inline void kprobe_flush_task(struct task_struct *tk)
> {
> }
> +static inline void proc_kprobe_init(void)
> +{
> +}
... this was renamed to debugfs_kprobe_init() instead -which was your
first intention I suppose ;)-

Regards,
Frederik
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/