lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Mon, 25 Jan 2010 20:13:03 -0500 From: Mathieu Desnoyers <compudj@...stal.dyndns.org> To: Frederic Weisbecker <fweisbec@...il.com> Cc: Masami Hiramatsu <mhiramat@...hat.com>, Steven Rostedt <rostedt@...dmis.org>, Ingo Molnar <mingo@...e.hu>, LKML <linux-kernel@...r.kernel.org>, Li Zefan <lizf@...fujitsu.com>, Lai Jiangshan <laijs@...fujitsu.com> Subject: Re: [RFC PATCH 03/10] ftrace: Drop the ftrace_profile_enabled checks in tracing hot path * Frederic Weisbecker (fweisbec@...il.com) wrote: > On Mon, Jan 25, 2010 at 05:14:16PM -0500, Masami Hiramatsu wrote: > > Frederic Weisbecker wrote: > > > On Fri, Jan 22, 2010 at 07:34:51AM -0500, Mathieu Desnoyers wrote: > > >> * Steven Rostedt (rostedt@...dmis.org) wrote: > > >>> On Thu, 2010-01-21 at 23:09 -0500, Mathieu Desnoyers wrote: > > >>>> * Steven Rostedt (rostedt@...dmis.org) wrote: > > >>> > > >>>>> Hmm, interesting. Maybe something like that might work. But what if > > >>>>> CONFIG_PREEMPT is enabled but CONFIG_FREEZER is not? > > >>>> > > >>>> Then you may want to make the function tracer depend on CONFIG_FREEZER, > > >>>> but maybe Masami has other ideas ? > > >>> > > >>> egad no! This is just to help add guarantees to those that use the > > >>> function tracer that when the tracing is disabled, it is guaranteed that > > >>> no more tracing will be called by the function tracer. Currently, > > >>> nothing relies on this. But we may add cases that might need this. > > >> > > >> Yep, identifying tracer quiescent state can become handy. > > >> > > >>> > > >>> In fact, only those that need this requirement would need to do this > > >>> trick. Anyway, we could make those depend on CONFIG_FREEZER, but that > > >>> just seems to be a strange dependency. > > >> > > >> This makes me wonder (question for Masami)... > > >> > > >> static int __kprobes check_safety(void) > > >> { > > >> int ret = 0; > > >> #if defined(CONFIG_PREEMPT) && defined(CONFIG_FREEZER) > > >> ret = freeze_processes(); > > >> if (ret == 0) { > > >> struct task_struct *p, *q; > > >> do_each_thread(p, q) { > > >> if (p != current && p->state == TASK_RUNNING && > > >> p->pid != 0) { > > >> printk("Check failed: %s is running\n",p->comm); > > >> ret = -1; > > >> goto loop_end; > > >> } > > >> } while_each_thread(p, q); > > > > > > > > > > > > How does that deal with kernel threads that don't freeze? > > > > Hmm, right. It can't handle non-freezable kernel threads. > > > > > Also freezing every processes seems a bit of a heavy thing for that. > > > Looks like a synchronize_tasks() would be really useful. > > > > Sure :-) > > Maybe, I'd better remove booster support on preemptive kernel until then. > > > I don't know as I haven't looked deeper into check_safety(), but does the > fact we have non-freezable tasks break the assumptions that make > kprobes booster safe? If so then yeah, may be deactivate it for now. > In the case of check_safety, it's not a bug per se if a task happens to be non freezable. freeze_processes() will likely return a non-zero value, and the whole check_safety will therefore return that value, so standard breakpoints will be used instead. But that doesn't fit with the function graph tracer requirements. Thanks, Mathieu -- 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@...r.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists