lkml.org 
[lkml]   [2010]   [Nov]   [14]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH 2/2] perf,hw_breakpoint: Initialize hardware api earlier
    On 11/13/2010 03:46 PM, Peter Zijlstra wrote:
    > On Sat, 2010-11-13 at 22:37 +0100, Frederic Weisbecker wrote:
    >
    >> From: Jason Wessel <jason.wessel@windriver.com>
    >>
    >> When using early debugging, the kernel does not initialize the
    >> hw_breakpoint API early enough and causes the late initialization of
    >> the kernel debugger to fail. The boot arguments are:
    >>
    >> earlyprintk=vga ekgdboc=kbd kgdbwait
    >>
    >> Then simply type "go" at the kdb prompt and boot. The kernel will
    >> later emit the message:
    >>
    >> kgdb: Could not allocate hwbreakpoints
    >>
    >> And at that point the kernel debugger will cease to work correctly.
    >>
    >> The solution is to initialize the hw_breakpoint at the same time that
    >> all the other perf call backs are initialized instead of using a
    >> core_initcall() initialization which happens well after the kernel
    >> debugger can make use of hardware breakpoints.
    >>
    >
    > How early is it needed?

    The HW breakpoint callback needs to be registered at the same time the
    rest of the perf callbacks are registered. More specifically, the
    infrastructure setup needs to be completed before the debugger calls
    "register_wide_hw_breakpoint(&attr, NULL)" in arch/x86/kernel/kgdb.c.
    After the debugger calls the registration function, from that point on
    perf owns the reservation system for all hw break point registers.

    > I've got a patch converting the x86 (still need
    > to do the other hardware pmus) to early_initcall() instead of random
    > places in the arch bringup (notably before the perf core init).
    >
    >

    This sounds to me like it would be early enough. I could certainly run
    the simple test case in the patch to make sure it still works, if you
    point me to your patch(es). I imagine I should also test the hand off
    procedure where the debugger uses the registers directly up until the
    point that perf is capable of handling reservations for the hw
    breakpoint slots.

    Thanks,
    Jason.


    \
     
     \ /
      Last update: 2010-11-14 14:37    [W:0.021 / U:63.208 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site