lkml.org 
[lkml]   [2009]   [Apr]   [23]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH 1/5] ftrace: use module notifier for function tracer
    * Anders Kaseorg (andersk@MIT.EDU) wrote:
    > On Wed, 22 Apr 2009, Masami Hiramatsu wrote:
    > > Could you also add "use text_poke() on x86" to your plan? :-)
    >
    > That should be possible now that it is usable inside stop_machine(). It
    > would be nicer to have an API that isn’t x86-specific, though.
    >
    > Another issue is that Ksplice supports patching rodata as well as text,
    > and text_poke() does not support changes bigger than PAGE_SIZE. Though
    > perhaps text_poke() is not the right function for rodata patches anyway.
    >
    > > Hmm, I can't agree that we allow module to modify kernel text...
    > > Is that possible to separate kernel-text swapping routine from Ksplice
    > > module? In that case, we don't need to export text_mutex.
    >
    > No, it’s not enough for Ksplice to lock the kernel text only while
    > actively swapping it. We also need to prevent changes to the kernel text
    > while Ksplice is doing run-pre matching to ensure safety. This means that
    > Ksplice wants to hold text_mutex for essentially the entire time it’s
    > running.
    >

    how about a kernel Ksplice API which lets your patch modules get
    their handlers executed under the right execution context ? E.g. :

    int do_ksplice(void (*pre_hook)(struct blah *context),
    void (*code_update_hook)(struct blah *context),
    void (*post_hook)(struct blah *context));

    Which returns either 0 or -ESOMETHING. It would take care of locking and
    everything within core kernel code. The "patch" modules would simply
    provide the functions that does the code updates, assuming that the
    do_ksplice function makes sure to provide correct locking semantics.
    This way, the kernel code-base would contain the tricky locking bits.
    It seems much better than exporting the text_mutex to modules.

    Mathieu



    > Anders
    >

    --
    Mathieu Desnoyers
    OpenPGP key fingerprint: 8CD5 52C3 8E3C 4140 715F BA06 3F25 A8FE 3BAE 9A68
    --
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2009-04-23 22:01    [W:0.039 / U:0.528 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site