Prasad,

On Mon, 2009-03-16 at 18:19 +0530, Subrata Modak wrote:
> Hi Prasad,
> 
> On Thu, Mar 5, 2009 at 10:07 AM, <[email protected]> wrote:
>         Hi Ingo,
>                Please find the revised set of patches that implement
>         Hardware
>         Breakpoint (or watchpoint) registers and an arch-specific
>         implementation
>         for x86/x86_64.
>         
>         Changelog
>         ---------
>         The previous version of these patches were submitted through
>         http://article.gmane.org/gmane.linux.kernel/794870. The
>         patches now
>         contain a new ftrace plugin for kernel symbol tracing using
>         hardware
>         breakpoint registers. The patches are now re-based to -tip
>         tree commit
>         e40aa382597b30c4d702951348500e812b4cb3d0.
>         
>         A small usage note on the plugin along with the description of
>         the
>         breakpoint interfaces is included below.
>         
>         Kindly accept these patches to become a part of -tip tree.
>         
>         Description
>         -------------
>         The Hardware Breakpoint registers can be used for tracing
>         changes to a
>         variable or data location (even I/O ports in x86/x86_64) and
>         will be
>         extremely helpful in debugging problems such as memory
>         corruption. While
>         these registers have been used by user-space debuggers for
>         long (through
>         'ptrace' syscalls), Kgdb exploited them for kernel-space
>         addresses.
> 
> You have been recently posting these patches to LKML. Being one of the
> LTP users, you would be in a position to tell whether we can test this
> from LTP ś user space tests ? If yes, have you worked on some test
> development for this ? ;-)

Anything for LTP ?

Regards--
Subrata

> 
> Regards--
> Subrata
> 
> 
>         
>         
>         The proposed framework, introduces interfaces to use them
>         directly on
>         both  user- and kernel-space addresses apart from arbitrating
>         requests
>         from various such users for the limited number of registers.
>         
>         The interfaces are:
>         
>         int register_kernel_hw_breakpoint(struct hw_breakpoint *);
>         void unregister_kernel_hw_breakpoint(struct hw_breakpoint
>         *bp);
>         
>         int register_user_hw_breakpoint(struct task_struct *tsk,
>                                         struct hw_breakpoint *bp);
>         void unregister_user_hw_breakpoint(struct task_struct *tsk,
>                        struct hw_breakpoint *bp);
>         
>         The 'struct hw_breakpoint' will be the anchor data-structure
>         containing
>         all the necessary information such as name or address, type,
>         length,
>         priority and pointers to handler functions (some of which are
>         arch-specific). More information about the role of each field,
>         the
>         handler
>         functions and their return values can be found in the
>         descriptive
>         comments
>         preceding these functions and in
>         "include/asm-generic/hw_breakpoint.h".
>         
>         While (un)register_user_hw_breakpoint() isn't exported yet,
>         its
>         worker-routine __register_user-hw_breakpoint() is used by
>         ptrace syscall
>         for all breakpoint register requirements. For the
>         kernel-space, a simple
>         use case to trace 'write' operations on a kernel variable can
>         be found
>         in samples/hw_breakpoint/data_breakpoint.c.
>         
>         In the current patchset, support is provided only for read and
>         read-write breakpoints on data locations, which can be later
>         expand to
>         include instruction and I/O breakpoints for x86/x86_64.
>         
>         There is pending integration with 'KGDB' without which mutual
>         exclusion
>         between them (KGDB and HW breakpoint use through above
>         interfaces) needs
>         to be observed.
>         
>         Ftrace plugin
>         -------------
>         Usage
>         ------
>         mount -t debugfs debugfs /debug
>         cd /debug/tracing/
>         echo 0 > tracing_enabled
>         cat available_tracers
>         echo ksym_tracer > current_tracer
>         echo "pid_max:rw-" > ksym_trace_filter
>         echo "jiffies:-w-" > ksym_trace_filter
>         
>         echo 1 > tracing_enabled
>         
>         cat trace
>         
>         
>         Sample Output (snipped)
>         -------------
>         
>         [r...@mymachine tracing]# cat trace
>         # tracer: ksym_tracer
>         #
>         #       TASK-PID      CPU#      Symbol         Type
>          Function
>         #          |           |          |              |         |
>         atieventsd      3053  1   pid_max               RW alloc_pid
>         +0x6c/0x2fd
>         authatieventsd. 5394  1   pid_max               RW alloc_pid
>         +0x6c/0x2fd
>         authatieventsd. 5394  0   pid_max               RW alloc_pid
>         +0x6c/0x2fd
>         authatieventsd. 5394  0   pid_max               RW alloc_pid
>         +0x6c/0x2fd
>         bash            4898  1   pid_max               RW alloc_pid
>         +0x6c/0x2fd
>         atieventsd      3053  1   pid_max               RW alloc_pid
>         +0x6c/0x2fd
>         authatieventsd. 5401  1   pid_max               RW alloc_pid
>         +0x6c/0x2fd
>         authatieventsd. 5413  0   pid_max               RW alloc_pid
>         +0x6c/0x2fd
>         authatieventsd. 5415  0   pid_max               RW alloc_pid
>         +0x6c/0x2fd
>         authatieventsd. 5415  0   pid_max               RW alloc_pid
>         +0x6c/0x2fd
>         authatieventsd. 5413  0   pid_max               RW alloc_pid
>         +0x6c/0x2fd
>         hald-runner     2766  0   pid_max               RW alloc_pid
>         +0x6c/0x2fd
>         hal-system-kill 5425  1   pid_max               RW alloc_pid
>         +0x6c/0x2fd
>         hal-system-kill 5425  1   pid_max               RW alloc_pid
>         +0x6c/0x2fd
>         swapper         0     0   jiffies               W  do_timer
>         +0x16/0xb0
>         swapper         0     0   jiffies               W  do_timer
>         +0x16/0xb0
>         gnome-terminal  4521  0   jiffies               W  do_timer
>         +0x16/0xb0
>         Xorg            3235  0   jiffies               W  do_timer
>         +0x16/0xb0
>         Xorg            3235  0   jiffies               W  do_timer
>         +0x16/0xb0
>         [r...@mymachine tracing]#
>         
>         Thanks,
>         K.Prasad
>         
>         --
>         To unsubscribe from this list: send the line "unsubscribe
>         linux-kernel" in
>         the body of a message to [email protected]
>         More majordomo info at
>          http://vger.kernel.org/majordomo-info.html
>         Please read the FAQ at  http://www.tux.org/lkml/
> 
> 
> 
> -- 
> Regards & Thanks--
> Subrata
> ------------------------------------------------------------------------------
> Apps built with the Adobe(R) Flex(R) framework and Flex Builder(TM) are
> powering Web 2.0 with engaging, cross-platform capabilities. Quickly and
> easily build your RIAs with Flex Builder, the Eclipse(TM)based development
> software that enables intelligent coding and step-through debugging.
> Download the free 60 day trial. http://p.sf.net/sfu/www-adobe-com
> _______________________________________________ Ltp-list mailing list 
> [email protected] 
> https://lists.sourceforge.net/lists/listinfo/ltp-list


------------------------------------------------------------------------------
Apps built with the Adobe(R) Flex(R) framework and Flex Builder(TM) are
powering Web 2.0 with engaging, cross-platform capabilities. Quickly and
easily build your RIAs with Flex Builder, the Eclipse(TM)based development
software that enables intelligent coding and step-through debugging.
Download the free 60 day trial. http://p.sf.net/sfu/www-adobe-com
_______________________________________________
Ltp-list mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ltp-list

Reply via email to