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, 21 Nov 2016 12:12:35 -0800 From: "Paul E. McKenney" <paulmck@...ux.vnet.ibm.com> To: Steven Rostedt <rostedt@...dmis.org> Cc: Peter Zijlstra <peterz@...radead.org>, Andi Kleen <andi@...stfloor.org>, Jiri Olsa <jolsa@...hat.com>, linux-kernel@...r.kernel.org, Ingo Molnar <mingo@...nel.org>, Josh Triplett <josh@...htriplett.org>, Jan Stancek <jstancek@...hat.com> Subject: Re: [BUG] msr-trace.h:42 suspicious rcu_dereference_check() usage! On Mon, Nov 21, 2016 at 01:24:38PM -0500, Steven Rostedt wrote: > > Paul, > > > On Mon, 21 Nov 2016 12:55:01 -0500 > Steven Rostedt <rostedt@...dmis.org> wrote: > > > On Mon, 21 Nov 2016 18:18:53 +0100 > > Peter Zijlstra <peterz@...radead.org> wrote: > > > > > Its not ftrace as such though, its RCU, ftrace simply uses RCU to avoid > > > locking, as one does. > > > > Just to be clear, as ftrace in the kernel mostly represents function > > tracing, which doesn't use RCU. This is a tracepoint feature. > > > > > > > > Biggest objection would be that the rcu_irq_enter_irqson() thing does > > > POPF and rcu_irq_exit_irqson() does again. So wrapping every tracepoint > > > with that is quite a few cycles. > > > > Agree. Even though this ends up being a whack-a-mole(TM) fix, I'm not > > concerned enough to put a heavy weight rcu idle code in for all > > tracepoints. > > > > Although, what about a percpu flag that can be checked in the > > tracepoint code to see if it should enable RCU or not? > > > > Hmm, I wonder if "rcu_is_watching()" is light enough to have in all > > tracepoints? > > Is it possible to make rcu_is_watching() an inlined call to prevent the > overhead of doing a function call? This way we could use this in the > fast path of the tracepoint. It would mean exposing the rcu_dynticks structure to the rest of the kernel, but I guess that wouldn't be the end of the world. Are you calling rcu_is_watching() or __rcu_is_watching()? The latter is appropriate if preemption is already disabled. Thanx, Paul
Powered by blists - more mailing lists