From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thomas Gleixner Subject: [patch V2 18/29] lockdep: Move stack trace logic into check_prev_add() Date: Thu, 18 Apr 2019 10:41:37 +0200 Message-ID: <20190418084254.729689921@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, 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 , David Sterba List-Id: iommu@lists.linux-foundation.org VGhlcmUgaXMgb25seSBvbmUgY2FsbGVyIG9mIGNoZWNrX3ByZXZfYWRkKCkgd2hpY2ggaGFuZHMg aW4gYSB6ZXJvZWQgc3RydWN0CnN0YWNrIHRyYWNlIGFuZCBhIGZ1bmN0aW9uIHBvaW50ZXIgdG8g c2F2ZV9zdGFjaygpLiBJbnNpZGUgY2hlY2tfcHJldl9hZGQoKQp0aGUgc3RhY2tfdHJhY2Ugc3Ry dWN0IGlzIGNoZWNrZWQgZm9yIGJlaW5nIGVtcHR5LCB3aGljaCBpcyBhbHdheXMKdHJ1ZS4gQmFz ZWQgb24gdGhhdCBvbmUgY29kZSBwYXRoIHN0b3JlcyBhIHN0YWNrIHRyYWNlIHdoaWNoIGlzIHVu dXNlZC4gVGhlCmNvbW1lbnQgdGhlcmUgZG9lcyBub3QgbWFrZSBzZW5zZSBlaXRoZXIuIEl0J3Mg YWxsIGxlZnRvdmVycyBmcm9tCmhpc3RvcmljYWwgbG9ja2RlcCBjb2RlIChjcm9zcyByZWxlYXNl KS4KCk1vdmUgdGhlIHZhcmlhYmxlIGludG8gY2hlY2tfcHJldl9hZGQoKSBpdHNlbGYgYW5kIGNs ZWFudXAgdGhlIG5vbnNlbnNpY2FsCmNoZWNrcyBhbmQgdGhlIHBvaW50bGVzcyBzdGFjayB0cmFj ZSByZWNvcmRpbmcuCgpTaWduZWQtb2ZmLWJ5OiBUaG9tYXMgR2xlaXhuZXIgPHRnbHhAbGludXRy b25peC5kZT4KLS0tCiBrZXJuZWwvbG9ja2luZy9sb2NrZGVwLmMgfCAgIDMwICsrKysrKysrLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDggaW5zZXJ0aW9ucygrKSwgMjIg ZGVsZXRpb25zKC0pCgotLS0gYS9rZXJuZWwvbG9ja2luZy9sb2NrZGVwLmMKKysrIGIva2VybmVs L2xvY2tpbmcvbG9ja2RlcC5jCkBAIC0yMTU4LDEwICsyMTU4LDEwIEBAIGNoZWNrX2RlYWRsb2Nr KHN0cnVjdCB0YXNrX3N0cnVjdCAqY3VyciwKICAqLwogc3RhdGljIGludAogY2hlY2tfcHJldl9h ZGQoc3RydWN0IHRhc2tfc3RydWN0ICpjdXJyLCBzdHJ1Y3QgaGVsZF9sb2NrICpwcmV2LAotCSAg ICAgICBzdHJ1Y3QgaGVsZF9sb2NrICpuZXh0LCBpbnQgZGlzdGFuY2UsIHN0cnVjdCBzdGFja190 cmFjZSAqdHJhY2UsCi0JICAgICAgIGludCAoKnNhdmUpKHN0cnVjdCBzdGFja190cmFjZSAqdHJh Y2UpKQorCSAgICAgICBzdHJ1Y3QgaGVsZF9sb2NrICpuZXh0LCBpbnQgZGlzdGFuY2UpCiB7CiAJ c3RydWN0IGxvY2tfbGlzdCAqdW5pbml0aWFsaXplZF92YXIodGFyZ2V0X2VudHJ5KTsKKwlzdHJ1 Y3Qgc3RhY2tfdHJhY2UgdHJhY2U7CiAJc3RydWN0IGxvY2tfbGlzdCAqZW50cnk7CiAJc3RydWN0 IGxvY2tfbGlzdCB0aGlzOwogCWludCByZXQ7CkBAIC0yMTk2LDE3ICsyMTk2LDggQEAgY2hlY2tf cHJldl9hZGQoc3RydWN0IHRhc2tfc3RydWN0ICpjdXJyLAogCXRoaXMuY2xhc3MgPSBobG9ja19j bGFzcyhuZXh0KTsKIAl0aGlzLnBhcmVudCA9IE5VTEw7CiAJcmV0ID0gY2hlY2tfbm9uY2lyY3Vs YXIoJnRoaXMsIGhsb2NrX2NsYXNzKHByZXYpLCAmdGFyZ2V0X2VudHJ5KTsKLQlpZiAodW5saWtl bHkoIXJldCkpIHsKLQkJaWYgKCF0cmFjZS0+ZW50cmllcykgewotCQkJLyoKLQkJCSAqIElmIEBz YXZlIGZhaWxzIGhlcmUsIHRoZSBwcmludGluZyBtaWdodCB0cmlnZ2VyCi0JCQkgKiBhIFdBUk4g YnV0IGJlY2F1c2Ugb2YgdGhlICFucl9lbnRyaWVzIGl0IHNob3VsZAotCQkJICogbm90IGRvIGJh ZCB0aGluZ3MuCi0JCQkgKi8KLQkJCXNhdmUodHJhY2UpOwotCQl9CisJaWYgKHVubGlrZWx5KCFy ZXQpKQogCQlyZXR1cm4gcHJpbnRfY2lyY3VsYXJfYnVnKCZ0aGlzLCB0YXJnZXRfZW50cnksIG5l eHQsIHByZXYpOwotCX0KIAllbHNlIGlmICh1bmxpa2VseShyZXQgPCAwKSkKIAkJcmV0dXJuIHBy aW50X2Jmc19idWcocmV0KTsKIApAQCAtMjI1Myw3ICsyMjQ0LDcgQEAgY2hlY2tfcHJldl9hZGQo c3RydWN0IHRhc2tfc3RydWN0ICpjdXJyLAogCQlyZXR1cm4gcHJpbnRfYmZzX2J1ZyhyZXQpOwog CiAKLQlpZiAoIXRyYWNlLT5lbnRyaWVzICYmICFzYXZlKHRyYWNlKSkKKwlpZiAoIXNhdmVfdHJh Y2UoJnRyYWNlKSkKIAkJcmV0dXJuIDA7CiAKIAkvKgpAQCAtMjI2MiwxNCArMjI1MywxNCBAQCBj aGVja19wcmV2X2FkZChzdHJ1Y3QgdGFza19zdHJ1Y3QgKmN1cnIsCiAJICovCiAJcmV0ID0gYWRk X2xvY2tfdG9fbGlzdChobG9ja19jbGFzcyhuZXh0KSwgaGxvY2tfY2xhc3MocHJldiksCiAJCQkg ICAgICAgJmhsb2NrX2NsYXNzKHByZXYpLT5sb2Nrc19hZnRlciwKLQkJCSAgICAgICBuZXh0LT5h Y3F1aXJlX2lwLCBkaXN0YW5jZSwgdHJhY2UpOworCQkJICAgICAgIG5leHQtPmFjcXVpcmVfaXAs IGRpc3RhbmNlLCAmdHJhY2UpOwogCiAJaWYgKCFyZXQpCiAJCXJldHVybiAwOwogCiAJcmV0ID0g YWRkX2xvY2tfdG9fbGlzdChobG9ja19jbGFzcyhwcmV2KSwgaGxvY2tfY2xhc3MobmV4dCksCiAJ CQkgICAgICAgJmhsb2NrX2NsYXNzKG5leHQpLT5sb2Nrc19iZWZvcmUsCi0JCQkgICAgICAgbmV4 dC0+YWNxdWlyZV9pcCwgZGlzdGFuY2UsIHRyYWNlKTsKKwkJCSAgICAgICBuZXh0LT5hY3F1aXJl X2lwLCBkaXN0YW5jZSwgJnRyYWNlKTsKIAlpZiAoIXJldCkKIAkJcmV0dXJuIDA7CiAKQEAgLTIy ODcsMTIgKzIyNzgsNiBAQCBjaGVja19wcmV2c19hZGQoc3RydWN0IHRhc2tfc3RydWN0ICpjdXJy CiB7CiAJaW50IGRlcHRoID0gY3Vyci0+bG9ja2RlcF9kZXB0aDsKIAlzdHJ1Y3QgaGVsZF9sb2Nr ICpobG9jazsKLQlzdHJ1Y3Qgc3RhY2tfdHJhY2UgdHJhY2UgPSB7Ci0JCS5ucl9lbnRyaWVzID0g MCwKLQkJLm1heF9lbnRyaWVzID0gMCwKLQkJLmVudHJpZXMgPSBOVUxMLAotCQkuc2tpcCA9IDAs Ci0JfTsKIAogCS8qCiAJICogRGVidWdnaW5nIGNoZWNrcy4KQEAgLTIzMTgsNyArMjMwMyw4IEBA IGNoZWNrX3ByZXZzX2FkZChzdHJ1Y3QgdGFza19zdHJ1Y3QgKmN1cnIKIAkJICogYWRkZWQ6CiAJ CSAqLwogCQlpZiAoaGxvY2stPnJlYWQgIT0gMiAmJiBobG9jay0+Y2hlY2spIHsKLQkJCWludCBy ZXQgPSBjaGVja19wcmV2X2FkZChjdXJyLCBobG9jaywgbmV4dCwgZGlzdGFuY2UsICZ0cmFjZSwg c2F2ZV90cmFjZSk7CisJCQlpbnQgcmV0ID0gY2hlY2tfcHJldl9hZGQoY3VyciwgaGxvY2ssIG5l eHQsIGRpc3RhbmNlKTsKKwogCQkJaWYgKCFyZXQpCiAJCQkJcmV0dXJuIDA7CiAKCgpfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGlu ZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVl ZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZng= 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 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 15647C10F0E for ; Thu, 18 Apr 2019 09:34:44 +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 E5498214DA for ; Thu, 18 Apr 2019 09:34:43 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org E5498214DA 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 3345B1520; Thu, 18 Apr 2019 09:34:38 +0000 (UTC) Received: from smtp1.linuxfoundation.org (smtp1.linux-foundation.org [172.17.192.35]) by mail.linuxfoundation.org (Postfix) with ESMTPS id 7157E11B0 for ; Thu, 18 Apr 2019 09:34:36 +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 EFBFA828 for ; Thu, 18 Apr 2019 09:34:35 +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 1hH309-0001su-Qw; Thu, 18 Apr 2019 11:06:38 +0200 Message-Id: <20190418084254.729689921@linutronix.de> User-Agent: quilt/0.65 Date: Thu, 18 Apr 2019 10:41:37 +0200 From: Thomas Gleixner To: LKML Subject: [patch V2 18/29] lockdep: Move stack trace logic into check_prev_add() 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, Johannes Thumshirn , Andrey Ryabinin , Alexey Dobriyan , intel-gfx@lists.freedesktop.org, David Rientjes , 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: <20190418084137.YfA0Lh4VGxarTDcc3wqjOaQvnChcewsQyplmRtwQuzQ@z> There is only one caller of check_prev_add() which hands in a zeroed struct stack trace and a function pointer to save_stack(). Inside check_prev_add() the stack_trace struct is checked for being empty, which is always true. Based on that one code path stores a stack trace which is unused. The comment there does not make sense either. It's all leftovers from historical lockdep code (cross release). Move the variable into check_prev_add() itself and cleanup the nonsensical checks and the pointless stack trace recording. Signed-off-by: Thomas Gleixner --- kernel/locking/lockdep.c | 30 ++++++++---------------------- 1 file changed, 8 insertions(+), 22 deletions(-) --- a/kernel/locking/lockdep.c +++ b/kernel/locking/lockdep.c @@ -2158,10 +2158,10 @@ check_deadlock(struct task_struct *curr, */ static int check_prev_add(struct task_struct *curr, struct held_lock *prev, - struct held_lock *next, int distance, struct stack_trace *trace, - int (*save)(struct stack_trace *trace)) + struct held_lock *next, int distance) { struct lock_list *uninitialized_var(target_entry); + struct stack_trace trace; struct lock_list *entry; struct lock_list this; int ret; @@ -2196,17 +2196,8 @@ check_prev_add(struct task_struct *curr, this.class = hlock_class(next); this.parent = NULL; ret = check_noncircular(&this, hlock_class(prev), &target_entry); - if (unlikely(!ret)) { - if (!trace->entries) { - /* - * If @save fails here, the printing might trigger - * a WARN but because of the !nr_entries it should - * not do bad things. - */ - save(trace); - } + if (unlikely(!ret)) return print_circular_bug(&this, target_entry, next, prev); - } else if (unlikely(ret < 0)) return print_bfs_bug(ret); @@ -2253,7 +2244,7 @@ check_prev_add(struct task_struct *curr, return print_bfs_bug(ret); - if (!trace->entries && !save(trace)) + if (!save_trace(&trace)) return 0; /* @@ -2262,14 +2253,14 @@ check_prev_add(struct task_struct *curr, */ ret = add_lock_to_list(hlock_class(next), hlock_class(prev), &hlock_class(prev)->locks_after, - next->acquire_ip, distance, trace); + next->acquire_ip, distance, &trace); if (!ret) return 0; ret = add_lock_to_list(hlock_class(prev), hlock_class(next), &hlock_class(next)->locks_before, - next->acquire_ip, distance, trace); + next->acquire_ip, distance, &trace); if (!ret) return 0; @@ -2287,12 +2278,6 @@ check_prevs_add(struct task_struct *curr { int depth = curr->lockdep_depth; struct held_lock *hlock; - struct stack_trace trace = { - .nr_entries = 0, - .max_entries = 0, - .entries = NULL, - .skip = 0, - }; /* * Debugging checks. @@ -2318,7 +2303,8 @@ check_prevs_add(struct task_struct *curr * added: */ if (hlock->read != 2 && hlock->check) { - int ret = check_prev_add(curr, hlock, next, distance, &trace, save_trace); + int ret = check_prev_add(curr, hlock, next, distance); + if (!ret) return 0; _______________________________________________ iommu mailing list iommu@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/iommu