[lkml]   [2010]   [Apr]   [9]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    SubjectRe: [PATCH 0/9] jump label v6
    Hi Jason,

    Jason Baron wrote:
    > Hi,
    > Refresh of jump labeling patches aginst -tip tree. For bacground see:
    > I believe I've addressed all the reviews from v5.
    > Changes in v6:
    > * I've moved Steve Rostedt's 'ftrace_dyn_arch_init()' to alternative.c to
    > put it into a common area for used by both ftrace and jump labels. By
    > default we put a 'jmp 5' in the nop slot. Then, when we detect the best
    > runtime no-op we patch over the 'jmp 5' with the appropriate nop.
    > * build time sort of the jump label table. The jump label table is more
    > optimally accessed if the entries are continguous. Sorting the table
    > accomplishes this. Do the sort at build-time. Adds a '-j' option to
    > 'modpost' which replaces the vmlinux, with a sorted jump label section vmlinux.
    > I've tested this on x86 with relocatable and it works fine there as well. Note
    > that I have not sorted the jump label table in modules. This is b/c the jump
    > label names can be exported by the core kernel, and thus I don't have them
    > available at buildtime. This could be solved by either finding the correct
    > ones in the vmlinux, or by embedding the name of the jump label in the module
    > tables (and not just a pointer), but the module tables tend to be smaller, and
    > thus there is less value to this kind of change anyway. The kernel continues to
    > do the sort, just in case, but at least for the vmlinux, this is just a
    > verfication b/c the jump label table has already been sorted.
    > * added jump_label_text_reserved(), so that other routines that want to patch
    > the code, can first verify that they are not stomping on jump label addresses.

    So now, it might be a good time to integrate those text_reserved() functions.

    BTW, how many jumps would you expect modifying at once?
    Since the text_poke_smp() uses stop_machine() for each modifying text,
    I found that it can cause a delay issue if it is called so many times...
    (e.g. a systemtap testcase sets ~5000 probes at once)

    Thank you,

    Masami Hiramatsu

     \ /
      Last update: 2010-04-09 22:39    [W:0.022 / U:0.100 seconds]
    ©2003-2017 Jasper Spaans. hosted at Digital OceanAdvertise on this site