Received: by 2002:a05:6a10:a0d1:0:0:0:0 with SMTP id j17csp590230pxa; Tue, 11 Aug 2020 10:06:48 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxTTlOLaS3BF6fWeIvI7m/36HapCzZAQTdWhCtj+lt8tTY8dJ8vEiz2Ci1FuDSGZiQtDW1K X-Received: by 2002:a17:906:aed4:: with SMTP id me20mr28621291ejb.141.1597165608103; Tue, 11 Aug 2020 10:06:48 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1597165608; cv=none; d=google.com; s=arc-20160816; b=MGntdDzG0VAaBqDDDPfDhnvWKU7VYIFSHUQmd63ikefGbCd4w2JtL8t1tJyi+EGAkG MUW+Sm1At0+LTbhqrB/YsqEmgBRwqNe2Hbt3kco3LKf1GtZKvg/L8k40fR6kAhZozf32 q2iiVkllD3/0iiTp8hzR5+20GgZRHvGoZXKgZGQkH9Cjay6l1WDDrJp1Tdd4eK5tj85b K6BzCBpUOzoAA6IrKNNnMpVdfOXOdcrYtRwSycc45ZH7LJPOUDymm8i1WWH3RYkr+Jq7 bBFke13MYkGmH5H7lmZyoxRoGN9n15R9jbo+7vpZA8vni58tTeBTdXnScP8ED3MD+Ytm AZQg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:dkim-signature; bh=gCeRiVh6vPaecDrIdWPljTkapUhpeRVTmR3kunsiO48=; b=L6sm8APPgN52bXALhQMWeUMTLuwWfeiCYhniAR313uSrxHpRSoGjm4qSGYLGAegoez 8gL6mmjIroISn8CMsjUqjVeMohayuHhTyQ2OUEc/EY4DKPoFCSNzMYvS1xm2Hd11K4xt 7fAepTqS/ooTqka4XIQxFV3F5Yb8Kx0U8SEyNUJyZI1T7JgSXN/v7PR6HPoWqX7nXtNn a8D4c7IxgpdaTQnYVmdfaO9pJonVWO9nNPYdTI8HAA/TqUeOtgNzX1CN6gpBvq5DC+5S +vO0AoG6AoGb8ggVg1F3BgC+/iccdw0POiD78I9zfnGka5d6yMFV/XBV1IcKNkPZJdFA FQkA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=rpYoSTAj; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id a11si12616120edv.236.2020.08.11.10.06.24; Tue, 11 Aug 2020 10:06:48 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=rpYoSTAj; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729175AbgHKREG (ORCPT + 99 others); Tue, 11 Aug 2020 13:04:06 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:46412 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729046AbgHKREE (ORCPT ); Tue, 11 Aug 2020 13:04:04 -0400 Received: from mail-ot1-x342.google.com (mail-ot1-x342.google.com [IPv6:2607:f8b0:4864:20::342]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 71281C061787 for ; Tue, 11 Aug 2020 10:04:04 -0700 (PDT) Received: by mail-ot1-x342.google.com with SMTP id e11so10666918otk.4 for ; Tue, 11 Aug 2020 10:04:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=gCeRiVh6vPaecDrIdWPljTkapUhpeRVTmR3kunsiO48=; b=rpYoSTAjwv042WPkWR7I2ZB1OvMlxvCpJvkeO0KXMjmrhffrXd2YA9eryzKSK29lUI KroJeWEJB6Zd+u9D1rYfoeb2xyw3xN9kTPb5f0w40sUkH+j0rIZW7AtgOdhOie/VuTUL SyWvEgRsTphX8aiKjqvsia+Drj7MbtvcynPYiETLJ3tAb2pm/Te8HhTykkOmcCR9rNWT qxrMroHFWWXsWwA405t9eI6amsm1U0qbIaytVeE7lxjbh2TuoS+2cesWNaaeqCE0SALa C62tGi6L4uAK2jPtFoYjMSH29ZRfu56/Tku0st9M218nGziuHkpoksEQGCMLdKlf6LNS /+Ww== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=gCeRiVh6vPaecDrIdWPljTkapUhpeRVTmR3kunsiO48=; b=tGdNXXJ8DvncYOsg5fPlSo6M7vQx14Oa0oCCS2J+hsIcg7ckk0wu5CRrLPGtaq6gZE AVvpJYjV5jHvToZ0pfAXdcFFIA2e3fySAQCWOc4vtqXk+DeLQ9lIvJ99G+CUQ2cGl10+ abCGEUX/i8/zSkTbjHCI/fIAxou7vyoi2HWitZJtTmZnjeKOg778J3kOZIQrsBkOFWRv d9nckrVwB75n4PdNgxaxTvO7EWmUflDyfpcPDWbkzBKcs1+jr8XlUfI5FKo7/EBaIydk erdutyyMCGX76srtdQHNGIeDSrWj/Q6tasaeyWvVqwX+NePHkmNEoklXF5MpRzALc/SI I7yQ== X-Gm-Message-State: AOAM5314DXr2I43fzjjTJ07j8Kq9IOIJs2tH3HqLt28C0LpyLyLtfgTZ ICN3xxZdSx7wxTJCr9XjECUfwS2XivIsSuJaFCfWVg== X-Received: by 2002:a9d:450a:: with SMTP id w10mr5892233ote.327.1597165442676; Tue, 11 Aug 2020 10:04:02 -0700 (PDT) MIME-Version: 1.0 References: <20200810213257.438861-1-urielguajardojr@gmail.com> <20200810214328.GM3982@worktop.programming.kicks-ass.net> In-Reply-To: <20200810214328.GM3982@worktop.programming.kicks-ass.net> From: Uriel Guajardo Date: Tue, 11 Aug 2020 12:03:51 -0500 Message-ID: Subject: Re: [PATCH] kunit: added lockdep support To: Peter Zijlstra Cc: Uriel Guajardo , Brendan Higgins , mingo@redhat.com, will@kernel.org, "open list:KERNEL SELFTEST FRAMEWORK" , kunit-dev@googlegroups.com, Linux Kernel Mailing List Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Mon, Aug 10, 2020 at 4:43 PM Peter Zijlstra wrote: > > On Mon, Aug 10, 2020 at 09:32:57PM +0000, Uriel Guajardo wrote: > > +static inline void kunit_check_locking_bugs(struct kunit *test, > > + unsigned long saved_preempt_count) > > +{ > > + preempt_count_set(saved_preempt_count); > > +#ifdef CONFIG_TRACE_IRQFLAGS > > + if (softirq_count()) > > + current->softirqs_enabled = 0; > > + else > > + current->softirqs_enabled = 1; > > +#endif > > +#if IS_ENABLED(CONFIG_LOCKDEP) > > + local_irq_disable(); > > + if (!debug_locks) { > > + kunit_set_failure(test); > > + lockdep_reset(); > > + } > > + local_irq_enable(); > > +#endif > > +} > > Unless you can guarantee this runs before SMP brinup, that > lockdep_reset() is terminally broken. Good point. KUnit is initialized after SMP is set up, and KUnit can also be built as a module, so it's not a guarantee that we can make. Is there any other way to turn lockdep back on after we detect a failure? It would be ideal if lockdep could still run in the next test case after a failure in a previous one. I suppose we could only display the first failure that occurs, similar to how lockdep does it. But it could also be useful to developers if they saw failures in subsequent test cases, with the knowledge that those failures may be unreliable.