From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thomas Gleixner Subject: [patch V2 09/29] mm/kasan: Simplify stacktrace handling Date: Thu, 18 Apr 2019 10:41:28 +0200 Message-ID: <20190418084253.903603121@linutronix.de> References: <20190418084119.056416939@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 , Christoph Hellwig , Alasdair Kergon , Marek Szyprowski , linux-arch@vger.kernel.org, x86@kernel.org, kasan-dev@googlegroups.com, David Rientjes , Andrey Ryabinin , Alexey Dobriyan , intel-gfx@lists.freedesktop.org, Johannes Thumshirn , Akinobu Mita , Steven Rostedt , Josef Bacik , Mike Rapoport , Andy Lutomirski , Josh Poimboeuf , David Sterba List-Id: iommu@lists.linux-foundation.org UmVwbGFjZSB0aGUgaW5kaXJlY3Rpb24gdGhyb3VnaCBzdHJ1Y3Qgc3RhY2tfdHJhY2UgYnkgdXNp bmcgdGhlIHN0b3JhZ2UKYXJyYXkgYmFzZWQgaW50ZXJmYWNlcy4KClNpZ25lZC1vZmYtYnk6IFRo b21hcyBHbGVpeG5lciA8dGdseEBsaW51dHJvbml4LmRlPgpBY2tlZC1ieTogRG1pdHJ5IFZ5dWtv diA8ZHZ5dWtvdkBnb29nbGUuY29tPgpDYzogQW5kcmV5IFJ5YWJpbmluIDxhcnlhYmluaW5Admly dHVvenpvLmNvbT4KQ2M6IEFsZXhhbmRlciBQb3RhcGVua28gPGdsaWRlckBnb29nbGUuY29tPgpD Yzoga2FzYW4tZGV2QGdvb2dsZWdyb3Vwcy5jb20KQ2M6IGxpbnV4LW1tQGt2YWNrLm9yZwotLS0K IG1tL2thc2FuL2NvbW1vbi5jIHwgICAzMCArKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0K IG1tL2thc2FuL3JlcG9ydC5jIHwgICAgNyArKysrLS0tCiAyIGZpbGVzIGNoYW5nZWQsIDE2IGlu c2VydGlvbnMoKyksIDIxIGRlbGV0aW9ucygtKQoKLS0tIGEvbW0va2FzYW4vY29tbW9uLmMKKysr IGIvbW0va2FzYW4vY29tbW9uLmMKQEAgLTQ4LDM0ICs0OCwyOCBAQCBzdGF0aWMgaW5saW5lIGlu dCBpbl9pcnFlbnRyeV90ZXh0KHVuc2lnCiAJCSBwdHIgPCAodW5zaWduZWQgbG9uZykmX19zb2Z0 aXJxZW50cnlfdGV4dF9lbmQpOwogfQogCi1zdGF0aWMgaW5saW5lIHZvaWQgZmlsdGVyX2lycV9z dGFja3Moc3RydWN0IHN0YWNrX3RyYWNlICp0cmFjZSkKK3N0YXRpYyBpbmxpbmUgdW5zaWduZWQg aW50IGZpbHRlcl9pcnFfc3RhY2tzKHVuc2lnbmVkIGxvbmcgKmVudHJpZXMsCisJCQkJCSAgICAg dW5zaWduZWQgaW50IG5yX2VudHJpZXMpCiB7Ci0JaW50IGk7CisJdW5zaWduZWQgaW50IGk7CiAK LQlpZiAoIXRyYWNlLT5ucl9lbnRyaWVzKQotCQlyZXR1cm47Ci0JZm9yIChpID0gMDsgaSA8IHRy YWNlLT5ucl9lbnRyaWVzOyBpKyspCi0JCWlmIChpbl9pcnFlbnRyeV90ZXh0KHRyYWNlLT5lbnRy aWVzW2ldKSkgeworCWZvciAoaSA9IDA7IGkgPCBucl9lbnRyaWVzOyBpKyspIHsKKwkJaWYgKGlu X2lycWVudHJ5X3RleHQoZW50cmllc1tpXSkpIHsKIAkJCS8qIEluY2x1ZGUgdGhlIGlycWVudHJ5 IGZ1bmN0aW9uIGludG8gdGhlIHN0YWNrLiAqLwotCQkJdHJhY2UtPm5yX2VudHJpZXMgPSBpICsg MTsKLQkJCWJyZWFrOworCQkJcmV0dXJuIGkgKyAxOwogCQl9CisJfQorCXJldHVybiBucl9lbnRy aWVzOwogfQogCiBzdGF0aWMgaW5saW5lIGRlcG90X3N0YWNrX2hhbmRsZV90IHNhdmVfc3RhY2so Z2ZwX3QgZmxhZ3MpCiB7CiAJdW5zaWduZWQgbG9uZyBlbnRyaWVzW0tBU0FOX1NUQUNLX0RFUFRI XTsKLQlzdHJ1Y3Qgc3RhY2tfdHJhY2UgdHJhY2UgPSB7Ci0JCS5ucl9lbnRyaWVzID0gMCwKLQkJ LmVudHJpZXMgPSBlbnRyaWVzLAotCQkubWF4X2VudHJpZXMgPSBLQVNBTl9TVEFDS19ERVBUSCwK LQkJLnNraXAgPSAwCi0JfTsKKwl1bnNpZ25lZCBpbnQgbnJfZW50cmllczsKIAotCXNhdmVfc3Rh Y2tfdHJhY2UoJnRyYWNlKTsKLQlmaWx0ZXJfaXJxX3N0YWNrcygmdHJhY2UpOwotCi0JcmV0dXJu IGRlcG90X3NhdmVfc3RhY2soJnRyYWNlLCBmbGFncyk7CisJbnJfZW50cmllcyA9IHN0YWNrX3Ry YWNlX3NhdmUoZW50cmllcywgQVJSQVlfU0laRShlbnRyaWVzKSwgMCk7CisJbnJfZW50cmllcyA9 IGZpbHRlcl9pcnFfc3RhY2tzKGVudHJpZXMsIG5yX2VudHJpZXMpOworCXJldHVybiBzdGFja19k ZXBvdF9zYXZlKGVudHJpZXMsIG5yX2VudHJpZXMsIGZsYWdzKTsKIH0KIAogc3RhdGljIGlubGlu ZSB2b2lkIHNldF90cmFjayhzdHJ1Y3Qga2FzYW5fdHJhY2sgKnRyYWNrLCBnZnBfdCBmbGFncykK LS0tIGEvbW0va2FzYW4vcmVwb3J0LmMKKysrIGIvbW0va2FzYW4vcmVwb3J0LmMKQEAgLTEwMCwx MCArMTAwLDExIEBAIHN0YXRpYyB2b2lkIHByaW50X3RyYWNrKHN0cnVjdCBrYXNhbl90cmEKIHsK IAlwcl9lcnIoIiVzIGJ5IHRhc2sgJXU6XG4iLCBwcmVmaXgsIHRyYWNrLT5waWQpOwogCWlmICh0 cmFjay0+c3RhY2spIHsKLQkJc3RydWN0IHN0YWNrX3RyYWNlIHRyYWNlOworCQl1bnNpZ25lZCBs b25nICplbnRyaWVzOworCQl1bnNpZ25lZCBpbnQgbnJfZW50cmllczsKIAotCQlkZXBvdF9mZXRj aF9zdGFjayh0cmFjay0+c3RhY2ssICZ0cmFjZSk7Ci0JCXByaW50X3N0YWNrX3RyYWNlKCZ0cmFj ZSwgMCk7CisJCW5yX2VudHJpZXMgPSBzdGFja19kZXBvdF9mZXRjaCh0cmFjay0+c3RhY2ssICZl bnRyaWVzKTsKKwkJc3RhY2tfdHJhY2VfcHJpbnQoZW50cmllcywgbnJfZW50cmllcywgMCk7CiAJ fSBlbHNlIHsKIAkJcHJfZXJyKCIoc3RhY2sgaXMgbm90IGF2YWlsYWJsZSlcbiIpOwogCX0KCgpf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZngg bWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0 cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZng= From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-4.0 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_PASS,URIBL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id A2609C10F0E for ; Thu, 18 Apr 2019 09:35:02 +0000 (UTC) Received: from mail.linuxfoundation.org (mail.linuxfoundation.org [140.211.169.12]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 7EDA8214DA for ; Thu, 18 Apr 2019 09:35:02 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 7EDA8214DA Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=linutronix.de Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=iommu-bounces@lists.linux-foundation.org Received: from mail.linux-foundation.org (localhost [127.0.0.1]) by mail.linuxfoundation.org (Postfix) with ESMTP id 0B3881524; Thu, 18 Apr 2019 09:34:57 +0000 (UTC) Received: from smtp1.linuxfoundation.org (smtp1.linux-foundation.org [172.17.192.35]) by mail.linuxfoundation.org (Postfix) with ESMTPS id BF09F1146 for ; Thu, 18 Apr 2019 09:34:55 +0000 (UTC) X-Greylist: domain auto-whitelisted by SQLgrey-1.7.6 Received: from Galois.linutronix.de (Galois.linutronix.de [146.0.238.70]) by smtp1.linuxfoundation.org (Postfix) with ESMTPS id 46DF3823 for ; Thu, 18 Apr 2019 09:34:55 +0000 (UTC) Received: from localhost ([127.0.0.1] helo=nanos.tec.linutronix.de) by Galois.linutronix.de with esmtp (Exim 4.80) (envelope-from ) id 1hH2zp-0001nn-CA; Thu, 18 Apr 2019 11:06:17 +0200 Message-Id: <20190418084253.903603121@linutronix.de> User-Agent: quilt/0.65 Date: Thu, 18 Apr 2019 10:41:28 +0200 From: Thomas Gleixner To: LKML Subject: [patch V2 09/29] mm/kasan: Simplify stacktrace handling References: <20190418084119.056416939@linutronix.de> MIME-Version: 1.0 Cc: Mike Snitzer , David Airlie , Catalin Marinas , Joonas Lahtinen , dri-devel@lists.freedesktop.org, linux-mm@kvack.org, dm-devel@redhat.com, Alexander Potapenko , Christoph Lameter , Christoph Hellwig , Alasdair Kergon , linux-arch@vger.kernel.org, x86@kernel.org, kasan-dev@googlegroups.com, David Rientjes , Andrey Ryabinin , Alexey Dobriyan , intel-gfx@lists.freedesktop.org, Johannes Thumshirn , Maarten Lankhorst , Akinobu Mita , Steven Rostedt , Josef Bacik , Rodrigo Vivi , Mike Rapoport , Jani Nikula , Andy Lutomirski , Josh Poimboeuf , David Sterba , Dmitry Vyukov , Chris Mason , Pekka Enberg , iommu@lists.linux-foundation.org, Daniel Vetter , Andrew Morton , Robin Murphy , linux-btrfs@vger.kernel.org X-BeenThere: iommu@lists.linux-foundation.org X-Mailman-Version: 2.1.12 Precedence: list List-Id: Development issues for Linux IOMMU support List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit Sender: iommu-bounces@lists.linux-foundation.org Errors-To: iommu-bounces@lists.linux-foundation.org Message-ID: <20190418084128.2c2Sf1hiAVL5HPnPfKKSIHsvyG5abDPeM4wtp-zC9nI@z> Replace the indirection through struct stack_trace by using the storage array based interfaces. Signed-off-by: Thomas Gleixner Acked-by: Dmitry Vyukov Cc: Andrey Ryabinin Cc: Alexander Potapenko Cc: kasan-dev@googlegroups.com Cc: linux-mm@kvack.org --- mm/kasan/common.c | 30 ++++++++++++------------------ mm/kasan/report.c | 7 ++++--- 2 files changed, 16 insertions(+), 21 deletions(-) --- a/mm/kasan/common.c +++ b/mm/kasan/common.c @@ -48,34 +48,28 @@ static inline int in_irqentry_text(unsig ptr < (unsigned long)&__softirqentry_text_end); } -static inline void filter_irq_stacks(struct stack_trace *trace) +static inline unsigned int filter_irq_stacks(unsigned long *entries, + unsigned int nr_entries) { - int i; + unsigned int i; - if (!trace->nr_entries) - return; - for (i = 0; i < trace->nr_entries; i++) - if (in_irqentry_text(trace->entries[i])) { + for (i = 0; i < nr_entries; i++) { + if (in_irqentry_text(entries[i])) { /* Include the irqentry function into the stack. */ - trace->nr_entries = i + 1; - break; + return i + 1; } + } + return nr_entries; } static inline depot_stack_handle_t save_stack(gfp_t flags) { unsigned long entries[KASAN_STACK_DEPTH]; - struct stack_trace trace = { - .nr_entries = 0, - .entries = entries, - .max_entries = KASAN_STACK_DEPTH, - .skip = 0 - }; + unsigned int nr_entries; - save_stack_trace(&trace); - filter_irq_stacks(&trace); - - return depot_save_stack(&trace, flags); + nr_entries = stack_trace_save(entries, ARRAY_SIZE(entries), 0); + nr_entries = filter_irq_stacks(entries, nr_entries); + return stack_depot_save(entries, nr_entries, flags); } static inline void set_track(struct kasan_track *track, gfp_t flags) --- a/mm/kasan/report.c +++ b/mm/kasan/report.c @@ -100,10 +100,11 @@ static void print_track(struct kasan_tra { pr_err("%s by task %u:\n", prefix, track->pid); if (track->stack) { - struct stack_trace trace; + unsigned long *entries; + unsigned int nr_entries; - depot_fetch_stack(track->stack, &trace); - print_stack_trace(&trace, 0); + nr_entries = stack_depot_fetch(track->stack, &entries); + stack_trace_print(entries, nr_entries, 0); } else { pr_err("(stack is not available)\n"); } _______________________________________________ iommu mailing list iommu@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/iommu