From: Peter Zijlstra <peterz@infradead.org> To: Kees Cook <keescook@chromium.org> Cc: "Josh Poimboeuf" <jpoimboe@redhat.com>, "Mark Rutland" <mark.rutland@arm.com>, "Vito Caputo" <vcaputo@pengaru.com>, "Jann Horn" <jannh@google.com>, "Thomas Gleixner" <tglx@linutronix.de>, "Ingo Molnar" <mingo@redhat.com>, "Borislav Petkov" <bp@alien8.de>, "H. Peter Anvin" <hpa@zytor.com>, "Jens Axboe" <axboe@kernel.dk>, "Stefan Metzmacher" <metze@samba.org>, "Andy Lutomirski" <luto@kernel.org>, "Lai Jiangshan" <laijs@linux.alibaba.com>, "Christian Brauner" <christian.brauner@ubuntu.com>, "Andrew Morton" <akpm@linux-foundation.org>, "Kenta.Tada@sony.com" <Kenta.Tada@sony.com>, "Daniel Bristot de Oliveira" <bristot@redhat.com>, "Michael Weiß" <michael.weiss@aisec.fraunhofer.de>, "Anand K Mistry" <amistry@google.com>, "Alexey Gladkov" <legion@kernel.org>, "Michal Hocko" <mhocko@suse.com>, "Helge Deller" <deller@gmx.de>, "Dave Hansen" <dave.hansen@linux.intel.com>, "Andrea Righi" <andrea.righi@canonical.com>, "Ohhoon Kwon" <ohoono.kwon@samsung.com>, "Kalesh Singh" <kaleshsingh@google.com>, "YiFei Zhu" <yifeifz2@illinois.edu>, "Eric W. Biederman" <ebiederm@xmission.com>, "Qi Zheng" <zhengqi.arch@bytedance.com>, linux-kernel@vger.kernel.org, x86@kernel.org, linux-fsdevel@vger.kernel.org, linux-hardening@vger.kernel.org Subject: Re: [PATCH] proc: Disable /proc/$pid/wchan Date: Wed, 29 Sep 2021 21:40:26 +0200 [thread overview] Message-ID: <20210929194026.GA4323@worktop.programming.kicks-ass.net> (raw) In-Reply-To: <202109291152.681444A135@keescook> On Wed, Sep 29, 2021 at 11:54:55AM -0700, Kees Cook wrote: > > > > > > It's supposed to show where a blocked task is blocked; the "wait > > > > > > channel". > Since I think we're considering get_wchan() to be slow-path, can we just > lock the runqueue and use arch_stack_walk_reliable()? Funny thing, when a task is blocked it isn't on the runqueue :-) So if all we want to do is capture a blocked task and fail otherwise we don't need the rq->lock at all. Something like: unsigned long ip = 0; raw_spin_lock_irq(&p->pi_lock); state = READ_ONCE(p->__state); smp_rmb(); /* see try_to_wake_up() */ if (state == TASK_RUNNING || state == TASK_WAKING || p->on_rq) goto unlock; ip = /* do actual stack walk on a blocked task */ unlock: raw_spin_unlock_irq(&p->pi_lock); return ip; Should get us there.
next prev parent reply other threads:[~2021-09-29 19:46 UTC|newest] Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top 2021-09-23 23:31 Kees Cook 2021-09-23 23:38 ` Kees Cook 2021-09-24 13:31 ` Peter Zijlstra 2021-09-23 23:49 ` Vito Caputo 2021-09-24 0:08 ` Jann Horn 2021-09-24 0:22 ` Vito Caputo 2021-09-24 1:16 ` Kees Cook 2021-09-24 1:34 ` Vito Caputo 2021-09-24 1:42 ` Kees Cook 2021-09-24 13:54 ` Mark Rutland 2021-09-24 14:26 ` Kees Cook 2021-09-27 9:03 ` Mark Rutland 2021-09-27 18:07 ` Kees Cook 2021-09-27 20:50 ` Josh Poimboeuf 2021-09-29 18:54 ` Kees Cook 2021-09-29 19:00 ` Mark Brown 2021-09-29 19:26 ` Kees Cook 2021-09-29 19:40 ` Peter Zijlstra [this message] 2021-09-29 21:10 ` Josh Poimboeuf 2021-09-27 9:16 ` David Laight 2021-09-29 8:48 ` Peter Zijlstra 2021-09-24 2:13 ` Andrew Morton 2021-09-24 6:04 ` Kees Cook 2021-09-24 13:29 ` Peter Zijlstra 2021-09-30 18:05 ` Stephen Brennan 2021-09-30 18:12 ` Kees Cook
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20210929194026.GA4323@worktop.programming.kicks-ass.net \ --to=peterz@infradead.org \ --cc=Kenta.Tada@sony.com \ --cc=akpm@linux-foundation.org \ --cc=amistry@google.com \ --cc=andrea.righi@canonical.com \ --cc=axboe@kernel.dk \ --cc=bp@alien8.de \ --cc=bristot@redhat.com \ --cc=christian.brauner@ubuntu.com \ --cc=dave.hansen@linux.intel.com \ --cc=deller@gmx.de \ --cc=ebiederm@xmission.com \ --cc=hpa@zytor.com \ --cc=jannh@google.com \ --cc=jpoimboe@redhat.com \ --cc=kaleshsingh@google.com \ --cc=keescook@chromium.org \ --cc=laijs@linux.alibaba.com \ --cc=legion@kernel.org \ --cc=linux-fsdevel@vger.kernel.org \ --cc=linux-hardening@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=luto@kernel.org \ --cc=mark.rutland@arm.com \ --cc=metze@samba.org \ --cc=mhocko@suse.com \ --cc=michael.weiss@aisec.fraunhofer.de \ --cc=mingo@redhat.com \ --cc=ohoono.kwon@samsung.com \ --cc=tglx@linutronix.de \ --cc=vcaputo@pengaru.com \ --cc=x86@kernel.org \ --cc=yifeifz2@illinois.edu \ --cc=zhengqi.arch@bytedance.com \ --subject='Re: [PATCH] proc: Disable /proc/$pid/wchan' \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).