Message ID | 20210929220218.691419-1-keescook@chromium.org (mailing list archive) |
---|---|
Headers | show |
Series | wchan: Fix ORC support and leaky fallback | expand |
On Wed, Sep 29, 2021 at 03:02:12PM -0700, Kees Cook wrote: > Hi, > > This attempts to solve the issues from the discussion here[1]. Specifically: > > 1) wchan leaking raw addresses since 152c432b128c (v5.12). > > patch 1 fixes this with a revert. > > 2) wchan has been broken under ORC, seen as a failure to stack walk > resulting in _usually_ a 0 value, since ee9f8fce9964 (v4.14). > > patches 2-5 fixes this with Qi Zheng's new get_wchan() and changes to > the /proc code to use the new helper suggested by Peter to do the stack > walk only if the process can be kept blocked: > https://lore.kernel.org/lkml/20210929194026.GA4323@worktop.programming.kicks-ass.net/ > > Peter, can you take this via -tip? It all looks sane to me. Thanks for cleaning up this mess. - Should we use a similar sched wrapper for /proc/$pid/stack to make its raciness go away? - At the risk of triggering a much larger patch set, I suspect get_wchan() can be made generic ;-) It's just a glorified wrapper around stack_trace_save_tsk(). Regardless: Acked-by: Josh Poimboeuf <jpoimboe@redhat.com>
On Wed, Sep 29, 2021 at 06:01:57PM -0700, Josh Poimboeuf wrote: > - Should we use a similar sched wrapper for /proc/$pid/stack to make its > raciness go away? Alternatively, can we make /stack go away? AFAICT the semantics of that are far worse in that it wants the actual kernel stack of a task, blocked or not, which is a total pain in the arse (not to mention a giant infoleak and side-channel). > - At the risk of triggering a much larger patch set, I suspect > get_wchan() can be made generic ;-) It's just a glorified wrapper > around stack_trace_save_tsk(). Done that for you :-)
On Thu, Sep 30, 2021 at 10:40:11AM +0200, Peter Zijlstra wrote: > On Wed, Sep 29, 2021 at 06:01:57PM -0700, Josh Poimboeuf wrote: > > > - Should we use a similar sched wrapper for /proc/$pid/stack to make its > > raciness go away? > > Alternatively, can we make /stack go away? AFAICT the semantics of that > are far worse in that it wants the actual kernel stack of a task, > blocked or not, which is a total pain in the arse (not to mention a > giant infoleak and side-channel). > > > - At the risk of triggering a much larger patch set, I suspect > > get_wchan() can be made generic ;-) It's just a glorified wrapper > > around stack_trace_save_tsk(). > > Done that for you :-) Thanks! I wasn't sure the renaming was worth the churn, but the other cleanups make it much nicer. :) Do you want me to re-collect the resulting series, or do you have a tree already for -tip for this? -Kees
On Thu, Sep 30, 2021 at 08:18:34AM -0700, Kees Cook wrote: > Do you want me to re-collect the resulting series, or do you have a tree > already for -tip for this? I stuck it here: https://git.kernel.org/pub/scm/linux/kernel/git/peterz/queue.git/log/?h=sched/wchan I'm waiting on the robots to tell I wrecked the world... :-)