Prev: USB: gadget: g_fs: possible invalid pointer reference bug fixed
Next: Enabling a disabled hw-breakpoint using modify_user_hw_breakpoint
From: Masami Hiramatsu on 16 Jun 2010 05:30 Frederic Weisbecker wrote: > On Wed, May 19, 2010 at 12:53:26PM -0400, Masami Hiramatsu wrote: >> Introduce text_poke_smp_batch(). This function modifies several >> text areas with one stop_machine() on SMPr. Because calling >> stop_machine() is heavy task, it is better to aggregate text_poke >> requests. >> >> Signed-off-by: Masami Hiramatsu <mhiramat(a)redhat.com> >> Cc: Ananth N Mavinakayanahalli <ananth(a)in.ibm.com> >> Cc: Ingo Molnar <mingo(a)elte.hu> >> Cc: Jim Keniston <jkenisto(a)us.ibm.com> >> Cc: Jason Baron <jbaron(a)redhat.com> >> Cc: Mathieu Desnoyers <mathieu.desnoyers(a)efficios.com> > <snip> >> +/** >> + * text_poke_smp_batch - Update instructions on a live kernel on SMP >> + * @params: an array of text_poke parameters >> + * @n: the number of elements in params. >> + * >> + * Modify multi-byte instruction by using stop_machine() on SMP. Since the >> + * stop_machine() is heavy task, it is better to aggregate text_poke requests >> + * and do it once if possible. >> + * >> + * Note: Must be called under get_online_cpus() and text_mutex. >> + */ >> +void __kprobes text_poke_smp_batch(struct text_poke_param *params, int n) >> +{ >> + struct text_poke_params tpp = {.params = params, .nparams = n}; >> + >> + atomic_set(&stop_machine_first, 1); >> + wrote_text = 0; >> + stop_machine(stop_machine_text_poke, (void *)&tpp, NULL); >> +} > > > Looks good. But wouldn't it be even better to get stop_machine() > be able to support batches itself? > > We could have stop_machine_queue() and stop_machine_flush(), > stop_machine() would be a shortcut for both, to execute single jobs, > may be that could simplify some code here and there. > Ah, that's nice too :) But I don't know other people who need that interfaces. Would you know there are any other potential users? Thank you, -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo(a)vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/ |