From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thomas Gleixner Subject: [patch V3 05/29] proc: Simplify task stack retrieval Date: Thu, 25 Apr 2019 11:44:58 +0200 Message-ID: <20190425094801.589304463@linutronix.de> References: <20190425094453.875139013@linutronix.de> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: LKML Cc: Mike Snitzer , David Airlie , Catalin Marinas , dri-devel@lists.freedesktop.org, linux-mm@kvack.org, dm-devel@redhat.com, Alexander Potapenko , Christoph Lameter , Miroslav Benes , Christoph Hellwig , Alasdair Kergon , Marek Szyprowski , linux-arch@vger.kernel.org, x86@kernel.org, kasan-dev@googlegroups.com, Johannes Thumshirn , Andrey Ryabinin , Alexey Dobriyan , intel-gfx@lists.freedesktop.org, David Rientjes , Akinobu Mita , Steven Rostedt , Josef Bacik , Mike Rapoport , Andy Lutomirski , Josh Poimboeuf List-Id: linux-arch.vger.kernel.org UmVwbGFjZSB0aGUgaW5kaXJlY3Rpb24gdGhyb3VnaCBzdHJ1Y3Qgc3RhY2tfdHJhY2Ugd2l0aCBh biBpbnZvY2F0aW9uIG9mCnRoZSBzdG9yYWdlIGFycmF5IGJhc2VkIGludGVyZmFjZS4KClNpZ25l ZC1vZmYtYnk6IFRob21hcyBHbGVpeG5lciA8dGdseEBsaW51dHJvbml4LmRlPgpSZXZpZXdlZC1i eTogQWxleGV5IERvYnJpeWFuIDxhZG9icml5YW5AZ21haWwuY29tPgpDYzogQW5kcmV3IE1vcnRv biA8YWtwbUBsaW51eC1mb3VuZGF0aW9uLm9yZz4KLS0tCiBmcy9wcm9jL2Jhc2UuYyB8ICAgMTQg KysrKystLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA1IGluc2VydGlvbnMoKyksIDkgZGVsZXRp b25zKC0pCgotLS0gYS9mcy9wcm9jL2Jhc2UuYworKysgYi9mcy9wcm9jL2Jhc2UuYwpAQCAtNDA3 LDcgKzQwNyw2IEBAIHN0YXRpYyB2b2lkIHVubG9ja190cmFjZShzdHJ1Y3QgdGFza19zdHIKIHN0 YXRpYyBpbnQgcHJvY19waWRfc3RhY2soc3RydWN0IHNlcV9maWxlICptLCBzdHJ1Y3QgcGlkX25h bWVzcGFjZSAqbnMsCiAJCQkgIHN0cnVjdCBwaWQgKnBpZCwgc3RydWN0IHRhc2tfc3RydWN0ICp0 YXNrKQogewotCXN0cnVjdCBzdGFja190cmFjZSB0cmFjZTsKIAl1bnNpZ25lZCBsb25nICplbnRy aWVzOwogCWludCBlcnI7CiAKQEAgLTQzMCwyMCArNDI5LDE3IEBAIHN0YXRpYyBpbnQgcHJvY19w aWRfc3RhY2soc3RydWN0IHNlcV9maWwKIAlpZiAoIWVudHJpZXMpCiAJCXJldHVybiAtRU5PTUVN OwogCi0JdHJhY2UubnJfZW50cmllcwk9IDA7Ci0JdHJhY2UubWF4X2VudHJpZXMJPSBNQVhfU1RB Q0tfVFJBQ0VfREVQVEg7Ci0JdHJhY2UuZW50cmllcwkJPSBlbnRyaWVzOwotCXRyYWNlLnNraXAJ CT0gMDsKLQogCWVyciA9IGxvY2tfdHJhY2UodGFzayk7CiAJaWYgKCFlcnIpIHsKLQkJdW5zaWdu ZWQgaW50IGk7CisJCXVuc2lnbmVkIGludCBpLCBucl9lbnRyaWVzOwogCi0JCXNhdmVfc3RhY2tf dHJhY2VfdHNrKHRhc2ssICZ0cmFjZSk7CisJCW5yX2VudHJpZXMgPSBzdGFja190cmFjZV9zYXZl X3Rzayh0YXNrLCBlbnRyaWVzLAorCQkJCQkJICBNQVhfU1RBQ0tfVFJBQ0VfREVQVEgsIDApOwog Ci0JCWZvciAoaSA9IDA7IGkgPCB0cmFjZS5ucl9lbnRyaWVzOyBpKyspIHsKKwkJZm9yIChpID0g MDsgaSA8IG5yX2VudHJpZXM7IGkrKykgewogCQkJc2VxX3ByaW50ZihtLCAiWzwwPl0gJXBCXG4i LCAodm9pZCAqKWVudHJpZXNbaV0pOwogCQl9CisKIAkJdW5sb2NrX3RyYWNlKHRhc2spOwogCX0K IAlrZnJlZShlbnRyaWVzKTsKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVz a3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9p bnRlbC1nZng= From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from Galois.linutronix.de ([146.0.238.70]:58113 "EHLO Galois.linutronix.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729611AbfDYKBB (ORCPT ); Thu, 25 Apr 2019 06:01:01 -0400 Message-ID: <20190425094801.589304463@linutronix.de> Date: Thu, 25 Apr 2019 11:44:58 +0200 From: Thomas Gleixner Subject: [patch V3 05/29] proc: Simplify task stack retrieval References: <20190425094453.875139013@linutronix.de> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Sender: linux-arch-owner@vger.kernel.org List-ID: To: LKML Cc: Josh Poimboeuf , x86@kernel.org, Andy Lutomirski , Alexey Dobriyan , Andrew Morton , Steven Rostedt , Alexander Potapenko , Christoph Lameter , Pekka Enberg , linux-mm@kvack.org, David Rientjes , Catalin Marinas , Dmitry Vyukov , Andrey Ryabinin , kasan-dev@googlegroups.com, Mike Rapoport , Akinobu Mita , Christoph Hellwig , iommu@lists.linux-foundation.org, Robin Murphy , Marek Szyprowski , Johannes Thumshirn , David Sterba , Chris Mason , Josef Bacik , linux-btrfs@vger.kernel.org, dm-devel@redhat.com, Mike Snitzer , Alasdair Kergon , Daniel Vetter , intel-gfx@lists.freedesktop.org, Joonas Lahtinen , Maarten Lankhorst , dri-devel@lists.freedesktop.org, David Airlie , Jani Nikula , Rodrigo Vivi , Tom Zanussi , Miroslav Benes , linux-arch@vger.kernel.org Message-ID: <20190425094458.stEWCjV1wgPZwQiks-GXJbfNYkAq5XDzsCzJy86hNjk@z> Replace the indirection through struct stack_trace with an invocation of the storage array based interface. Signed-off-by: Thomas Gleixner Reviewed-by: Alexey Dobriyan Cc: Andrew Morton --- fs/proc/base.c | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) --- a/fs/proc/base.c +++ b/fs/proc/base.c @@ -407,7 +407,6 @@ static void unlock_trace(struct task_str static int proc_pid_stack(struct seq_file *m, struct pid_namespace *ns, struct pid *pid, struct task_struct *task) { - struct stack_trace trace; unsigned long *entries; int err; @@ -430,20 +429,17 @@ static int proc_pid_stack(struct seq_fil if (!entries) return -ENOMEM; - trace.nr_entries = 0; - trace.max_entries = MAX_STACK_TRACE_DEPTH; - trace.entries = entries; - trace.skip = 0; - err = lock_trace(task); if (!err) { - unsigned int i; + unsigned int i, nr_entries; - save_stack_trace_tsk(task, &trace); + nr_entries = stack_trace_save_tsk(task, entries, + MAX_STACK_TRACE_DEPTH, 0); - for (i = 0; i < trace.nr_entries; i++) { + for (i = 0; i < nr_entries; i++) { seq_printf(m, "[<0>] %pB\n", (void *)entries[i]); } + unlock_trace(task); } kfree(entries);