lkml.org 
[lkml]   [2009]   [Mar]   [27]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    Date
    SubjectRE: [patch 1/14] x86, ptrace: add arch_ptrace_report_exit
    >-----Original Message-----
    >From: Oleg Nesterov [mailto:oleg@redhat.com]
    >Sent: Friday, March 27, 2009 3:20 PM
    >To: Metzger, Markus T
    >Cc: linux-kernel@vger.kernel.org; mingo@elte.hu; tglx@linutronix.de; hpa@zytor.com;
    >markus.t.metzger@gmail.com; roland@redhat.com; eranian@googlemail.com; Villacis, Juan;
    >ak@linux.jf.intel.com
    >Subject: Re: [patch 1/14] x86, ptrace: add arch_ptrace_report_exit
    >
    >On 03/27, Markus Metzger wrote:
    >>
    >> --- git-tip.orig/include/linux/ptrace.h 2009-03-23 10:45:30.000000000 +0100
    >> +++ git-tip/include/linux/ptrace.h 2009-03-23 11:31:21.000000000 +0100
    >> @@ -335,6 +335,23 @@ static inline void user_enable_block_ste
    >> #define arch_ptrace_fork(child, clone_flags) do { } while (0)
    >> #endif
    >>
    >> +#ifndef arch_ptrace_report_exit
    >> +/**
    >> + * arch_ptrace_report_exit - Do machine specific work for exiting ptraced tasks
    >> + * @exit_code: current->exit_code value
    >> + *
    >> + * This is called early from do_exit() with no locks held after we notified the
    >> + * ptracer.
    >> + */
    >> +#define arch_ptrace_report_exit(exit_code) do { } while (0)
    >> +#endif
    >> +
    >> +static inline void ptrace_report_exit(long *exit_code)
    >> +{
    >> + ptrace_event(PT_TRACE_EXIT, PTRACE_EVENT_EXIT, *exit_code);
    >> + arch_ptrace_report_exit(*exit_code);
    >> +}
    >> +
    >> extern int task_current_syscall(struct task_struct *target, long *callno,
    >> unsigned long args[6], unsigned int maxargs,
    >> unsigned long *sp, unsigned long *pc);
    >> Index: git-tip/include/linux/tracehook.h
    >> ===================================================================
    >> --- git-tip.orig/include/linux/tracehook.h 2009-03-23 10:45:30.000000000 +0100
    >> +++ git-tip/include/linux/tracehook.h 2009-03-23 11:31:21.000000000 +0100
    >> @@ -211,7 +211,7 @@ static inline void tracehook_report_exec
    >> */
    >> static inline void tracehook_report_exit(long *exit_code)
    >> {
    >> - ptrace_event(PT_TRACE_EXIT, PTRACE_EVENT_EXIT, *exit_code);
    >> + ptrace_report_exit(exit_code);
    >> }
    >
    >This needs Rolan'd review.
    >
    >But I'd say this has nothing to do with tracehooks. And why do
    >you pass *exit_code to arch_ptrace_report_exit() ?
    >
    >Just add arch_ptrace_report_exit(void) into do_exit() ?
    >
    >From the 3/14 patch:
    >
    > #define arch_ptrace_report_exit(code) x86_ptrace_report_exit(code)
    >
    > void x86_ptrace_report_exit(long exit_code)
    > {
    > ptrace_bts_exit();
    > }
    >
    >This is a bit strange. Why do we need 2 functions, ptrace_bts_exit() and
    >x86_ptrace_report_exit() which just calls the first one?

    I did not want to take any shortcuts. I try to maintain the structure
    general_function()->ptrace_report()->arch_ptrace_report().

    Recently, tracehook_report_whatever() calls were added which either do the
    ptrace work directly or call a ptrace function. I try to use those calls, where possible.

    It does not clutter the general code with x86 specific, or worse x86 branch trace
    recording specific calls.


    If people don't like these ptrace_whatever() and arch_ptrace_whatever() calls I add,
    I can remove them and add my calls directly where I need them.

    regards,
    markus.

    ---------------------------------------------------------------------
    Intel GmbH
    Dornacher Strasse 1
    85622 Feldkirchen/Muenchen Germany
    Sitz der Gesellschaft: Feldkirchen bei Muenchen
    Geschaeftsfuehrer: Douglas Lusk, Peter Gleissner, Hannes Schwaderer
    Registergericht: Muenchen HRB 47456 Ust.-IdNr.
    VAT Registration No.: DE129385895
    Citibank Frankfurt (BLZ 502 109 00) 600119052

    This e-mail and any attachments may contain confidential material for
    the sole use of the intended recipient(s). Any review or distribution
    by others is strictly prohibited. If you are not the intended
    recipient, please contact the sender and delete all copies.



    \
     
     \ /
      Last update: 2009-03-27 16:15    [W:0.031 / U:60.056 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site