[lkml]   [2008]   [Aug]   [21]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    Subjectftraced and suspend to ram

    In latest 2.6.27(git) enabling dynamic ftrace makes resume from a suspend
    to ram reboot instead of resuming. Queued for 2.6.28 is a new method of
    recording mcount callers at compile time that does not have this issue.

    But the new method is still too "green" to be pulled into 27, so the old
    ftraced (daemon method) needs to be fixed for 27.

    The way dynamic ftrace works with the daemon method is this. On boot up
    the mcount function simply returns. When ftrace is initialized, it calls
    kstop_machine to modify the mcount function to call another function
    called "ftrace_record_ip". This new function will record in a preallocated
    hash (allocated by the ftrace initializer) all the callers of mcount. A
    check is made to see if the caller has already been put into the hash, and
    if so, it is not recorded again.

    Later on a kernel thread ftraced is created. This kernel thread wakes up
    once a second and checks to see if any new functions were added to the
    hash. If so, it then calls kstop_machine and modifies those callers to
    mcount into nops.

    Again, this daemon method makes resume from suspend to ram reboot instead
    of resuming. Now, I'm asking the s2r gurus, what did I miss? Do I need to
    add a "NO_FREEZE" flag or something to the "ftraced" kernel thread?

    Just asking for some advice.


    -- Steve

     \ /
      Last update: 2008-08-21 17:53    [W:0.019 / U:99.088 seconds]
    ©2003-2017 Jasper Spaans. hosted at Digital OceanAdvertise on this site