From patchwork Wed Apr 22 09:57:49 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "gregkh@linuxfoundation.org" X-Patchwork-Id: 227167 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=-6.8 required=3.0 tests=DKIMWL_WL_HIGH, DKIM_SIGNED, DKIM_VALID, HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI, SIGNED_OFF_BY, SPF_HELO_NONE, SPF_PASS, URIBL_BLOCKED, USER_AGENT_GIT 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 C8890C5518C for ; Wed, 22 Apr 2020 10:41:25 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id A4A2F2073A for ; Wed, 22 Apr 2020 10:41:25 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1587552085; bh=/3hD3gpZuo5EJNwa4Qh75iQMX/6jy1eF2zIF3xg+Ru4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=rNw6/QcCMlqlTpR9wp6iTS3OHf+FG8Un+5TYT5aNUyDUsNvcP8QsSJPoVLCqXX2Q8 XbLf8Hj1Zgc2SYyTPoKJyCn6fPsJqmGlqOqoRMZfz2Vy4wRd3eqYk29QEauZ2trKBw GelhZVsD4TLA9q1K6y0usHPC4ExJ39CxAzZkMnFs= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728129AbgDVKlP (ORCPT ); Wed, 22 Apr 2020 06:41:15 -0400 Received: from mail.kernel.org ([198.145.29.99]:56730 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730087AbgDVKUZ (ORCPT ); Wed, 22 Apr 2020 06:20:25 -0400 Received: from localhost (83-86-89-107.cable.dynamic.v4.ziggo.nl [83.86.89.107]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 794FA2075A; Wed, 22 Apr 2020 10:20:24 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1587550824; bh=/3hD3gpZuo5EJNwa4Qh75iQMX/6jy1eF2zIF3xg+Ru4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=vjZKoE/VedMj0r5vIYqNqEK/ilpIaEy8nBSqaOg8CH+sUef3X4TMLux+WR24B1ITE 8wH3BP163jeT9yFzWLnWm8gJEX8ienzneaJ4Bck73LDWg3xqPUNWpOObgh6jK7WDwh wJC1PDMRAmnZjTBbf3uwzbQMFIW500pAUDQKx5yI= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Will Deacon , "Paul E. McKenney" , Davidlohr Bueso , Josh Triplett , Peter Zijlstra Subject: [PATCH 5.4 108/118] locktorture: Print ratio of acquisitions, not failures Date: Wed, 22 Apr 2020 11:57:49 +0200 Message-Id: <20200422095048.737340145@linuxfoundation.org> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20200422095031.522502705@linuxfoundation.org> References: <20200422095031.522502705@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Sender: stable-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: stable@vger.kernel.org From: Paul E. McKenney commit 80c503e0e68fbe271680ab48f0fe29bc034b01b7 upstream. The __torture_print_stats() function in locktorture.c carefully initializes local variable "min" to statp[0].n_lock_acquired, but then compares it to statp[i].n_lock_fail. Given that the .n_lock_fail field should normally be zero, and given the initialization, it seems reasonable to display the maximum and minimum number acquisitions instead of miscomputing the maximum and minimum number of failures. This commit therefore switches from failures to acquisitions. And this turns out to be not only a day-zero bug, but entirely my own fault. I hate it when that happens! Fixes: 0af3fe1efa53 ("locktorture: Add a lock-torture kernel module") Reported-by: Will Deacon Signed-off-by: Paul E. McKenney Acked-by: Will Deacon Cc: Davidlohr Bueso Cc: Josh Triplett Cc: Peter Zijlstra Signed-off-by: Greg Kroah-Hartman --- kernel/locking/locktorture.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) --- a/kernel/locking/locktorture.c +++ b/kernel/locking/locktorture.c @@ -697,10 +697,10 @@ static void __torture_print_stats(char * if (statp[i].n_lock_fail) fail = true; sum += statp[i].n_lock_acquired; - if (max < statp[i].n_lock_fail) - max = statp[i].n_lock_fail; - if (min > statp[i].n_lock_fail) - min = statp[i].n_lock_fail; + if (max < statp[i].n_lock_acquired) + max = statp[i].n_lock_acquired; + if (min > statp[i].n_lock_acquired) + min = statp[i].n_lock_acquired; } page += sprintf(page, "%s: Total: %lld Max/Min: %ld/%ld %s Fail: %d %s\n",