|
From: Masami H. <mhi...@re...> - 2009-11-25 21:30:46
|
Steven Rostedt wrote: > On Tue, 2009-11-24 at 15:59 -0500, Masami Hiramatsu wrote: > >>> I see...so the non-preemptible kernel requirement looks >>> hard to workaround :-s >> >> It's the next challenge I think :-) >> Even though, kprobes itself still work on preemptive kernel, >> so we don't lose any functionality. > >> From kstop_machine, we could search all tasks to see if any are about to > resume in the modified location. If there is, we could either > > 1) insert a normal kprobe > 2) modify the return address of the task to jump to some trampoline to > finish the work and return to the code spot with a direct jump. > > #2 is kind of nasty but seems like a fun thing to implement ;-) Sure, anyway, a normal kprobe is already inserted, so we also can just wait until all tasks don't resume to the spot :-) (that's another reason why it uses delayed work for optimization. we can try it again and again.) And I think, that code will be shared with ksplice too. Thank you, -- Masami Hiramatsu Software Engineer Hitachi Computer Products (America), Inc. Software Solutions Division e-mail: mhi...@re... |