From patchwork Tue Mar 21 01:05:19 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Paul E. McKenney" X-Patchwork-Id: 72578 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:604a:0:0:0:0:0 with SMTP id j10csp1526322wrt; Mon, 20 Mar 2023 18:14:47 -0700 (PDT) X-Google-Smtp-Source: AK7set/k+T11Z5Qfiv7v8SJfsyBKNynje5DOjWZwrCeWE2gg4pnqTrFW5zZlnhANvN852nloB3JA X-Received: by 2002:a17:902:ecd1:b0:19f:3e33:b845 with SMTP id a17-20020a170902ecd100b0019f3e33b845mr541019plh.26.1679361287297; Mon, 20 Mar 2023 18:14:47 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1679361287; cv=none; d=google.com; s=arc-20160816; b=khfXqXwVyer0wpyG5WUHQDEvK0lgVGdkgjGUnbO2RZeqhaFU2e0y/JHmwYTZDdENQt 3IEc+CWctsLY1rGm6aeVO7jZ2Q3Hgz+sjkJkBX/0WEeRtoNDtJI7Yj7eYWb4XnNxmvy0 3z/fJa/T2ZO06AGbMBdspKXVkOFpcD/LmC0cTvFTg8qvaT8rW+MH9xd9bRDRQdzJdrN+ +mdMJ5v2nNwuq1722LvixSzQcHOpxsYkoMKgWjgHBQ7AvzluN+333gSkYEf1eP0sLdLD OhVS9Kp8P/a1qLisP393mgeYjrZ8RHTg8GF5Lh7SGOhuNffc1h2smfZKTqa8ajE3tjpT 07dw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=QK1MtDcPBA8Jp3hz/Nse2zFakfEmNWVnqS7vR91DC7g=; b=PrIifJ7EsLHQ5NDjWenfgoxjy2OOyRDIZpYYihnwIfbbEQSoPKfYql1GPJ2Hw4cD6I yn/v5a5IMEMPXyib+YS/S+XNNvFTkBybYrVESh6w+CAZop5c7kMG8621/34bKGxB/+UF a7QXdO4fcK399zwHclmEz90QMxkbG8dDkfGo8lH/1LL0ebk0tri3lfMOHXmndj2ET2nP +z0KFuZT82MiVcjglB6aYqzHEnKbPkey7DFWyfEKTc5BdQAQ3VaupgdHgu+gorfR8eq1 g7ehaiJfNHernozoT375izatnS5PAh1u6oeBAkDxQ35mlkm+vty+IBYlQ3y8SVhwW/lp c61Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b="bZ6t/HZM"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id x9-20020a170902ec8900b001a1a5d21d5csi12416603plg.110.2023.03.20.18.14.35; Mon, 20 Mar 2023 18:14:47 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b="bZ6t/HZM"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230150AbjCUBHi (ORCPT + 99 others); Mon, 20 Mar 2023 21:07:38 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54846 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230151AbjCUBHK (ORCPT ); Mon, 20 Mar 2023 21:07:10 -0400 Received: from ams.source.kernel.org (ams.source.kernel.org [IPv6:2604:1380:4601:e00::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C2D4134F64; Mon, 20 Mar 2023 18:06:30 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ams.source.kernel.org (Postfix) with ESMTPS id F0024B80AB3; Tue, 21 Mar 2023 01:05:51 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id B114CC433D2; Tue, 21 Mar 2023 01:05:50 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1679360750; bh=rNKZAQsOBSddrTeimVzkLsSvTneELmVWXWc81aLl3dY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=bZ6t/HZMppjZUemKwkL/DsCr+tlPbzx+ZsCO6luvSYXsc5pyuKhRm+NBEcbKzUYdV oS0kDZbzxZ/kywDvGv7Qnfr29gioYvhuB96JaLiQrGUkEZBF/CYGp9fr3BoITY8Nix QjNMUnIxwSbGY2WqtNJJFveBvT3kwAF9TigDbP7PTVguAn5gmVNCgFNgtobkCZ+VRj Sxxh3HEp4VkCL1V+90DEPzAVPRz65dSB+4TKu5GjnZc1hDj2xkZPzESRYR6QbWR4Ej /R63pDp7dGFAgsXoIeDvadVuieJqy1tI0LGgLlQGjTA3JXGfqpegmLCZNSM9hDjmeH vzUVOooSZN5AQ== Received: by paulmck-ThinkPad-P72.home (Postfix, from userid 1000) id 607B11540395; Mon, 20 Mar 2023 18:05:50 -0700 (PDT) From: "Paul E. McKenney" To: linux-kernel@vger.kernel.org, linux-arch@vger.kernel.org, kernel-team@meta.com, mingo@kernel.org Cc: stern@rowland.harvard.edu, parri.andrea@gmail.com, will@kernel.org, peterz@infradead.org, boqun.feng@gmail.com, npiggin@gmail.com, dhowells@redhat.com, j.alglave@ucl.ac.uk, luc.maranget@inria.fr, akiyks@gmail.com, "Paul E. McKenney" Subject: [PATCH memory-model scripts 01/31] tools/memory-model: Document locking corner cases Date: Mon, 20 Mar 2023 18:05:19 -0700 Message-Id: <20230321010549.51296-1-paulmck@kernel.org> X-Mailer: git-send-email 2.40.0.rc2 In-Reply-To: <4e5839bb-e980-4931-a550-3548d025a32a@paulmck-laptop> References: <4e5839bb-e980-4931-a550-3548d025a32a@paulmck-laptop> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED, SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1760937941098357992?= X-GMAIL-MSGID: =?utf-8?q?1760937941098357992?= Most Linux-kernel uses of locking are straightforward, but there are corner-case uses that rely on less well-known aspects of the lock and unlock primitives. This commit therefore adds a locking.txt and litmus tests in Documentation/litmus-tests/locking to explain these corner-case uses. Signed-off-by: Paul E. McKenney Reviewed-by: Akira Yokosawa --- .../litmus-tests/locking/DCL-broken.litmus | 55 +++ .../litmus-tests/locking/DCL-fixed.litmus | 56 +++ .../litmus-tests/locking/RM-broken.litmus | 42 +++ .../litmus-tests/locking/RM-fixed.litmus | 42 +++ tools/memory-model/Documentation/locking.txt | 320 ++++++++++++++++++ 5 files changed, 515 insertions(+) create mode 100644 Documentation/litmus-tests/locking/DCL-broken.litmus create mode 100644 Documentation/litmus-tests/locking/DCL-fixed.litmus create mode 100644 Documentation/litmus-tests/locking/RM-broken.litmus create mode 100644 Documentation/litmus-tests/locking/RM-fixed.litmus create mode 100644 tools/memory-model/Documentation/locking.txt diff --git a/Documentation/litmus-tests/locking/DCL-broken.litmus b/Documentation/litmus-tests/locking/DCL-broken.litmus new file mode 100644 index 000000000000..cfaa25ff82b1 --- /dev/null +++ b/Documentation/litmus-tests/locking/DCL-broken.litmus @@ -0,0 +1,55 @@ +C DCL-broken + +(* + * Result: Sometimes + * + * This litmus test demonstrates more than just locking is required to + * correctly implement double-checked locking. + *) + +{ + int flag; + int data; + int lck; +} + +P0(int *flag, int *data, int *lck) +{ + int r0; + int r1; + int r2; + + r0 = READ_ONCE(*flag); + if (r0 == 0) { + spin_lock(lck); + r1 = READ_ONCE(*flag); + if (r1 == 0) { + WRITE_ONCE(*data, 1); + WRITE_ONCE(*flag, 1); + } + spin_unlock(lck); + } + r2 = READ_ONCE(*data); +} + +P1(int *flag, int *data, int *lck) +{ + int r0; + int r1; + int r2; + + r0 = READ_ONCE(*flag); + if (r0 == 0) { + spin_lock(lck); + r1 = READ_ONCE(*flag); + if (r1 == 0) { + WRITE_ONCE(*data, 1); + WRITE_ONCE(*flag, 1); + } + spin_unlock(lck); + } + r2 = READ_ONCE(*data); +} + +locations [flag;data;lck;0:r0;0:r1;1:r0;1:r1] +exists (0:r2=0 \/ 1:r2=0) diff --git a/Documentation/litmus-tests/locking/DCL-fixed.litmus b/Documentation/litmus-tests/locking/DCL-fixed.litmus new file mode 100644 index 000000000000..579d6c246f16 --- /dev/null +++ b/Documentation/litmus-tests/locking/DCL-fixed.litmus @@ -0,0 +1,56 @@ +C DCL-fixed + +(* + * Result: Never + * + * This litmus test demonstrates that double-checked locking can be + * reliable given proper use of smp_load_acquire() and smp_store_release() + * in addition to the locking. + *) + +{ + int flag; + int data; + int lck; +} + +P0(int *flag, int *data, int *lck) +{ + int r0; + int r1; + int r2; + + r0 = smp_load_acquire(flag); + if (r0 == 0) { + spin_lock(lck); + r1 = READ_ONCE(*flag); + if (r1 == 0) { + WRITE_ONCE(*data, 1); + smp_store_release(flag, 1); + } + spin_unlock(lck); + } + r2 = READ_ONCE(*data); +} + +P1(int *flag, int *data, int *lck) +{ + int r0; + int r1; + int r2; + + r0 = smp_load_acquire(flag); + if (r0 == 0) { + spin_lock(lck); + r1 = READ_ONCE(*flag); + if (r1 == 0) { + WRITE_ONCE(*data, 1); + smp_store_release(flag, 1); + } + spin_unlock(lck); + } + r2 = READ_ONCE(*data); +} + +locations [flag;data;lck;0:r0;0:r1;1:r0;1:r1] +exists (0:r2=0 \/ 1:r2=0) diff --git a/Documentation/litmus-tests/locking/RM-broken.litmus b/Documentation/litmus-tests/locking/RM-broken.litmus new file mode 100644 index 000000000000..c586ae4b547d --- /dev/null +++ b/Documentation/litmus-tests/locking/RM-broken.litmus @@ -0,0 +1,42 @@ +C RM-broken + +(* + * Result: DEADLOCK + * + * This litmus test demonstrates that the old "roach motel" approach + * to locking, where code can be freely moved into critical sections, + * cannot be used in the Linux kernel. + *) + +{ + int lck; + int x; + int y; +} + +P0(int *x, int *y, int *lck) +{ + int r2; + + spin_lock(lck); + r2 = atomic_inc_return(y); + WRITE_ONCE(*x, 1); + spin_unlock(lck); +} + +P1(int *x, int *y, int *lck) +{ + int r0; + int r1; + int r2; + + spin_lock(lck); + r0 = READ_ONCE(*x); + r1 = READ_ONCE(*x); + r2 = atomic_inc_return(y); + spin_unlock(lck); +} + +locations [x;lck;0:r2;1:r0;1:r1;1:r2] +filter (y=2 /\ 1:r0=0 /\ 1:r1=1) +exists (1:r2=1) diff --git a/Documentation/litmus-tests/locking/RM-fixed.litmus b/Documentation/litmus-tests/locking/RM-fixed.litmus new file mode 100644 index 000000000000..672856736b42 --- /dev/null +++ b/Documentation/litmus-tests/locking/RM-fixed.litmus @@ -0,0 +1,42 @@ +C RM-fixed + +(* + * Result: Never + * + * This litmus test demonstrates that the old "roach motel" approach + * to locking, where code can be freely moved into critical sections, + * cannot be used in the Linux kernel. + *) + +{ + int lck; + int x; + int y; +} + +P0(int *x, int *y, int *lck) +{ + int r2; + + spin_lock(lck); + r2 = atomic_inc_return(y); + WRITE_ONCE(*x, 1); + spin_unlock(lck); +} + +P1(int *x, int *y, int *lck) +{ + int r0; + int r1; + int r2; + + r0 = READ_ONCE(*x); + r1 = READ_ONCE(*x); + spin_lock(lck); + r2 = atomic_inc_return(y); + spin_unlock(lck); +} + +locations [x;lck;0:r2;1:r0;1:r1;1:r2] +filter (y=2 /\ 1:r0=0 /\ 1:r1=1) +exists (1:r2=1) diff --git a/tools/memory-model/Documentation/locking.txt b/tools/memory-model/Documentation/locking.txt new file mode 100644 index 000000000000..4e05c6d53ab7 --- /dev/null +++ b/tools/memory-model/Documentation/locking.txt @@ -0,0 +1,320 @@ +Locking +======= + +Locking is well-known and the common use cases are straightforward: Any +CPU holding a given lock sees any changes previously seen or made by any +CPU before it previously released that same lock. This last sentence +is the only part of this document that most developers will need to read. + +However, developers who would like to also access lock-protected shared +variables outside of their corresponding locks should continue reading. + + +Locking and Prior Accesses +-------------------------- + +The basic rule of locking is worth repeating: + + Any CPU holding a given lock sees any changes previously seen + or made by any CPU before it previously released that same lock. + +Note that this statement is a bit stronger than "Any CPU holding a +given lock sees all changes made by any CPU during the time that CPU was +previously holding this same lock". For example, consider the following +pair of code fragments: + + /* See MP+polocks.litmus. */ + void CPU0(void) + { + WRITE_ONCE(x, 1); + spin_lock(&mylock); + WRITE_ONCE(y, 1); + spin_unlock(&mylock); + } + + void CPU1(void) + { + spin_lock(&mylock); + r0 = READ_ONCE(y); + spin_unlock(&mylock); + r1 = READ_ONCE(x); + } + +The basic rule guarantees that if CPU0() acquires mylock before CPU1(), +then both r0 and r1 must be set to the value 1. This also has the +consequence that if the final value of r0 is equal to 1, then the final +value of r1 must also be equal to 1. In contrast, the weaker rule would +say nothing about the final value of r1. + + +Locking and Subsequent Accesses +------------------------------- + +The converse to the basic rule also holds: Any CPU holding a given +lock will not see any changes that will be made by any CPU after it +subsequently acquires this same lock. This converse statement is +illustrated by the following litmus test: + + /* See MP+porevlocks.litmus. */ + void CPU0(void) + { + r0 = READ_ONCE(y); + spin_lock(&mylock); + r1 = READ_ONCE(x); + spin_unlock(&mylock); + } + + void CPU1(void) + { + spin_lock(&mylock); + WRITE_ONCE(x, 1); + spin_unlock(&mylock); + WRITE_ONCE(y, 1); + } + +This converse to the basic rule guarantees that if CPU0() acquires +mylock before CPU1(), then both r0 and r1 must be set to the value 0. +This also has the consequence that if the final value of r1 is equal +to 0, then the final value of r0 must also be equal to 0. In contrast, +the weaker rule would say nothing about the final value of r0. + +These examples show only a single pair of CPUs, but the effects of the +locking basic rule extend across multiple acquisitions of a given lock +across multiple CPUs. + + +Double-Checked Locking +---------------------- + +It is well known that more than just a lock is required to make +double-checked locking work correctly, This litmus test illustrates +one incorrect approach: + + /* See Documentation/litmus-tests/locking/DCL-broken.litmus. */ + P0(int *flag, int *data, int *lck) + { + int r0; + int r1; + int r2; + + r0 = READ_ONCE(*flag); + if (r0 == 0) { + spin_lock(lck); + r1 = READ_ONCE(*flag); + if (r1 == 0) { + WRITE_ONCE(*data, 1); + WRITE_ONCE(*flag, 1); + } + spin_unlock(lck); + } + r2 = READ_ONCE(*data); + } + /* P1() is the exactly the same as P0(). */ + +There are two problems. First, there is no ordering between the first +READ_ONCE() of "flag" and the READ_ONCE() of "data". Second, there is +no ordering between the two WRITE_ONCE() calls. It should therefore be +no surprise that "r2" can be zero, and a quick herd7 run confirms this. + +One way to fix this is to use smp_load_acquire() and smp_store_release() +as shown in this corrected version: + + /* See Documentation/litmus-tests/locking/DCL-fixed.litmus. */ + P0(int *flag, int *data, int *lck) + { + int r0; + int r1; + int r2; + + r0 = smp_load_acquire(flag); + if (r0 == 0) { + spin_lock(lck); + r1 = READ_ONCE(*flag); + if (r1 == 0) { + WRITE_ONCE(*data, 1); + smp_store_release(flag, 1); + } + spin_unlock(lck); + } + r2 = READ_ONCE(*data); + } + /* P1() is the exactly the same as P0(). */ + +The smp_load_acquire() guarantees that its load from "flags" will +be ordered before the READ_ONCE() from data, thus solving the first +problem. The smp_store_release() guarantees that its store will be +ordered after the WRITE_ONCE() to "data", solving the second problem. +The smp_store_release() pairs with the smp_load_acquire(), thus ensuring +that the ordering provided by each actually takes effect. Again, a +quick herd7 run confirms this. + +In short, if you access a lock-protected variable without holding the +corresponding lock, you will need to provide additional ordering, in +this case, via the smp_load_acquire() and the smp_store_release(). + + +Ordering Provided by a Lock to CPUs Not Holding That Lock +--------------------------------------------------------- + +It is not necessarily the case that accesses ordered by locking will be +seen as ordered by CPUs not holding that lock. Consider this example: + + /* See Z6.0+pooncelock+pooncelock+pombonce.litmus. */ + void CPU0(void) + { + spin_lock(&mylock); + WRITE_ONCE(x, 1); + WRITE_ONCE(y, 1); + spin_unlock(&mylock); + } + + void CPU1(void) + { + spin_lock(&mylock); + r0 = READ_ONCE(y); + WRITE_ONCE(z, 1); + spin_unlock(&mylock); + } + + void CPU2(void) + { + WRITE_ONCE(z, 2); + smp_mb(); + r1 = READ_ONCE(x); + } + +Counter-intuitive though it might be, it is quite possible to have +the final value of r0 be 1, the final value of z be 2, and the final +value of r1 be 0. The reason for this surprising outcome is that CPU2() +never acquired the lock, and thus did not fully benefit from the lock's +ordering properties. + +Ordering can be extended to CPUs not holding the lock by careful use +of smp_mb__after_spinlock(): + + /* See Z6.0+pooncelock+poonceLock+pombonce.litmus. */ + void CPU0(void) + { + spin_lock(&mylock); + WRITE_ONCE(x, 1); + WRITE_ONCE(y, 1); + spin_unlock(&mylock); + } + + void CPU1(void) + { + spin_lock(&mylock); + smp_mb__after_spinlock(); + r0 = READ_ONCE(y); + WRITE_ONCE(z, 1); + spin_unlock(&mylock); + } + + void CPU2(void) + { + WRITE_ONCE(z, 2); + smp_mb(); + r1 = READ_ONCE(x); + } + +This addition of smp_mb__after_spinlock() strengthens the lock +acquisition sufficiently to rule out the counter-intuitive outcome. +In other words, the addition of the smp_mb__after_spinlock() prohibits +the counter-intuitive result where the final value of r0 is 1, the final +value of z is 2, and the final value of r1 is 0. + + +No Roach-Motel Locking! +----------------------- + +This example requires familiarity with the herd7 "filter" clause, so +please read up on that topic in litmus-tests.txt. + +It is tempting to allow memory-reference instructions to be pulled +into a critical section, but this cannot be allowed in the general case. +For example, consider a spin loop preceding a lock-based critical section. +Now, herd7 does not model spin loops, but we can emulate one with two +loads, with a "filter" clause to constrain the first to return the +initial value and the second to return the updated value, as shown below: + + /* See Documentation/litmus-tests/locking/RM-fixed.litmus. */ + P0(int *x, int *y, int *lck) + { + int r2; + + spin_lock(lck); + r2 = atomic_inc_return(y); + WRITE_ONCE(*x, 1); + spin_unlock(lck); + } + + P1(int *x, int *y, int *lck) + { + int r0; + int r1; + int r2; + + r0 = READ_ONCE(*x); + r1 = READ_ONCE(*x); + spin_lock(lck); + r2 = atomic_inc_return(y); + spin_unlock(lck); + } + + filter (y=2 /\ 1:r0=0 /\ 1:r1=1) + exists (1:r2=1) + +The variable "x" is the control variable for the emulated spin loop. +P0() sets it to "1" while holding the lock, and P1() emulates the +spin loop by reading it twice, first into "1:r0" (which should get the +initial value "0") and then into "1:r1" (which should get the updated +value "1"). + +The purpose of the variable "y" is to reject deadlocked executions. +Only those executions where the final value of "y" have avoided deadlock. + +The "filter" clause takes all this into account, constraining "y" to +equal "2", "1:r0" to equal "0", and "1:r1" to equal 1. + +Then the "exists" clause checks to see if P1() acquired its lock first, +which should not happen given the filter clause because P0() updates +"x" while holding the lock. And herd7 confirms this. + +But suppose that the compiler was permitted to reorder the spin loop +into P1()'s critical section, like this: + + /* See Documentation/litmus-tests/locking/RM-broken.litmus. */ + P0(int *x, int *y, int *lck) + { + int r2; + + spin_lock(lck); + r2 = atomic_inc_return(y); + WRITE_ONCE(*x, 1); + spin_unlock(lck); + } + + P1(int *x, int *y, int *lck) + { + int r0; + int r1; + int r2; + + spin_lock(lck); + r0 = READ_ONCE(*x); + r1 = READ_ONCE(*x); + r2 = atomic_inc_return(y); + spin_unlock(lck); + } + + locations [x;lck;0:r2;1:r0;1:r1;1:r2] + filter (y=2 /\ 1:r0=0 /\ 1:r1=1) + exists (1:r2=1) + +If "1:r0" is equal to "0", "1:r1" can never equal "1" because P0() +cannot update "x" while P1() holds the lock. And herd7 confirms this, +showing zero executions matching the "filter" criteria. + +And this is why Linux-kernel lock and unlock primitives must prevent +code from entering critical sections. It is not sufficient to only +prevent code from leaving them. From patchwork Tue Mar 21 01:05:20 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Paul E. McKenney" X-Patchwork-Id: 72606 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:604a:0:0:0:0:0 with SMTP id j10csp1530146wrt; Mon, 20 Mar 2023 18:26:41 -0700 (PDT) X-Google-Smtp-Source: AK7set8NaZ+fGeOmmTZoBNwsQUp4N9hOiyX5UlzoqLf7Vj3K267oNy/m05voIgJv4E0dB/uf2HF1 X-Received: by 2002:a17:902:e801:b0:19a:a520:b203 with SMTP id u1-20020a170902e80100b0019aa520b203mr689314plg.25.1679362000835; Mon, 20 Mar 2023 18:26:40 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1679362000; cv=none; d=google.com; s=arc-20160816; b=Goz/vV7sAfKFODwh6BNcPDEpts3tteoUrahVBn7Ev4HqB6IHQeOWe1pBpZmNHpLF8p hdrKMWpC5BCOG9PuDeP6lmJXAx3MFIi0lNhBVo9mf1KGCPLrZ1uyf1xDRzXhn/LtGzYP cU4DkfeWdElt0kQJfWZawe9hQb0iPazr38s2rf276je/o3sxX5cO4lcu7A4mBbYB5hUT +kN8h2eKsjvfw9q0gcsnxvNaRmixea30vQxheuw5uEKYfkGq8Rl8qro7UsdeWAmONpVB RZBkH0UokP7eXpoMI2CrLkFj1YMjYrlmslGN8URA6RRRfZxE587axYs8G5n2DGa4Zp1P bKVA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=/OjsRA0nYL6h4K67D01jv0f9mxRIMC1zTr7kXTPH61I=; b=xxqtWW7CEQrl1jwoMYamMUfjxD/X3POtI6N9IH+jY6K0HRb4w7+nd/3ZBcuxwfYv+o yRymkyDRrmI88PItQV4EveKImr1BGQsYRtEegfsrHYFSAbeEDoCvC3AQKfaTT3PtNwb6 ICi35bheTYb1Hqt3cWfGEADd4v7VKpRB1AcXBIWNnw4yDmCCR+isu5oO5+kQyJ7w+Kda 8cwqQc7t+ldOZrn6sTliPGqzywcFUJCvHrMwq/Sk7lijToOziDGGARv4YwOddGfiOjIc lnsjwqTF8BL0rKPWIKIijmI9+561dLMQw5iShKjwUVIsyQG86XTJwFOLgFN0qL4CqMw0 AhNg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=jtvV3f1J; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id i13-20020a170902c94d00b001a1ac8d3ac9si11463263pla.17.2023.03.20.18.26.28; Mon, 20 Mar 2023 18:26:40 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=jtvV3f1J; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230039AbjCUBGq (ORCPT + 99 others); Mon, 20 Mar 2023 21:06:46 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54052 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229998AbjCUBGc (ORCPT ); Mon, 20 Mar 2023 21:06:32 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [IPv6:2604:1380:4641:c500::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 35E6EDBC0; Mon, 20 Mar 2023 18:06:02 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 5CF6C618E3; Tue, 21 Mar 2023 01:05:51 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id B602AC4339B; Tue, 21 Mar 2023 01:05:50 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1679360750; bh=lk/kT012gMcqhkSfCDoJ/8R/uLReOUozKnZewytvK6U=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=jtvV3f1JLKk4RXV6K0u7U3wjsCM49QblcAgGsuHAmEia2LtkbvAaCFdc8rUnQMTND okDgNsORp49VfndQ+/7p5+SkzabtEECuBGEWevdn1ep4dXxo/S4FEDhKPfDMaMBXdx wrES8JPHFhX4qHI2T4IRFASrEVP7fArJXrWdaxseIPG2UKJIeQ/7PGc79AiEWslKGJ 3kKRJXpQ/aMrfDbqAZp5NcHNccwSgbs6YzFRDetFJbh0w3/fJH8E5ylDInTFHXUIY2 VWMa1KEWNkApY7ge10cZqx+93iMtvl+Ye1/bdT9R17Ewy9Tfj/pTeDYxCL1af1WX7x CX09fm4qO3V3A== Received: by paulmck-ThinkPad-P72.home (Postfix, from userid 1000) id 64F1A154039B; Mon, 20 Mar 2023 18:05:50 -0700 (PDT) From: "Paul E. McKenney" To: linux-kernel@vger.kernel.org, linux-arch@vger.kernel.org, kernel-team@meta.com, mingo@kernel.org Cc: stern@rowland.harvard.edu, parri.andrea@gmail.com, will@kernel.org, peterz@infradead.org, boqun.feng@gmail.com, npiggin@gmail.com, dhowells@redhat.com, j.alglave@ucl.ac.uk, luc.maranget@inria.fr, akiyks@gmail.com, "Paul E. McKenney" Subject: [PATCH memory-model scripts 02/31] tools/memory-model: Make judgelitmus.sh note timeouts Date: Mon, 20 Mar 2023 18:05:20 -0700 Message-Id: <20230321010549.51296-2-paulmck@kernel.org> X-Mailer: git-send-email 2.40.0.rc2 In-Reply-To: <4e5839bb-e980-4931-a550-3548d025a32a@paulmck-laptop> References: <4e5839bb-e980-4931-a550-3548d025a32a@paulmck-laptop> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1760938689020897375?= X-GMAIL-MSGID: =?utf-8?q?1760938689020897375?= Currently, judgelitmus.sh treats timeouts (as in the "--timeout" argument) as "!!! Verification error". This can be misleading because it is quite possible that running the test longer would have produced a verification. This commit therefore changes judgelitmus.sh to check for timeouts and to report them with "!!! Timeout". Signed-off-by: Paul E. McKenney --- tools/memory-model/scripts/judgelitmus.sh | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/tools/memory-model/scripts/judgelitmus.sh b/tools/memory-model/scripts/judgelitmus.sh index 0cc63875e395..d3c313b9a458 100755 --- a/tools/memory-model/scripts/judgelitmus.sh +++ b/tools/memory-model/scripts/judgelitmus.sh @@ -42,6 +42,14 @@ grep '^Observation' $LKMM_DESTDIR/$litmus.out if grep -q '^Observation' $LKMM_DESTDIR/$litmus.out then : +elif grep '^Command exited with non-zero status 124' $LKMM_DESTDIR/$litmus.out +then + echo ' !!! Timeout' $litmus + if ! grep -q '!!!' $LKMM_DESTDIR/$litmus.out + then + echo ' !!! Timeout' >> $LKMM_DESTDIR/$litmus.out 2>&1 + fi + exit 124 else echo ' !!! Verification error' $litmus if ! grep -q '!!!' $LKMM_DESTDIR/$litmus.out From patchwork Tue Mar 21 01:05:21 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Paul E. McKenney" X-Patchwork-Id: 72608 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:604a:0:0:0:0:0 with SMTP id j10csp1530280wrt; Mon, 20 Mar 2023 18:27:04 -0700 (PDT) X-Google-Smtp-Source: AK7set/pLOBhTFPm9bn1E2VkRrsJO0i6d//Ql/fUmS1tYAZ2tRC3iqG23skxEvgeAfHDVd9h4OsA X-Received: by 2002:a17:90b:1c85:b0:234:e3f:f53b with SMTP id oo5-20020a17090b1c8500b002340e3ff53bmr677669pjb.21.1679362024132; Mon, 20 Mar 2023 18:27:04 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1679362024; cv=none; d=google.com; s=arc-20160816; b=QW1GT9870q0yiIZpwKcqFE9AcTNBR61eGo9UrRhgJ5XTbJehyVt/HJHCM9HgHb4Zwj 4uktUZW6BR7fQ3y9OIBdu+JhmYLtvQUSkbptngm0CSL3NK9bewE6TO8MKSmuPKnl7bnA 1RV4b+BgB6C1Sn5Iab+tqE77AQXtViAzfINMDyMR6DkooMmGcfqkggM2YDc8PsAo8sN5 /1pTOzyt02OfrulfbNAlFObc0sybKFtZ0vhPrBPYTmQHZdD1i4Yfuh7JbPOEIfhFKvTG ntGJli6b4V1mecQt82AqZNbTY0RchBeC5ZTzeDJ7+NeQDI2QENQt3i8B3AXKzmdE9NTq AShA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=1LBTEcrRxHWwXzBTwZV5RLA2ZQ32ozE/8HLmk3vKFJ4=; b=ejhRwzSJUWNz76qVeCVXYaNEkbjq2/zz5NF33ez22kcjpnoDJD4vynXOlJqrhXiiQQ 0qBogJV5sKMlVBhTcT+FiV3EUIFfiBvKcFbLcZctWruo5kComoDxpqNdn+V0T/l1vol6 nUN3asEggxN+0G8X8Ih8QyZmJ9B0jsr1iLj+v8loCKVTIp1MRD8k0voN6Cv2LjpjZdxo CP3ENrQsQNZh00w2zq9rcQGFonOKJXkL2ctph84JXBXQ+ZjmLRhGmhz3XC3KAgHZhTYJ oAMohfaeUHO/F7RmE+Ec3o3LKr4wtkTV/GW71wdKq/vDu0GsjeQ5CbxjF2iqUIfBcAAS rL1Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=Lz00lwvB; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id r4-20020a654984000000b005034d88d4bdsi10681738pgs.755.2023.03.20.18.26.51; Mon, 20 Mar 2023 18:27:04 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=Lz00lwvB; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230052AbjCUBHo (ORCPT + 99 others); Mon, 20 Mar 2023 21:07:44 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54856 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230157AbjCUBHK (ORCPT ); Mon, 20 Mar 2023 21:07:10 -0400 Received: from ams.source.kernel.org (ams.source.kernel.org [IPv6:2604:1380:4601:e00::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E831435EC1; Mon, 20 Mar 2023 18:06:31 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ams.source.kernel.org (Postfix) with ESMTPS id 346EBB80EE1; Tue, 21 Mar 2023 01:05:52 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id C8303C433EF; Tue, 21 Mar 2023 01:05:50 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1679360750; bh=66fYO9OVQplP/m4cZx4nY/W+d2lsgc9WphuPkVI1Jl8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Lz00lwvBbrizCwyi9/H+KmA7hoeOPl+uI61gEPfF5XBZMG5p/q9D7eOIWAQQw7ic1 2kU2L8/RPXxMkmKQ4ST2RbDcBt+5SKl7I7wG3XTupNQBJnDsDl7+P39prMHuPt5Bf+ lxTxI2wYdrlt46gwt5gV9XtubLI1Z3QJJ+HosH1KPhNi8983a305hJrURCzRqGOncj g51icQ2iraFdfAMFxtWcEYZ/OQOhXcS9+xEOQTbGsBD4ALA2hpE7779ifT1yOmUNrE kVw0qVkWEEneMkufTvRL3rCfgfAB/n20CSkfzXHattpzkhjX8nG4Ru/q4Oru6ECz49 jMJdKsg47bN8Q== Received: by paulmck-ThinkPad-P72.home (Postfix, from userid 1000) id 6A1EC154039D; Mon, 20 Mar 2023 18:05:50 -0700 (PDT) From: "Paul E. McKenney" To: linux-kernel@vger.kernel.org, linux-arch@vger.kernel.org, kernel-team@meta.com, mingo@kernel.org Cc: stern@rowland.harvard.edu, parri.andrea@gmail.com, will@kernel.org, peterz@infradead.org, boqun.feng@gmail.com, npiggin@gmail.com, dhowells@redhat.com, j.alglave@ucl.ac.uk, luc.maranget@inria.fr, akiyks@gmail.com, "Paul E. McKenney" Subject: [PATCH memory-model scripts 03/31] tools/memory-model: Make cmplitmushist.sh note timeouts Date: Mon, 20 Mar 2023 18:05:21 -0700 Message-Id: <20230321010549.51296-3-paulmck@kernel.org> X-Mailer: git-send-email 2.40.0.rc2 In-Reply-To: <4e5839bb-e980-4931-a550-3548d025a32a@paulmck-laptop> References: <4e5839bb-e980-4931-a550-3548d025a32a@paulmck-laptop> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1760938713959168582?= X-GMAIL-MSGID: =?utf-8?q?1760938713959168582?= Currently, cmplitmushist.sh treats timeouts (as in the "--timeout" argument) as "Missing Observation line". This can be misleading because it is quite possible that running the test longer would have produced a verification. This commit therefore changes cmplitmushist.sh to check for timeouts and to report them with "Timed out". Signed-off-by: Paul E. McKenney --- tools/memory-model/scripts/cmplitmushist.sh | 22 +++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/tools/memory-model/scripts/cmplitmushist.sh b/tools/memory-model/scripts/cmplitmushist.sh index 0f498aeeccf5..b9c174dd8004 100755 --- a/tools/memory-model/scripts/cmplitmushist.sh +++ b/tools/memory-model/scripts/cmplitmushist.sh @@ -12,12 +12,30 @@ trap 'rm -rf $T' 0 mkdir $T # comparetest oldpath newpath +timedout=0 perfect=0 obsline=0 noobsline=0 obsresult=0 badcompare=0 comparetest () { + if grep -q '^Command exited with non-zero status 124' $1 || + grep -q '^Command exited with non-zero status 124' $2 + then + if grep -q '^Command exited with non-zero status 124' $1 && + grep -q '^Command exited with non-zero status 124' $2 + then + echo Both runs timed out: $2 + elif grep -q '^Command exited with non-zero status 124' $1 + then + echo Old run timed out: $2 + elif grep -q '^Command exited with non-zero status 124' $2 + then + echo New run timed out: $2 + fi + timedout=`expr "$timedout" + 1` + return 0 + fi grep -v 'maxresident)k\|minor)pagefaults\|^Time' $1 > $T/oldout grep -v 'maxresident)k\|minor)pagefaults\|^Time' $2 > $T/newout if cmp -s $T/oldout $T/newout && grep -q '^Observation' $1 @@ -78,6 +96,10 @@ if test "$obsresult" -ne 0 then echo Matching Observation Always/Sometimes/Never result: $obsresult 1>&2 fi +if test "$timedout" -ne 0 +then + echo "!!!" Timed out: $timedout 1>&2 +fi if test "$badcompare" -ne 0 then echo "!!!" Result changed: $badcompare 1>&2 From patchwork Tue Mar 21 01:05:22 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Paul E. McKenney" X-Patchwork-Id: 72576 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:604a:0:0:0:0:0 with SMTP id j10csp1526013wrt; Mon, 20 Mar 2023 18:13:50 -0700 (PDT) X-Google-Smtp-Source: AK7set8t5ZjeT1VjIfaOo3CpNy9dUS75UNcxJ+d0TiaxeveTw8qGAzJwq+ajMey5shD8w8LZjJAZ X-Received: by 2002:aa7:9423:0:b0:624:894d:c494 with SMTP id y3-20020aa79423000000b00624894dc494mr646779pfo.19.1679361230044; Mon, 20 Mar 2023 18:13:50 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1679361230; cv=none; d=google.com; s=arc-20160816; b=gXLRebg6s40cN53ey+H30F15kAM8H4MueJOtmxPVlNP31Z31JcvtaRyjZCGHoTkiuf bukFnB4ub3TlDGfmdmH9PRY4W3x3HUuqYENAylmvQCwhC/hJ47WWv9EYeZAq/OKv+g/V 7lcEloIksacDwJ5l9hRbVF++rQ5t3+f9iCozRUSEZMJuj27sCB1aZvZkNQTtPk8zrK32 0hU+gdOhoUKb7oMFYocijRAwVGwp4i1As53GD4CBUFknMHZEI/j6tXvPpwwennuFuYsB +4ElX7X64KydO+qpiizQrIYF9UUq6jg3yGTGdlwSHtxzE3CVCjPsIjUNLLcA6pt1lHFr tD7g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=3xTt8hg3h1P1JCVAKp16orYrz4jOgBhW0dYUpevJ6HY=; b=s97YVCZDmLgT1xs11qONBXIjph5XHwSlsnVAmaRh09E76khFDXGFK9Vpyx6rnKVQFY C9PPm0ZE5+SJfRWhJ+ft3eLt/P416/tB5DtKsUzmY9gAt6HjKJ3ckZF1L7nAB+tYAcuT FyrEg7FTm729FQBM2L6jDhWLNHOKu2Bo+blIw1hztCkGkdXagW+YOBSYXSbs+UH2TCSO Pde4Q9paUQ6kGjrpV8ffnLPszbUdU3f4ZIWT+O2Bp4HCGdRygR1yedihW9HfKtbhUt65 W8VnjKlFadXlG2IvzJtWgR3gIbXA0FWsmIRfhSTuggYMSuvvtVE8BVhhWv2r069VazHP FVRQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=TFyisV0J; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id bd12-20020a656e0c000000b004fab1ea0112si12265931pgb.528.2023.03.20.18.13.36; Mon, 20 Mar 2023 18:13:50 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=TFyisV0J; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230076AbjCUBGu (ORCPT + 99 others); Mon, 20 Mar 2023 21:06:50 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54098 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229841AbjCUBGd (ORCPT ); Mon, 20 Mar 2023 21:06:33 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [IPv6:2604:1380:4641:c500::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 52431126E4; Mon, 20 Mar 2023 18:06:05 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 7B06A618F9; Tue, 21 Mar 2023 01:05:51 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id DACAFC4339E; Tue, 21 Mar 2023 01:05:50 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1679360750; bh=J6OlYBmECTtcqyWm+bmHxpR8sRq5npyiurZDWo3UcqU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=TFyisV0Jo3FYWEIFVUuGShAuU+wGy5aA4xmKbcXYOP989415NzNmbABpj8/lUqKhX L70OSqcIcKTQNWDMrf+JbgV4sxuWxe10nHIxUCv+E49vkGsMDkLlo7Z9NKnQzPJBIr 1Maot9q4gX8lKZojHrRhiMX8pbexJOSfHlLh5H2M9uiyc4k7cobF2t0+/leCjc+WX/ kAb7iLKFvyqsxmEmh5v9eT7c5OuvWmAMY4l3MYLpMINC9o6oH24Jbzqpu+hlreArtP VrNNsQRBWXgRBb5/OZunp11R/aSnlVCyGMfDZFVAkw8b1cuSvHu3v8mFX9eLeOm3Y2 kLJRnA1jiG9Ww== Received: by paulmck-ThinkPad-P72.home (Postfix, from userid 1000) id 6E0FE154039F; Mon, 20 Mar 2023 18:05:50 -0700 (PDT) From: "Paul E. McKenney" To: linux-kernel@vger.kernel.org, linux-arch@vger.kernel.org, kernel-team@meta.com, mingo@kernel.org Cc: stern@rowland.harvard.edu, parri.andrea@gmail.com, will@kernel.org, peterz@infradead.org, boqun.feng@gmail.com, npiggin@gmail.com, dhowells@redhat.com, j.alglave@ucl.ac.uk, luc.maranget@inria.fr, akiyks@gmail.com, "Paul E. McKenney" Subject: [PATCH memory-model scripts 04/31] tools/memory-model: Make judgelitmus.sh identify bad macros Date: Mon, 20 Mar 2023 18:05:22 -0700 Message-Id: <20230321010549.51296-4-paulmck@kernel.org> X-Mailer: git-send-email 2.40.0.rc2 In-Reply-To: <4e5839bb-e980-4931-a550-3548d025a32a@paulmck-laptop> References: <4e5839bb-e980-4931-a550-3548d025a32a@paulmck-laptop> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1760937881022528601?= X-GMAIL-MSGID: =?utf-8?q?1760937881022528601?= Currently, judgelitmus.sh treats use of unknown primitives (such as srcu_read_lock() prior to SRCU support) as "!!! Verification error". This can be misleading because it fails to call out typos and running a version LKMM on a litmus test requiring a feature not provided by that version. This commit therefore changes judgelitmus.sh to check for unknown primitives and to report them, for example, with: '!!! Current LKMM version does not know "rcu_write_lock"'. Signed-off-by: Paul E. McKenney --- tools/memory-model/scripts/cmplitmushist.sh | 31 ++++++++++++++++++--- tools/memory-model/scripts/judgelitmus.sh | 12 ++++++++ 2 files changed, 39 insertions(+), 4 deletions(-) diff --git a/tools/memory-model/scripts/cmplitmushist.sh b/tools/memory-model/scripts/cmplitmushist.sh index b9c174dd8004..ca1ac8b64614 100755 --- a/tools/memory-model/scripts/cmplitmushist.sh +++ b/tools/memory-model/scripts/cmplitmushist.sh @@ -12,6 +12,7 @@ trap 'rm -rf $T' 0 mkdir $T # comparetest oldpath newpath +badmacnam=0 timedout=0 perfect=0 obsline=0 @@ -19,8 +20,26 @@ noobsline=0 obsresult=0 badcompare=0 comparetest () { - if grep -q '^Command exited with non-zero status 124' $1 || - grep -q '^Command exited with non-zero status 124' $2 + if grep -q ': Unknown macro ' $1 || grep -q ': Unknown macro ' $2 + then + if grep -q ': Unknown macro ' $1 + then + badname=`grep ': Unknown macro ' $1 | + sed -e 's/^.*: Unknown macro //' | + sed -e 's/ (User error).*$//'` + echo 'Current LKMM version does not know "'$badname'"' $1 + fi + if grep -q ': Unknown macro ' $2 + then + badname=`grep ': Unknown macro ' $2 | + sed -e 's/^.*: Unknown macro //' | + sed -e 's/ (User error).*$//'` + echo 'Current LKMM version does not know "'$badname'"' $2 + fi + badmacnam=`expr "$badmacnam" + 1` + return 0 + elif grep -q '^Command exited with non-zero status 124' $1 || + grep -q '^Command exited with non-zero status 124' $2 then if grep -q '^Command exited with non-zero status 124' $1 && grep -q '^Command exited with non-zero status 124' $2 @@ -56,7 +75,7 @@ comparetest () { return 0 fi else - echo Missing Observation line "(e.g., herd7 timeout)": $2 + echo Missing Observation line "(e.g., syntax error)": $2 noobsline=`expr "$noobsline" + 1` return 0 fi @@ -90,7 +109,7 @@ then fi if test "$noobsline" -ne 0 then - echo Missing Observation line "(e.g., herd7 timeout)": $noobsline 1>&2 + echo Missing Observation line "(e.g., syntax error)": $noobsline 1>&2 fi if test "$obsresult" -ne 0 then @@ -100,6 +119,10 @@ if test "$timedout" -ne 0 then echo "!!!" Timed out: $timedout 1>&2 fi +if test "$badmacnam" -ne 0 +then + echo "!!!" Unknown primitive: $badmacnam 1>&2 +fi if test "$badcompare" -ne 0 then echo "!!!" Result changed: $badcompare 1>&2 diff --git a/tools/memory-model/scripts/judgelitmus.sh b/tools/memory-model/scripts/judgelitmus.sh index d3c313b9a458..d40439c7b71e 100755 --- a/tools/memory-model/scripts/judgelitmus.sh +++ b/tools/memory-model/scripts/judgelitmus.sh @@ -42,6 +42,18 @@ grep '^Observation' $LKMM_DESTDIR/$litmus.out if grep -q '^Observation' $LKMM_DESTDIR/$litmus.out then : +elif grep ': Unknown macro ' $LKMM_DESTDIR/$litmus.out +then + badname=`grep ': Unknown macro ' $LKMM_DESTDIR/$litmus.out | + sed -e 's/^.*: Unknown macro //' | + sed -e 's/ (User error).*$//'` + badmsg=' !!! Current LKMM version does not know "'$badname'"'" $litmus" + echo $badmsg + if ! grep -q '!!!' $LKMM_DESTDIR/$litmus.out + then + echo ' !!! '$badmsg >> $LKMM_DESTDIR/$litmus.out 2>&1 + fi + exit 254 elif grep '^Command exited with non-zero status 124' $LKMM_DESTDIR/$litmus.out then echo ' !!! Timeout' $litmus From patchwork Tue Mar 21 01:05:23 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Paul E. McKenney" X-Patchwork-Id: 72583 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:604a:0:0:0:0:0 with SMTP id j10csp1526763wrt; Mon, 20 Mar 2023 18:16:04 -0700 (PDT) X-Google-Smtp-Source: AK7set9IMS1F8qye+tzwID2LmFVOz+wh+cffWAMxlm1eWg8oGuaejzuJV3vtLUH09T5xbZ02z0l/ X-Received: by 2002:a17:90b:4d87:b0:23c:ffbf:859e with SMTP id oj7-20020a17090b4d8700b0023cffbf859emr619442pjb.35.1679361364365; Mon, 20 Mar 2023 18:16:04 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1679361364; cv=none; d=google.com; s=arc-20160816; b=QiLRmXrJA8/jsLsBx11HXZIS+NXVQkYFwzapG7OTFFfhqHES/nkSxR7pOFEt7pu88/ 9dtxD2NMAvVmFpiwvrTgsIcMwtHKwNU1eNLiXP7gvfkko3TLk59rcCEI31UAv/g01flf irKZ8YAYg/oJXwlc5Fkj3SaIbOPBFvPDWXYpBBAJ+8YKshZYyiQPl7pIFPQvsWSIK9gJ fVq5qXWCrmRG+YWeGyHptk7M9lpNHw99YyAaypwnSMqcP5G4ULcCu+JNRCcd1bNP4LHK K8uwUTgrtZs3VE5W8T8bHGFnvyZAM9gtmKjLI/zdBYV+lRirhbZZHHxIMl1sfnVe1crV LM8Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=26Ub0jlznELIszT6mjghy8r2XEr/GR6TKbUBL/YYH7g=; b=021mPfpz6emDqx2QJ6Of2qqW756wwTiunnOoABib82lC3JcVKEV2ILomBiqPGMrhnY vqKBh3za9ZVtD+BaVUBmy1RwmVq3DdTbNfPIpMp0DXhI/Nqy4YW/KqfbnTDzAoSjtbtC uQl7dP2Y5t/ci7joQ0/qIvP9mk/4ouoI/r+ft8OB1eF6SzB6eu30HrV1qaj8pvwgAC3j 4RLAZ9ddfUV3LIEu9VsNn9ZjR4DV68Z8JIq6a5XFLEjeGgRhocG7/vhB8Re8kuNom5En H4R0/iY4HSgxwePkd/aWzPbmdejWB35Pc1q0WMYI+NhTJfgXRxGKprXRGg+HkheN5y4H dh2Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=ivXTo+F7; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id h1-20020a17090a130100b002367f75aa40si5255095pja.150.2023.03.20.18.15.51; Mon, 20 Mar 2023 18:16:04 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=ivXTo+F7; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230097AbjCUBGw (ORCPT + 99 others); Mon, 20 Mar 2023 21:06:52 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54136 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230036AbjCUBGf (ORCPT ); Mon, 20 Mar 2023 21:06:35 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [IPv6:2604:1380:4641:c500::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 537CB113C2; Mon, 20 Mar 2023 18:06:05 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 8AA16618F5; Tue, 21 Mar 2023 01:05:51 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id E5F32C433A0; Tue, 21 Mar 2023 01:05:50 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1679360750; bh=hzxbobp7VDJfB0mAKMDP5Yx+fy49+f/dy9Gh4KPGSzM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ivXTo+F7uAR6LhrH0yOssIFU/QKHzEkkrBBy60bFd8KDzmlEeXNLlkQw5bTsl0vAE YMPGxoCPjnBB8YupXDr6iIzoqcWD+GdPXb+Rpb7Jtz7sEY3DoFtUuDy6HfjgUZmqdX 9s831lPI6xwA6ROiUgBsZmptv8j7fHKJRf85rgxTc+AKWVphvjIltxGX20fotQcRGt udGUYDtpd+d3nCPB9vLykT+thVkxcuHn5ltEHhAqNv63dOBHiz+8lyv+puV6lxmdGG S9uclr3JOkw5vcsrc8rrjgpwdo4XfYmXX1WCyJJ9eOXhbJV1e6iB5V5ThGdNL024Xx yE8XPNBldFhzw== Received: by paulmck-ThinkPad-P72.home (Postfix, from userid 1000) id 7212E15403A1; Mon, 20 Mar 2023 18:05:50 -0700 (PDT) From: "Paul E. McKenney" To: linux-kernel@vger.kernel.org, linux-arch@vger.kernel.org, kernel-team@meta.com, mingo@kernel.org Cc: stern@rowland.harvard.edu, parri.andrea@gmail.com, will@kernel.org, peterz@infradead.org, boqun.feng@gmail.com, npiggin@gmail.com, dhowells@redhat.com, j.alglave@ucl.ac.uk, luc.maranget@inria.fr, akiyks@gmail.com, "Paul E. McKenney" Subject: [PATCH memory-model scripts 05/31] tools/memory-model: Make judgelitmus.sh detect hard deadlocks Date: Mon, 20 Mar 2023 18:05:23 -0700 Message-Id: <20230321010549.51296-5-paulmck@kernel.org> X-Mailer: git-send-email 2.40.0.rc2 In-Reply-To: <4e5839bb-e980-4931-a550-3548d025a32a@paulmck-laptop> References: <4e5839bb-e980-4931-a550-3548d025a32a@paulmck-laptop> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1760938021919983526?= X-GMAIL-MSGID: =?utf-8?q?1760938021919983526?= If a litmus test specifies "Result: Never" and if it contains an unconditional ("hard") deadlock, then running checklitmus.sh on it will not flag any errors, despite the fact that there are no executions. This commit therefore updates judgelitmus.sh to complain about tests with no executions that are marked, but not as "Result: DEADLOCK". Signed-off-by: Paul E. McKenney --- tools/memory-model/scripts/judgelitmus.sh | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/tools/memory-model/scripts/judgelitmus.sh b/tools/memory-model/scripts/judgelitmus.sh index d40439c7b71e..84c62eee321b 100755 --- a/tools/memory-model/scripts/judgelitmus.sh +++ b/tools/memory-model/scripts/judgelitmus.sh @@ -83,6 +83,14 @@ then fi ret=1 fi +elif grep '^Observation' $LKMM_DESTDIR/$litmus.out | grep -q 'Never 0 0$' +then + echo " !!! Unexpected non-$outcome deadlock" $litmus + if ! grep -q '!!!' $LKMM_DESTDIR/$litmus.out + then + echo " !!! Unexpected non-$outcome deadlock" $litmus >> $LKMM_DESTDIR/$litmus.out 2>&1 + fi + ret=1 elif grep '^Observation' $LKMM_DESTDIR/$litmus.out | grep -q $outcome || test "$outcome" = Maybe then ret=0 From patchwork Tue Mar 21 01:05:24 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Paul E. McKenney" X-Patchwork-Id: 72581 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:604a:0:0:0:0:0 with SMTP id j10csp1526612wrt; Mon, 20 Mar 2023 18:15:37 -0700 (PDT) X-Google-Smtp-Source: AK7set8TM0C+3brfZvhB8ZZAFVxBbpH0DIXjai5/DUN3bJ1G3cmNoWaHCzVC51oZr/Jj59Jk404W X-Received: by 2002:a05:6a20:a91f:b0:d8:e8aa:f323 with SMTP id cd31-20020a056a20a91f00b000d8e8aaf323mr395655pzb.44.1679361337613; Mon, 20 Mar 2023 18:15:37 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1679361337; cv=none; d=google.com; s=arc-20160816; b=yZHtGppDGlIa6qf+IfzDe5mVbcFMf5svJvmH3ano8p2jsXc7W9qg3N/t1TZIAcZsYI wlV4UkTPz/uok6I8fqclrEI/9mMGaBzEn4milvPq3aN5R3paRH2ENsBsJIAdiN1QwmAC HFsakCtJO0B42K9/8EPcGTsHVp20oTZ9ubLoxXqPHgACiqDgjIYpCc7WAWJAxxY1Eohc rA2nPfc+IWQgJ5dgT/KTe8qmTgKcnPfkKb6+OIB+yRNOkHNAosU1im4XaLgW5ycs10n+ pnoDz9yCSgA/hBSe+mTrBs7we8R/SeHvBu3IFoR3ZR9kUc9OKuIUwRsqmqwMa8DrmLW5 iD6w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=R2WW0rcH1fVIpaYZUiZX+PziiipRY9sAZeCAkhPZxlY=; b=0z08oDHsc14iCLY8f7k8arpn9+VUdpswwHDSulojVmIX/Yb7Bmk1cc0Ndf7ifVcLvz DOArxSGeAY3AlMjA519Q295ie30OBHQsFIE/KGy+vJFggMr4Vej5WEq6dmMlDbhZIinZ QCSfkBvLyUSrWPpe8wszjyMNru9I4N1GnZdUkjVZyFxln4IcvjLZveaeFRpUVUC9dh37 sDKluVi3ONEKMxYQlLgqMtb7IJ6v0gEAZVIFC6KcNYjS0awu5Y2QenjVvTsAXcb4tv05 aSqhsz12ppf6k2sLORskT78wm9Ogg9xAuARIROlcDsFWD4MsrkwIFAUWYDHGgWFVRXgp 5ttg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b="hplD/jZ5"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id o23-20020a63fb17000000b0050f6925ed41si6438714pgh.298.2023.03.20.18.15.25; Mon, 20 Mar 2023 18:15:37 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b="hplD/jZ5"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230109AbjCUBGz (ORCPT + 99 others); Mon, 20 Mar 2023 21:06:55 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53906 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230046AbjCUBGl (ORCPT ); Mon, 20 Mar 2023 21:06:41 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [IPv6:2604:1380:4641:c500::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B0B2E14E8F; Mon, 20 Mar 2023 18:06:06 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 002B3618FF; Tue, 21 Mar 2023 01:05:52 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 17D62C433A4; Tue, 21 Mar 2023 01:05:51 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1679360751; bh=7pEQrOhNcu3wqlvdXQU+oZMNW/oN3RZB/RgwhFCuORI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=hplD/jZ5c53bYUq+Va4ebP06sIodznegbn6PLGl5HL26jEwlEDqWqglx9cqVz49k+ TqpdW3oGBpzbWUKx7oiahcQBG2JUj3it3AEal/hn70yEOMhGM03adpx73dmyzr9gYz PNZUmkyEN9YRiHedybItmM/dp96eJXO+igUexO9+hzuyzTCk3NJ9o5OdrmqjeItgzO kYKDGbzChSqMlS6o/D2qugoVwYjE6DLIYsmOdaKxs9CcQ3jGb9Q9mQYWxvfiVUvH6U Qhl1zt9Z1O2YoRNb/UebXo1cuwfmD1XalXUhzJ5AruQ2jKrgg32613Lu8JEj1yXqri 7g3DeeRNfifqw== Received: by paulmck-ThinkPad-P72.home (Postfix, from userid 1000) id 7652E15403A3; Mon, 20 Mar 2023 18:05:50 -0700 (PDT) From: "Paul E. McKenney" To: linux-kernel@vger.kernel.org, linux-arch@vger.kernel.org, kernel-team@meta.com, mingo@kernel.org Cc: stern@rowland.harvard.edu, parri.andrea@gmail.com, will@kernel.org, peterz@infradead.org, boqun.feng@gmail.com, npiggin@gmail.com, dhowells@redhat.com, j.alglave@ucl.ac.uk, luc.maranget@inria.fr, akiyks@gmail.com, "Paul E. McKenney" Subject: [PATCH memory-model scripts 06/31] tools/memory-model: Fix paulmck email address on pre-existing scripts Date: Mon, 20 Mar 2023 18:05:24 -0700 Message-Id: <20230321010549.51296-6-paulmck@kernel.org> X-Mailer: git-send-email 2.40.0.rc2 In-Reply-To: <4e5839bb-e980-4931-a550-3548d025a32a@paulmck-laptop> References: <4e5839bb-e980-4931-a550-3548d025a32a@paulmck-laptop> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1760937993988743014?= X-GMAIL-MSGID: =?utf-8?q?1760937993988743014?= Signed-off-by: Paul E. McKenney --- tools/memory-model/scripts/checkalllitmus.sh | 2 +- tools/memory-model/scripts/checklitmus.sh | 2 +- tools/memory-model/scripts/checklitmushist.sh | 2 +- tools/memory-model/scripts/judgelitmus.sh | 2 +- tools/memory-model/scripts/newlitmushist.sh | 2 +- tools/memory-model/scripts/parseargs.sh | 2 +- tools/memory-model/scripts/runlitmushist.sh | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/tools/memory-model/scripts/checkalllitmus.sh b/tools/memory-model/scripts/checkalllitmus.sh index 3c0c7fbbd223..10e14d94acee 100755 --- a/tools/memory-model/scripts/checkalllitmus.sh +++ b/tools/memory-model/scripts/checkalllitmus.sh @@ -17,7 +17,7 @@ # # Copyright IBM Corporation, 2018 # -# Author: Paul E. McKenney +# Author: Paul E. McKenney . scripts/parseargs.sh diff --git a/tools/memory-model/scripts/checklitmus.sh b/tools/memory-model/scripts/checklitmus.sh index 11461ed40b5e..638b8c610894 100755 --- a/tools/memory-model/scripts/checklitmus.sh +++ b/tools/memory-model/scripts/checklitmus.sh @@ -15,7 +15,7 @@ # # Copyright IBM Corporation, 2018 # -# Author: Paul E. McKenney +# Author: Paul E. McKenney litmus=$1 herdoptions=${LKMM_HERD_OPTIONS--conf linux-kernel.cfg} diff --git a/tools/memory-model/scripts/checklitmushist.sh b/tools/memory-model/scripts/checklitmushist.sh index 1d210ffb7c8a..406ecfc0aee4 100755 --- a/tools/memory-model/scripts/checklitmushist.sh +++ b/tools/memory-model/scripts/checklitmushist.sh @@ -12,7 +12,7 @@ # # Copyright IBM Corporation, 2018 # -# Author: Paul E. McKenney +# Author: Paul E. McKenney . scripts/parseargs.sh diff --git a/tools/memory-model/scripts/judgelitmus.sh b/tools/memory-model/scripts/judgelitmus.sh index 84c62eee321b..d82133e75580 100755 --- a/tools/memory-model/scripts/judgelitmus.sh +++ b/tools/memory-model/scripts/judgelitmus.sh @@ -13,7 +13,7 @@ # # Copyright IBM Corporation, 2018 # -# Author: Paul E. McKenney +# Author: Paul E. McKenney litmus=$1 diff --git a/tools/memory-model/scripts/newlitmushist.sh b/tools/memory-model/scripts/newlitmushist.sh index 991f8f814881..3f4b06e29988 100755 --- a/tools/memory-model/scripts/newlitmushist.sh +++ b/tools/memory-model/scripts/newlitmushist.sh @@ -12,7 +12,7 @@ # # Copyright IBM Corporation, 2018 # -# Author: Paul E. McKenney +# Author: Paul E. McKenney . scripts/parseargs.sh diff --git a/tools/memory-model/scripts/parseargs.sh b/tools/memory-model/scripts/parseargs.sh index 40f52080fdbd..afe7bd23de6b 100755 --- a/tools/memory-model/scripts/parseargs.sh +++ b/tools/memory-model/scripts/parseargs.sh @@ -9,7 +9,7 @@ # # Copyright IBM Corporation, 2018 # -# Author: Paul E. McKenney +# Author: Paul E. McKenney T=/tmp/parseargs.sh.$$ mkdir $T diff --git a/tools/memory-model/scripts/runlitmushist.sh b/tools/memory-model/scripts/runlitmushist.sh index 6ed376f495bb..852786fef179 100755 --- a/tools/memory-model/scripts/runlitmushist.sh +++ b/tools/memory-model/scripts/runlitmushist.sh @@ -13,7 +13,7 @@ # # Copyright IBM Corporation, 2018 # -# Author: Paul E. McKenney +# Author: Paul E. McKenney T=/tmp/runlitmushist.sh.$$ trap 'rm -rf $T' 0 From patchwork Tue Mar 21 01:05:25 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Paul E. McKenney" X-Patchwork-Id: 72595 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:604a:0:0:0:0:0 with SMTP id j10csp1528980wrt; Mon, 20 Mar 2023 18:23:01 -0700 (PDT) X-Google-Smtp-Source: AK7set81g+TyGTskvPCObJ3dlZFp+/nO86dwomMJ0Zb0itIa4AbO6vLKXorr2YMDL8WNjuirH84+ X-Received: by 2002:a17:902:c949:b0:19c:cf89:b7ee with SMTP id i9-20020a170902c94900b0019ccf89b7eemr483895pla.69.1679361781447; Mon, 20 Mar 2023 18:23:01 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1679361781; cv=none; d=google.com; s=arc-20160816; b=RFe5c21dfbTAjGhSF0RxuLuItwnjx4hI5OGVfwbx2Pg/u0I06gADStQV2liS68nwFj n3IHOjeHZrjzr7sd2agwc0xC1F75oqs8Jrp46u/9YdOzHmaSgzkBUsjXPzBo7099jKBd j96RY7WJxaSAVQ6933b+sIjRl5EV9mqA7NyhWd8572jcU7YJhdwCcAsK8w4PWnHW3A6n WYEyneVsYOOCWRSxogD23qFVsLtz8bnfuH4ayHEfm0bSxWX6BfbWbvEvbnbmcmgrc4t0 DXvDlSBbgj3FGPiK99M91ccxSdPjsHb3kEe7QZA7eGpSvg162cspP6A44Kjq7xhWmMbF xmuA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=qkmWem73MC5TfJg/HT0UVAMWdoQfyeHo9kT0hN3gOYY=; b=pyqjikdb8GaaaE/XjNUKze4/D5g7e8bBh8Zi9639Sg3JU6rrXsU80rHT+mjxX2hQF6 YxAarHmNxriOv+M85KPQYs64aBrL75cRB0jl+rnKGVB1WcBRMIFAyL7Xmc9YHQVk23Vm MH/HAJ+88wHfJmJZenNe33kVPUj2buSimQEi9+AsklzesdPSMfNhxBEP5ma66lGA4N6K Ld4P+qQWKq9CqrYmENjIn1N1xMcZ8MfMJnJDiLotLtwXmZOMkbaceoX1PcXcAsW5vlJ+ 8YdHGWjDHkP10OGAnh8s2i2rgEBelHewiAzgKtzeKuoCtNaY3sXtmyBA8ZaEhox1m0QU KshA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=ePPi1fJS; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id d9-20020a170903230900b001a10c64c68csi12784023plh.113.2023.03.20.18.22.49; Mon, 20 Mar 2023 18:23:01 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=ePPi1fJS; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230158AbjCUBHK (ORCPT + 99 others); Mon, 20 Mar 2023 21:07:10 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54304 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230059AbjCUBGn (ORCPT ); Mon, 20 Mar 2023 21:06:43 -0400 Received: from ams.source.kernel.org (ams.source.kernel.org [IPv6:2604:1380:4601:e00::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 62D162F787; Mon, 20 Mar 2023 18:06:14 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ams.source.kernel.org (Postfix) with ESMTPS id B54DAB81193; Tue, 21 Mar 2023 01:05:52 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 17C87C4339C; Tue, 21 Mar 2023 01:05:51 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1679360751; bh=BcCJ+qSBUKa4G2l6JvwxjG9mad7Ur5MYs+xW5IuzN/g=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ePPi1fJSo7DeYmKzI/bJNrPO4/9Km+oNdko67AUdmQw67RbW6VB/85Qn3jGs7LFbQ b+KFqVXnNTu0Z9LZuup6jSC80+jIrI6FR7Wln12My6aW9imRGx8nzcSkAZS9xygMFE Syx6fJOqJ+yCVau5I0RejWvfUCdbgDDtB8sXSUG9cA3zfvwo31Dplw4vU0BsSC1IA8 zh/uEZGFmOR9SfO4n5S7R/XgTbcbPE46Ceh7ZTZNyukuNJTdCpC27l5Jxy1Wihsd4F Bv1ZFSkPSEDREQgbKgyp6UDFbmXTWlqsRMUJHG/yXILjEHDCHp+MDK4CoGAAxTDuoL 7vu2UcmooxXpQ== Received: by paulmck-ThinkPad-P72.home (Postfix, from userid 1000) id 7A4A215403A5; Mon, 20 Mar 2023 18:05:50 -0700 (PDT) From: "Paul E. McKenney" To: linux-kernel@vger.kernel.org, linux-arch@vger.kernel.org, kernel-team@meta.com, mingo@kernel.org Cc: stern@rowland.harvard.edu, parri.andrea@gmail.com, will@kernel.org, peterz@infradead.org, boqun.feng@gmail.com, npiggin@gmail.com, dhowells@redhat.com, j.alglave@ucl.ac.uk, luc.maranget@inria.fr, akiyks@gmail.com, "Paul E. McKenney" Subject: [PATCH memory-model scripts 07/31] tools/memory-model: Update parseargs.sh for hardware verification Date: Mon, 20 Mar 2023 18:05:25 -0700 Message-Id: <20230321010549.51296-7-paulmck@kernel.org> X-Mailer: git-send-email 2.40.0.rc2 In-Reply-To: <4e5839bb-e980-4931-a550-3548d025a32a@paulmck-laptop> References: <4e5839bb-e980-4931-a550-3548d025a32a@paulmck-laptop> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1760938459645481768?= X-GMAIL-MSGID: =?utf-8?q?1760938459645481768?= This commit adds a --hw argument to parseargs.sh to specify the CPU family for a hardware verification. For example, "--hw AArch64" will specify that a C-language litmus test is to be translated to ARMv8 and the result verified. This will set the LKMM_HW_MAP_FILE environment variable accordingly. If there is no --hw argument, this environment variable will be set to the empty string. Signed-off-by: Paul E. McKenney --- tools/memory-model/scripts/parseargs.sh | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/tools/memory-model/scripts/parseargs.sh b/tools/memory-model/scripts/parseargs.sh index afe7bd23de6b..5f016fc3f3af 100755 --- a/tools/memory-model/scripts/parseargs.sh +++ b/tools/memory-model/scripts/parseargs.sh @@ -27,6 +27,7 @@ initparam () { initparam LKMM_DESTDIR "." initparam LKMM_HERD_OPTIONS "-conf linux-kernel.cfg" +initparam LKMM_HW_MAP_FILE "" initparam LKMM_JOBS `getconf _NPROCESSORS_ONLN` initparam LKMM_PROCS "3" initparam LKMM_TIMEOUT "1m" @@ -37,10 +38,11 @@ usagehelp () { echo "Usage $scriptname [ arguments ]" echo " --destdir path (place for .litmus.out, default by .litmus)" echo " --herdopts -conf linux-kernel.cfg ..." + echo " --hw AArch64" echo " --jobs N (number of jobs, default one per CPU)" echo " --procs N (litmus tests with at most this many processes)" echo " --timeout N (herd7 timeout (e.g., 10s, 1m, 2hr, 1d, '')" - echo "Defaults: --destdir '$LKMM_DESTDIR_DEF' --herdopts '$LKMM_HERD_OPTIONS_DEF' --jobs '$LKMM_JOBS_DEF' --procs '$LKMM_PROCS_DEF' --timeout '$LKMM_TIMEOUT_DEF'" + echo "Defaults: --destdir '$LKMM_DESTDIR_DEF' --herdopts '$LKMM_HERD_OPTIONS_DEF' --hw '$LKMM_HW_MAP_FILE' --jobs '$LKMM_JOBS_DEF' --procs '$LKMM_PROCS_DEF' --timeout '$LKMM_TIMEOUT_DEF'" exit 1 } @@ -95,6 +97,11 @@ do LKMM_HERD_OPTIONS="$2" shift ;; + --hw) + checkarg --hw "(.map file architecture name)" "$#" "$2" '^[A-Za-z0-9_-]\+' '^--' + LKMM_HW_MAP_FILE="$2" + shift + ;; -j[1-9]*) njobs="`echo $1 | sed -e 's/^-j//'`" trailchars="`echo $njobs | sed -e 's/[0-9]\+\(.*\)$/\1/'`" From patchwork Tue Mar 21 01:05:26 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Paul E. McKenney" X-Patchwork-Id: 72591 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:604a:0:0:0:0:0 with SMTP id j10csp1528565wrt; Mon, 20 Mar 2023 18:21:43 -0700 (PDT) X-Google-Smtp-Source: AK7set9ih0WvGVbkfqo/DWBdLX0wOvWXpU61NMpEYsQFRHcRXfnKZdOV1J0GGZR/UoXuYVYcgP+v X-Received: by 2002:a17:90b:17cb:b0:23d:3698:8ed3 with SMTP id me11-20020a17090b17cb00b0023d36988ed3mr668713pjb.22.1679361703604; Mon, 20 Mar 2023 18:21:43 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1679361703; cv=none; d=google.com; s=arc-20160816; b=bC+P9TdW8IJ4dfbsmLo35v4mdP3xMzJJl5Mg+jxocW78nsxOcZDu/TOI17O0CcHHAJ VSvPYFHZVhTv7PhpHKhJ5JeIz/cx2DVSFHW0PPkwKzx8TX8tAn0/Pi/y07umMoNGCF5X ly5E1EdZYQeYo1g9vSrAlSLb5qmQg6kjkhQyGL9y+XyUoRV7Ui3roO1L67J/2JmaiZu3 ueWE0r5uwOLwycheSbs7EEocXyYDnyxQxrCmvTPJq9tUjq7dAcwmED51sNLyd9UkbutO YcAQZFL31HBrx5sOBMWGBjcCUn3DLWBM0H4OHiNBCnNJvNxYcPZdpiioK/wV+iZA4hvX T1zg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=0nP835TL2JwctwEzCGw3hZmhe+/yvQj24XXNxNF1YsI=; b=vSEgqlOS3HywrvsotUlMH+SOmx5uqswx/YCD23O3vUAM4oL5N9gjGRDZx6b1eWPIH1 Opa/d1pck0KacX8MDV1INKDY3wsdur1PtNOmoCr0cM/hskj225Zd5xSfvtg46fqKlJ9z LBmiI1rfpsfPAVazPoBsI04okEr/T0rlxjxzEEQaRJE6cyZBxivVLIDRWdP0aeeTx2L0 DFAm2ealaYFG+DFKKarUTYGzkYtlXnSnbeSgnR+0OYMJPEs7m8XTQS5VgE7jELhn2+q+ zpC3XhAKxjfRCOQVLw8wzhylAjcob+HlCRG5f+/x7lx+Hmm7ITAzE4oxSr222RnKB7h5 9qdw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=j7EYsJxS; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id ls7-20020a17090b350700b002307345bf7bsi18678170pjb.23.2023.03.20.18.21.31; Mon, 20 Mar 2023 18:21:43 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=j7EYsJxS; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230171AbjCUBHs (ORCPT + 99 others); Mon, 20 Mar 2023 21:07:48 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54878 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230161AbjCUBHK (ORCPT ); Mon, 20 Mar 2023 21:07:10 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [IPv6:2604:1380:4641:c500::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 8197A35245; Mon, 20 Mar 2023 18:06:32 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 15ECC61904; Tue, 21 Mar 2023 01:05:52 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 20477C433A7; Tue, 21 Mar 2023 01:05:51 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1679360751; bh=ms3u43L6F35Rla/Tr4gwblmtg7jpfVpUfhMDcsOc/Ew=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=j7EYsJxS49U5MeolVim8U6SGA/Nf3E9CDYeylBCZSKcYKCtfilRUxrhOkoB0WdeFt lK7DjDVaUAEmyfmeQi4np2Av9Dm8taxv8FMPHIm4nCzcQC9gdONlC4Xdga+XVUVfkV xStyMhiyo+RxYSIgz3qJTE/3/u8Xa9TO9avetSetAE20HZzxk4Ae81rsBicDLWsyPH /7L3b0KOZboXe97Ms+bRWCD4Ty4ZYJb+7iJ8hgX4JZZPaO8C0S89XRCkUqizSGEn2h OLjPcKkv1Hnkg+jfyfWKXxm8xlKWg+xs3mCPyw+YNEpdatCePHN17D24TyVYFgocXG DJt5mc7Uwa54w== Received: by paulmck-ThinkPad-P72.home (Postfix, from userid 1000) id 7E57915403A7; Mon, 20 Mar 2023 18:05:50 -0700 (PDT) From: "Paul E. McKenney" To: linux-kernel@vger.kernel.org, linux-arch@vger.kernel.org, kernel-team@meta.com, mingo@kernel.org Cc: stern@rowland.harvard.edu, parri.andrea@gmail.com, will@kernel.org, peterz@infradead.org, boqun.feng@gmail.com, npiggin@gmail.com, dhowells@redhat.com, j.alglave@ucl.ac.uk, luc.maranget@inria.fr, akiyks@gmail.com, "Paul E. McKenney" Subject: [PATCH memory-model scripts 08/31] tools/memory-model: Make judgelitmus.sh handle hardware verifications Date: Mon, 20 Mar 2023 18:05:26 -0700 Message-Id: <20230321010549.51296-8-paulmck@kernel.org> X-Mailer: git-send-email 2.40.0.rc2 In-Reply-To: <4e5839bb-e980-4931-a550-3548d025a32a@paulmck-laptop> References: <4e5839bb-e980-4931-a550-3548d025a32a@paulmck-laptop> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1760938378014782581?= X-GMAIL-MSGID: =?utf-8?q?1760938378014782581?= This commit makes the judgelitmus.sh script check the --hw argument (AKA the LKMM_HW_MAP_FILE environment variable) and to adjust its judgment for a run where a C-language litmus test has been translated to assembly and the assembly version verified. In this case, the assembly verification output is checked against the C-language script's "Result:" comment. However, because hardware can be stronger than LKMM requires, the judgelitmus.sh script forgives verification mismatches featuring a "Sometimes" in the C-language script and an "Always" or "Never" assembly-language verification. Note that deadlock is not forgiven, however, this should not normally be an issue given that C-language tests containing locking, RCU, or SRCU cannot be translated to assembly. However, this issue can crop up in litmus tests that mimic deadlock by using the "filter" clause to ignore all executions. It can also crop up when certain herd arguments are used to autofilter everything that does not match the "exists" clause in cases where the "exists" clause cannot be satisfied. Signed-off-by: Paul E. McKenney --- tools/memory-model/scripts/README | 8 +-- tools/memory-model/scripts/judgelitmus.sh | 75 ++++++++++++++--------- 2 files changed, 51 insertions(+), 32 deletions(-) diff --git a/tools/memory-model/scripts/README b/tools/memory-model/scripts/README index 095c7eb36f9f..0e29a52044c1 100644 --- a/tools/memory-model/scripts/README +++ b/tools/memory-model/scripts/README @@ -43,10 +43,10 @@ initlitmushist.sh judgelitmus.sh - Given a .litmus file and its .litmus.out herd7 output, check the - .litmus.out file against the .litmus file's "Result:" comment to - judge whether the test ran correctly. Not normally run manually, - provided instead for use by other scripts. + Given a .litmus file and its herd7 output, check the output file + against the .litmus file's "Result:" comment to judge whether + the test ran correctly. Not normally run manually, provided + instead for use by other scripts. newlitmushist.sh diff --git a/tools/memory-model/scripts/judgelitmus.sh b/tools/memory-model/scripts/judgelitmus.sh index d82133e75580..6f3c60065c8b 100755 --- a/tools/memory-model/scripts/judgelitmus.sh +++ b/tools/memory-model/scripts/judgelitmus.sh @@ -1,9 +1,14 @@ #!/bin/sh # SPDX-License-Identifier: GPL-2.0+ # -# Given a .litmus test and the corresponding .litmus.out file, check -# the .litmus.out file against the "Result:" comment to judge whether -# the test ran correctly. +# Given a .litmus test and the corresponding litmus output file, check +# the .litmus.out file against the "Result:" comment to judge whether the +# test ran correctly. If the --hw argument is omitted, check against the +# LKMM output, which is assumed to be in file.litmus.out. If this argument +# is provided, this is assumed to be a hardware test, and the output is +# assumed to be in file.HW.litmus.out, where "HW" is the --hw argument. +# In addition, non-Sometimes verification results will be noted, but +# forgiven. # # Usage: # judgelitmus.sh file.litmus @@ -24,11 +29,18 @@ else echo ' --- ' error: \"$litmus\" is not a readable file exit 255 fi -if test -f "$LKMM_DESTDIR/$litmus".out -a -r "$LKMM_DESTDIR/$litmus".out +if test -z "$LKMM_HW_MAP_FILE" +then + litmusout=$litmus.out +else + litmusout="`echo $litmus | + sed -e 's/\.litmus$/.'${LKMM_HW_MAP_FILE}'.litmus/'`.out" +fi +if test -f "$LKMM_DESTDIR/$litmusout" -a -r "$LKMM_DESTDIR/$litmusout" then : else - echo ' --- ' error: \"$LKMM_DESTDIR/$litmus\".out is not a readable file + echo ' --- ' error: \"$LKMM_DESTDIR/$litmusout is not a readable file exit 255 fi if grep -q '^ \* Result: ' $litmus @@ -38,69 +50,76 @@ else outcome=specified fi -grep '^Observation' $LKMM_DESTDIR/$litmus.out -if grep -q '^Observation' $LKMM_DESTDIR/$litmus.out +grep '^Observation' $LKMM_DESTDIR/$litmusout +if grep -q '^Observation' $LKMM_DESTDIR/$litmusout then : -elif grep ': Unknown macro ' $LKMM_DESTDIR/$litmus.out +elif grep ': Unknown macro ' $LKMM_DESTDIR/$litmusout then - badname=`grep ': Unknown macro ' $LKMM_DESTDIR/$litmus.out | + badname=`grep ': Unknown macro ' $LKMM_DESTDIR/$litmusout | sed -e 's/^.*: Unknown macro //' | sed -e 's/ (User error).*$//'` badmsg=' !!! Current LKMM version does not know "'$badname'"'" $litmus" echo $badmsg - if ! grep -q '!!!' $LKMM_DESTDIR/$litmus.out + if ! grep -q '!!!' $LKMM_DESTDIR/$litmusout then - echo ' !!! '$badmsg >> $LKMM_DESTDIR/$litmus.out 2>&1 + echo ' !!! '$badmsg >> $LKMM_DESTDIR/$litmusout 2>&1 fi exit 254 -elif grep '^Command exited with non-zero status 124' $LKMM_DESTDIR/$litmus.out +elif grep '^Command exited with non-zero status 124' $LKMM_DESTDIR/$litmusout then echo ' !!! Timeout' $litmus - if ! grep -q '!!!' $LKMM_DESTDIR/$litmus.out + if ! grep -q '!!!' $LKMM_DESTDIR/$litmusout then - echo ' !!! Timeout' >> $LKMM_DESTDIR/$litmus.out 2>&1 + echo ' !!! Timeout' >> $LKMM_DESTDIR/$litmusout 2>&1 fi exit 124 else echo ' !!! Verification error' $litmus - if ! grep -q '!!!' $LKMM_DESTDIR/$litmus.out + if ! grep -q '!!!' $LKMM_DESTDIR/$litmusout then - echo ' !!! Verification error' >> $LKMM_DESTDIR/$litmus.out 2>&1 + echo ' !!! Verification error' >> $LKMM_DESTDIR/$litmusout 2>&1 fi exit 255 fi if test "$outcome" = DEADLOCK then - if grep '^Observation' $LKMM_DESTDIR/$litmus.out | grep -q 'Never 0 0$' + if grep '^Observation' $LKMM_DESTDIR/$litmusout | grep -q 'Never 0 0$' then ret=0 else echo " !!! Unexpected non-$outcome verification" $litmus - if ! grep -q '!!!' $LKMM_DESTDIR/$litmus.out + if ! grep -q '!!!' $LKMM_DESTDIR/$litmusout then - echo " !!! Unexpected non-$outcome verification" >> $LKMM_DESTDIR/$litmus.out 2>&1 + echo " !!! Unexpected non-$outcome verification" >> $LKMM_DESTDIR/$litmusout 2>&1 fi ret=1 fi -elif grep '^Observation' $LKMM_DESTDIR/$litmus.out | grep -q 'Never 0 0$' +elif grep '^Observation' $LKMM_DESTDIR/$litmusout | grep -q 'Never 0 0$' then echo " !!! Unexpected non-$outcome deadlock" $litmus - if ! grep -q '!!!' $LKMM_DESTDIR/$litmus.out + if ! grep -q '!!!' $LKMM_DESTDIR/$litmusout then - echo " !!! Unexpected non-$outcome deadlock" $litmus >> $LKMM_DESTDIR/$litmus.out 2>&1 + echo " !!! Unexpected non-$outcome deadlock" $litmus >> $LKMM_DESTDIR/$litmusout 2>&1 fi ret=1 -elif grep '^Observation' $LKMM_DESTDIR/$litmus.out | grep -q $outcome || test "$outcome" = Maybe +elif grep '^Observation' $LKMM_DESTDIR/$litmusout | grep -q $outcome || test "$outcome" = Maybe then ret=0 else - echo " !!! Unexpected non-$outcome verification" $litmus - if ! grep -q '!!!' $LKMM_DESTDIR/$litmus.out + if test -n "$LKMM_HW_MAP_FILE" -a "$outcome" = Sometimes then - echo " !!! Unexpected non-$outcome verification" >> $LKMM_DESTDIR/$litmus.out 2>&1 + flag="--- Forgiven" + ret=0 + else + flag="!!! Unexpected" + ret=1 + fi + echo " $flag non-$outcome verification" $litmus + if ! grep -qe "$flag" $LKMM_DESTDIR/$litmusout + then + echo " $flag non-$outcome verification" >> $LKMM_DESTDIR/$litmusout 2>&1 fi - ret=1 fi -tail -2 $LKMM_DESTDIR/$litmus.out | head -1 +tail -2 $LKMM_DESTDIR/$litmusout | head -1 exit $ret From patchwork Tue Mar 21 01:05:27 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Paul E. McKenney" X-Patchwork-Id: 72589 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:604a:0:0:0:0:0 with SMTP id j10csp1528546wrt; Mon, 20 Mar 2023 18:21:40 -0700 (PDT) X-Google-Smtp-Source: AK7set9+r/evdCUiizpReg8YO6LllMUB6byU5gCtEWe7xxUIHpyqCrzhsCp4B3zyWlzEHVlD6tz/ X-Received: by 2002:a17:902:e5cf:b0:19c:e664:5e64 with SMTP id u15-20020a170902e5cf00b0019ce6645e64mr614611plf.2.1679361700262; Mon, 20 Mar 2023 18:21:40 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1679361700; cv=none; d=google.com; s=arc-20160816; b=lakxGw8dmN38lgc4M5hqNOnMH4vOi+D1l5IWmMuNHawxSnWlNwLYloaAdykAcJEEiG M4Or1Q2/Awst2i1OjapCfbrJdvAw9P971glsTJxILV6kis5i2gdCNnbH+xvOq/e6G70T pE3wEqme6Tflux8imX6lxhl5NyTgiRkdvP6oDxhghZsQz4lhi2XucfOCJfFkELA9y1Ri e4cG5XsF/OdgmoXF+e6BpM3D/ZYRtjYADBwZizcEcw3G8lOJiDDHsScmvwOXNw+maWoX esPIk2fjOqg/oPnEZXnYN3gRPBwaeqj/VAit+RgeL9vn44MDLVSxM1r1+pj6cMjhPZxh tYhA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=6HgZl4n2xosLc79hgr3RxofuS2k6js1LI7xKXsb0RaA=; b=m1SnkzYgzB2uzjYlQytAeTcFcEG6UhEECbOJiqR64dG3oCOGYehybBfGvDzknV9gA1 alfLalPYrXC5mvaETIKyN+PFfTXavlg64/S+0aJWEkXVt8fzsD1VXHiagcBCJtDiyN5m IH158ZOiNOprZCLNi73D3fXuEx15pRN30XBiGOgdFc54sl6isgq/sBPIBybK/x41VyoG 7wEbNmlVhTip5Djp3oU6pEEDCyJTAXTH9+ZdDnUIRx5dEoB6IvYcFk/XFM9eiXZogjRf iigv62nA6m5LO/9enj4mImsOAp/W95/5agutR7oVN3D9q2Ieq9y428PLelqxxs1VLlGc xPPg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=XGIeTiTO; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id z17-20020a170903019100b0019adf507297si13078659plg.73.2023.03.20.18.21.28; Mon, 20 Mar 2023 18:21:40 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=XGIeTiTO; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230218AbjCUBHl (ORCPT + 99 others); Mon, 20 Mar 2023 21:07:41 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54850 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230156AbjCUBHK (ORCPT ); Mon, 20 Mar 2023 21:07:10 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [IPv6:2604:1380:4641:c500::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 135CF1A650; Mon, 20 Mar 2023 18:06:32 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 1A8F461902; Tue, 21 Mar 2023 01:05:52 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 25DAFC433A1; Tue, 21 Mar 2023 01:05:51 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1679360751; bh=vZ6Pz1PKh0WTymN7JYe3wWXpRMV+Iv9Ig+pyu93inaQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=XGIeTiTOfudRsodlK5j6XICuMR3vxJ9Mf70sQFLPOsiSHs3ciru/6S/aS7VQ0qJB9 1gNWayQm2GHRpEIxSTr3uz5HhomtPVkk/mt1C4lhDORiUNvzO8WE6OGnhJyy7JQm5M eG5uPqYqbGlTN3K6S9sv87GYAaXa6gsPxOHtVMzzyE4GwL+TnAuJpDD2IkAn9i9CXa iuHkvQdVo74UPIQpIhQuGhRUo4WK9CmYicYvADZymyHR0aG591ekvbim0mAQnTeK5X oEzY9QKImvMvktw3mAJGmdJ1L/eI9g2yPO+K0ccrkt7+3MvEaHsFXZUaXQMhu8L+FO aDNMDv9o7aILg== Received: by paulmck-ThinkPad-P72.home (Postfix, from userid 1000) id 8246315403A9; Mon, 20 Mar 2023 18:05:50 -0700 (PDT) From: "Paul E. McKenney" To: linux-kernel@vger.kernel.org, linux-arch@vger.kernel.org, kernel-team@meta.com, mingo@kernel.org Cc: stern@rowland.harvard.edu, parri.andrea@gmail.com, will@kernel.org, peterz@infradead.org, boqun.feng@gmail.com, npiggin@gmail.com, dhowells@redhat.com, j.alglave@ucl.ac.uk, luc.maranget@inria.fr, akiyks@gmail.com, "Paul E. McKenney" Subject: [PATCH memory-model scripts 09/31] tools/memory-model: Add simpletest.sh to check locking, RCU, and SRCU Date: Mon, 20 Mar 2023 18:05:27 -0700 Message-Id: <20230321010549.51296-9-paulmck@kernel.org> X-Mailer: git-send-email 2.40.0.rc2 In-Reply-To: <4e5839bb-e980-4931-a550-3548d025a32a@paulmck-laptop> References: <4e5839bb-e980-4931-a550-3548d025a32a@paulmck-laptop> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1760938374240259148?= X-GMAIL-MSGID: =?utf-8?q?1760938374240259148?= This commit abstracts out common function to check a given litmus test for locking, RCU, and SRCU in order to avoid duplicating code. Signed-off-by: Paul E. McKenney --- tools/memory-model/scripts/simpletest.sh | 35 ++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100755 tools/memory-model/scripts/simpletest.sh diff --git a/tools/memory-model/scripts/simpletest.sh b/tools/memory-model/scripts/simpletest.sh new file mode 100755 index 000000000000..7edc5d361665 --- /dev/null +++ b/tools/memory-model/scripts/simpletest.sh @@ -0,0 +1,35 @@ +#!/bin/sh +# SPDX-License-Identifier: GPL-2.0+ +# +# Give zero status if this is a simple test and non-zero otherwise. +# Simple tests do not contain locking, RCU, or SRCU. +# +# Usage: +# simpletest.sh file.litmus +# +# Copyright IBM Corporation, 2019 +# +# Author: Paul E. McKenney + + +litmus=$1 + +if test -f "$litmus" -a -r "$litmus" +then + : +else + echo ' --- ' error: \"$litmus\" is not a readable file + exit 255 +fi +exclude="^[[:space:]]*\(" +exclude="${exclude}spin_lock(\|spin_unlock(\|spin_trylock(\|spin_is_locked(" +exclude="${exclude}\|rcu_read_lock(\|rcu_read_unlock(" +exclude="${exclude}\|synchronize_rcu(\|synchronize_rcu_expedited(" +exclude="${exclude}\|srcu_read_lock(\|srcu_read_unlock(" +exclude="${exclude}\|synchronize_srcu(\|synchronize_srcu_expedited(" +exclude="${exclude}\)" +if grep -q $exclude $litmus +then + exit 255 +fi +exit 0 From patchwork Tue Mar 21 01:05:28 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Paul E. McKenney" X-Patchwork-Id: 72580 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:604a:0:0:0:0:0 with SMTP id j10csp1526610wrt; Mon, 20 Mar 2023 18:15:37 -0700 (PDT) X-Google-Smtp-Source: AK7set+SknztiOv9vROP7SG5SQ2YkVm+stYUvmpD/SQOnRsgGpxZ9FxuCG8o1w2lJTki9jvSoeIw X-Received: by 2002:a17:902:ec87:b0:1a1:af34:ab35 with SMTP id x7-20020a170902ec8700b001a1af34ab35mr580995plg.2.1679361337365; Mon, 20 Mar 2023 18:15:37 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1679361337; cv=none; d=google.com; s=arc-20160816; b=QZnwS0r6jfkxfDELWsCYHVshA3oqLmTt3SZfhIfk3rdiKhQaQ14SgEH5qlnRaZZtGE 2B2lHTMeDM1aeBF17D9yTcc+ttVtQt0yT6s14cSZY9loCCmCq6UgyH5H/HRNshHY0Tg8 KG7bJLC3pzoBq8FdbyD81TRi+qFlW0yoChoUVNpoFwDkWffrWgxebAa4mBaaxpKAQkzV KuLWl1XBMzwkXI+BstNWcdQGJNr6L/I0lR01kCHdM983fHAUrIJ2U88eoaGqpDzWhdQv Xn5fCbl8MRRZmgDpa5jd3M2XW7Uz8O8iYth60KbhxvGkp1xG6I1HUTsLRlcH0tzq01Eq tylA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=ojT4O3cGRso6DTXU9jrOkEHFBVMzV/V9IXfSMCj/Jz4=; b=AEjdO5p17XIY8Hgk7KKHCmuSXr0tBVHz4o+4RWCWe7RAfupuFtwnStE2h5Qw59fx+2 ke1VIbGeWr9huKkUelGjePnzhfpEST4cbRo2H5GPxhJfWTmoEuYc5WmXoqID+s9jdxnd C36+FQKWeWcpSLTXWhUOzWujKWvoVCP4N9CCW3QhGwuVoAyywWC6tLx3RK4ndLa9O6sm 2gq7d702Om4n9CngvsNj+6rCmTxksI3PN/3Jp902TUCqfs/a5MzwC+X+d9lDvBKzznS+ tImEvaWLGQOiqZzSkz2bcNWRm/icNehQzhTp5kZsP2MUpvdY+xJsvoZdbZAgFHILl9jT eb0g== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=hUWitpbJ; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id la8-20020a170902fa0800b0019f0e7990e8si9667850plb.197.2023.03.20.18.15.24; Mon, 20 Mar 2023 18:15:37 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=hUWitpbJ; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230380AbjCUBJj (ORCPT + 99 others); Mon, 20 Mar 2023 21:09:39 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:55332 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230325AbjCUBIw (ORCPT ); Mon, 20 Mar 2023 21:08:52 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 01AA538B60; Mon, 20 Mar 2023 18:07:44 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 247E061909; Tue, 21 Mar 2023 01:05:52 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 3B078C433A8; Tue, 21 Mar 2023 01:05:51 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1679360751; bh=KkPUBBLg+ligW+yx5AbfVzthM2h8Gkqfjs4qM6K8Bgo=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=hUWitpbJYmNgf53mUcNVEq8XVEx7YGRmxfziFNoo8aDxb04wa8cb9caPpva8NWFnC tWvtTM2xckwxP5b4p3jE6I7YN9KobRANvi8eFx5sJLuCSpBUecFVmC9nxS1Smsyyrw SuzYCl1nWs//5lzeV8g/6qtt/vdTadoadY9FuxqvXsuWGzO9FNrVpSPLGs4eZNh0Pj VfWOeMVQ0DofMK4EnnR2pBmbhuovPjP+ORlkwXiTm38ZujUMcHVTWF5AvSjYPVEEx0 UPUtq1gQDYb/hpPjYW/ga3yUGlTjhsGXc3M1SLa5dHK7bcJlPbFHumZDNTZAewS5xf 0c0s/5ZHWX1+A== Received: by paulmck-ThinkPad-P72.home (Postfix, from userid 1000) id 8680415403AB; Mon, 20 Mar 2023 18:05:50 -0700 (PDT) From: "Paul E. McKenney" To: linux-kernel@vger.kernel.org, linux-arch@vger.kernel.org, kernel-team@meta.com, mingo@kernel.org Cc: stern@rowland.harvard.edu, parri.andrea@gmail.com, will@kernel.org, peterz@infradead.org, boqun.feng@gmail.com, npiggin@gmail.com, dhowells@redhat.com, j.alglave@ucl.ac.uk, luc.maranget@inria.fr, akiyks@gmail.com, "Paul E. McKenney" Subject: [PATCH memory-model scripts 10/31] tools/memory-model: Fix checkalllitmus.sh comment Date: Mon, 20 Mar 2023 18:05:28 -0700 Message-Id: <20230321010549.51296-10-paulmck@kernel.org> X-Mailer: git-send-email 2.40.0.rc2 In-Reply-To: <4e5839bb-e980-4931-a550-3548d025a32a@paulmck-laptop> References: <4e5839bb-e980-4931-a550-3548d025a32a@paulmck-laptop> MIME-Version: 1.0 X-Spam-Status: No, score=-7.1 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_HI, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1760937993738955268?= X-GMAIL-MSGID: =?utf-8?q?1760937993738955268?= The checkalllitmus.sh runs litmus tests in the litmus-tests directory, not those in the github archive, so this commit updates the comment to reflect this reality. Signed-off-by: Paul E. McKenney --- tools/memory-model/scripts/checkalllitmus.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/memory-model/scripts/checkalllitmus.sh b/tools/memory-model/scripts/checkalllitmus.sh index 10e14d94acee..54d8da8c338e 100755 --- a/tools/memory-model/scripts/checkalllitmus.sh +++ b/tools/memory-model/scripts/checkalllitmus.sh @@ -30,8 +30,8 @@ else exit 255 fi -# Create any new directories that have appeared in the github litmus -# repo since the last run. +# Create any new directories that have appeared in the litmus-tests +# directory since the last run. if test "$LKMM_DESTDIR" != "." then find $litmusdir -type d -print | From patchwork Tue Mar 21 01:05:29 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Paul E. McKenney" X-Patchwork-Id: 72594 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:604a:0:0:0:0:0 with SMTP id j10csp1528866wrt; Mon, 20 Mar 2023 18:22:36 -0700 (PDT) X-Google-Smtp-Source: AK7set/yAu72ydnm+d6X9AsUeZZ5/sOY+NNWSjJYCyyOptDXka/cs7a8427NyDnPPxtVnHqTPv+e X-Received: by 2002:a17:903:1c8:b0:19d:20a:a219 with SMTP id e8-20020a17090301c800b0019d020aa219mr474713plh.66.1679361756454; Mon, 20 Mar 2023 18:22:36 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1679361756; cv=none; d=google.com; s=arc-20160816; b=UpDAVrJgpYrrkpJVOHu9NznthoE+oIS5TGuFkRQW29mHIY1UT5pINPQK6DSK2PIelJ nob9LYRI+Ue/fkJxKMpCpaubwKAVdkWifi9O/DzWT0r5NjvUNFBaUc3Xa1ySjsf843+C zX5D/cm0kVTBBCvxKovAZ+JWYFHDel62EjbYns3gM3rXm+9SMCEE7aDXpbGljefVr7Vm lL1qhzxYZj5G/CCw4KjBlfniBRScquO43EMTI74IdFGsbY06QmoZ3b78jNzKdN2BIt+D b+OK3px5u3sVFkxj3k2Sc2Fe5Q+imejUAyrSBlKiNsRtlgS/r+8f45SPCFN3HQIGm8jq S2Jw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=FucnR7RnCzyxANJbZT19v9QaV2qg4CFs+fGp9ygkPys=; b=xDgPY0zyl0J7447kfRRGhiarnjp+qZDOdQ7NKjby94oKoO1TPwHQt/JnRu7y3hbj+p /yigGiLUukX9AS9hrHCM88L8oeP0Yfial/v4KoC7KsAesvzoIcoatHD9jUqb6dAvbVme DIuk9begJOPHMjZfbnEnDZ3NRVWEo5qdhDY+24bZn/vusvMyEm6/Q3QjHLJAg0Pwg6tq XfnzbRWeXmRHLuf8m+pv8xc8DMi2ck7fXtNq7NIvuTEAh9q2S99FvrJtfz1szYnbwZWd PPNXXnOp8NCorcAiy3v5Tks/atid76DATKIQCG9TPsIx1+IZBTOXhfzP/51SPXrtU4a1 kZfg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=ZZaAzJ68; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id d9-20020a170903230900b001a10c64c68csi12784023plh.113.2023.03.20.18.22.23; Mon, 20 Mar 2023 18:22:36 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=ZZaAzJ68; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230344AbjCUBJn (ORCPT + 99 others); Mon, 20 Mar 2023 21:09:43 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:55364 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230138AbjCUBJA (ORCPT ); Mon, 20 Mar 2023 21:09:00 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 795B336440; Mon, 20 Mar 2023 18:07:47 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 2FFB46190D; Tue, 21 Mar 2023 01:05:52 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 3EDE6C433AA; Tue, 21 Mar 2023 01:05:51 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1679360751; bh=V/B5mtkec3M+Mmw5Uf3vQ3zJrWeH4vUVItie4imYL48=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ZZaAzJ682yLnZQ4lXP6rVaoJZkMfNbEtXcfUhYzmXeUQVIh9Svi6gfGqTq5/ncKJs QycfKauDQQURkM8ZeGX7tE6/sDD66sOfEiLa++eMnKflU0I6jdiXEaaCUkNTik4Z4A v7mevMo7cdb8bn8OLMil1HPiWTWvvR8sA6iJwxvQr2BmusbRbnVuTU2nfdsASt7NYw rnFSXlalvyLDc89k0bQyQLNPdIRfGOlMQ/2QL7Bs9ejRnlRkONEGXvJkv5lprQWVAp Ym3C5Zi9oZ7mkEqhHpGKWCQvHyn8YwpLRGI17+1N4e15+TBqIgm9k+3yPMe6cMMADK 62C6IadadKQZw== Received: by paulmck-ThinkPad-P72.home (Postfix, from userid 1000) id 8A14715403AD; Mon, 20 Mar 2023 18:05:50 -0700 (PDT) From: "Paul E. McKenney" To: linux-kernel@vger.kernel.org, linux-arch@vger.kernel.org, kernel-team@meta.com, mingo@kernel.org Cc: stern@rowland.harvard.edu, parri.andrea@gmail.com, will@kernel.org, peterz@infradead.org, boqun.feng@gmail.com, npiggin@gmail.com, dhowells@redhat.com, j.alglave@ucl.ac.uk, luc.maranget@inria.fr, akiyks@gmail.com, "Paul E. McKenney" Subject: [PATCH memory-model scripts 11/31] tools/memory-model: Hardware checking for check{,all}litmus.sh Date: Mon, 20 Mar 2023 18:05:29 -0700 Message-Id: <20230321010549.51296-11-paulmck@kernel.org> X-Mailer: git-send-email 2.40.0.rc2 In-Reply-To: <4e5839bb-e980-4931-a550-3548d025a32a@paulmck-laptop> References: <4e5839bb-e980-4931-a550-3548d025a32a@paulmck-laptop> MIME-Version: 1.0 X-Spam-Status: No, score=-7.1 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_HI, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1760938433069773485?= X-GMAIL-MSGID: =?utf-8?q?1760938433069773485?= This commit makes checklitmus.sh and checkalllitmus.sh check to see if a hardware verification was specified (via the --hw command-line argument, which sets the LKMM_HW_MAP_FILE environment variable). If so, the C-language litmus test is converted to the specified type of assembly-language litmus test and herd is run on it. Hardware is permitted to be stronger than LKMM requires, so "Always" and "Never" verifications of "Sometimes" C-language litmus tests are forgiven. Signed-off-by: Paul E. McKenney --- tools/memory-model/scripts/checkalllitmus.sh | 23 +++++------ tools/memory-model/scripts/checklitmus.sh | 42 ++++++++++++++++++-- 2 files changed, 49 insertions(+), 16 deletions(-) diff --git a/tools/memory-model/scripts/checkalllitmus.sh b/tools/memory-model/scripts/checkalllitmus.sh index 54d8da8c338e..2d3ee850a839 100755 --- a/tools/memory-model/scripts/checkalllitmus.sh +++ b/tools/memory-model/scripts/checkalllitmus.sh @@ -1,4 +1,4 @@ -#!/bin/sh +#!/bin/bash # SPDX-License-Identifier: GPL-2.0+ # # Run herd7 tests on all .litmus files in the litmus-tests directory @@ -8,6 +8,11 @@ # "^^^". It also outputs verification results to a file whose name is # that of the specified litmus test, but with ".out" appended. # +# If the --hw argument is specified, this script translates the .litmus +# C-language file to the specified type of assembly and verifies that. +# But in this case, litmus tests using complex synchronization (such as +# locking, RCU, and SRCU) are cheerfully ignored. +# # Usage: # checkalllitmus.sh # @@ -38,21 +43,15 @@ then ( cd "$LKMM_DESTDIR"; sed -e 's/^/mkdir -p /' | sh ) fi -# Find the checklitmus script. If it is not where we expect it, then -# assume that the caller has the PATH environment variable set -# appropriately. -if test -x scripts/checklitmus.sh -then - clscript=scripts/checklitmus.sh -else - clscript=checklitmus.sh -fi - # Run the script on all the litmus tests in the specified directory ret=0 for i in $litmusdir/*.litmus do - if ! $clscript $i + if test -n "$LKMM_HW_MAP_FILE" && ! scripts/simpletest.sh $i + then + continue + fi + if ! scripts/checklitmus.sh $i then ret=1 fi diff --git a/tools/memory-model/scripts/checklitmus.sh b/tools/memory-model/scripts/checklitmus.sh index 638b8c610894..42ff11869cd6 100755 --- a/tools/memory-model/scripts/checklitmus.sh +++ b/tools/memory-model/scripts/checklitmus.sh @@ -6,6 +6,11 @@ # results to a file whose name is that of the specified litmus test, but # with ".out" appended. # +# If the --hw argument is specified, this script translates the .litmus +# C-language file to the specified type of assembly and verifies that. +# But in this case, litmus tests using complex synchronization (such as +# locking, RCU, and SRCU) are cheerfully ignored. +# # Usage: # checklitmus.sh file.litmus # @@ -18,8 +23,6 @@ # Author: Paul E. McKenney litmus=$1 -herdoptions=${LKMM_HERD_OPTIONS--conf linux-kernel.cfg} - if test -f "$litmus" -a -r "$litmus" then : @@ -28,7 +31,38 @@ else exit 255 fi -echo Herd options: $herdoptions > $LKMM_DESTDIR/$litmus.out -/usr/bin/time $LKMM_TIMEOUT_CMD herd7 $herdoptions $litmus >> $LKMM_DESTDIR/$litmus.out 2>&1 +if test -z "$LKMM_HW_MAP_FILE" +then + # LKMM run + herdoptions=${LKMM_HERD_OPTIONS--conf linux-kernel.cfg} + echo Herd options: $herdoptions > $LKMM_DESTDIR/$litmus.out + /usr/bin/time $LKMM_TIMEOUT_CMD herd7 $herdoptions $litmus >> $LKMM_DESTDIR/$litmus.out 2>&1 +else + # Hardware run + + T=/tmp/checklitmushw.sh.$$ + trap 'rm -rf $T' 0 2 + mkdir $T + + # Generate filenames + catfile="`echo $LKMM_HW_MAP_FILE | tr '[A-Z]' '[a-z]'`.cat" + mapfile="Linux2${LKMM_HW_MAP_FILE}.map" + themefile="$T/${LKMM_HW_MAP_FILE}.theme" + herdoptions="-model $LKMM_HW_CAT_FILE" + hwlitmus=`echo $litmus | sed -e 's/\.litmus$/.'${LKMM_HW_MAP_FILE}'.litmus/'` + hwlitmusfile=`echo $hwlitmus | sed -e 's,^.*/,,'` + + # Don't run on litmus tests with complex synchronization + if ! scripts/simpletest.sh $litmus + then + echo ' --- ' error: \"$litmus\" contains locking, RCU, or SRCU + exit 254 + fi + + # Generate the assembly code and run herd7 on it. + gen_theme7 -n 10 -map $mapfile -call Linux.call > $themefile + jingle7 -theme $themefile $litmus > $T/$hwlitmusfile 2> $T/$hwlitmusfile.jingle7.out + /usr/bin/time $LKMM_TIMEOUT_CMD herd7 -model $catfile $T/$hwlitmusfile > $LKMM_DESTDIR/$hwlitmus.out 2>&1 +fi scripts/judgelitmus.sh $litmus From patchwork Tue Mar 21 01:05:30 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Paul E. McKenney" X-Patchwork-Id: 72588 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:604a:0:0:0:0:0 with SMTP id j10csp1528225wrt; Mon, 20 Mar 2023 18:20:57 -0700 (PDT) X-Google-Smtp-Source: AK7set8Vg4cbcDmMVYMEBoAF8jm3KbBO0Atf1jC6vMNDTA6PwL4/nYI5Nr1sd0ENSCSoiR1+Q226 X-Received: by 2002:a17:902:ce83:b0:1a1:c54c:1a36 with SMTP id f3-20020a170902ce8300b001a1c54c1a36mr481502plg.63.1679361657030; Mon, 20 Mar 2023 18:20:57 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1679361657; cv=none; d=google.com; s=arc-20160816; b=XI2TkC1f+gV6/KeMzkqqkrNiwZusdSROl47CuikyO6sE8f2BztCB3janSxnOeaW0Hm lZfQ4F70/44wwyhRUpLWiuJ+hai1rQPISUEu534h9b5TwQvrbUHNIec/Z60bn+Uu6+Zo ED8nPR5OgUfYIH+tmmyvNbkC2+i55WrMYow8krqZIioOiRS8oRJ1mb2e4n2TuWTDago7 +lsLNet2Ba7d+G32GorAD7P0bHkxZjesGCDi/RUUHfSDsFljNsAxFaRBxwln3dkjGkZ3 MH9JzRPSqriTFvSK5TkqXr8XTf+8HvZpmqSUYQIc+6vi6j+WiITcOyOsBPJEiQ9UZMl4 ZLIw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=PgUoXVmVXnJKx/fFaIfhpQHrHFD0muH8dXJXiAdEYoA=; b=RW0+LYm0iDxbDAMTm3zmkejckNiEo8wn0B2W6gijsat2hAQJcgipuF0r9cllNd9Icu JzxdC5vRWElZ0naPh2DjFTSZPo2Km+VEhdpgYWeX/LnEIRrvOaqEMz9hTgHabgGKRWqA bxtrUufSfkHN3Fz8pIqARnjjmngEBvXMep2Oa3Jh2TS2f41Uctq0/x06Il+7wArNfXDv vXkmey6wSy/OdyObeXH7Jlh0f4jU4mepBWQId0FeTJyRa0NwBbJjSiML452+JhEMlHwJ MA5mAEMi9wuhCtSLytTULLDWFqkh5d9h7nmTul+Msv3Vx3U9HDDCQCWRsftMMH+zfjXd RxQQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=AdxUIorZ; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id kd4-20020a17090313c400b001a1c562e6a4si6029013plb.582.2023.03.20.18.20.44; Mon, 20 Mar 2023 18:20:57 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=AdxUIorZ; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230072AbjCUBKJ (ORCPT + 99 others); Mon, 20 Mar 2023 21:10:09 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:55604 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230203AbjCUBJU (ORCPT ); Mon, 20 Mar 2023 21:09:20 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C989238E9D; Mon, 20 Mar 2023 18:07:52 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 2D2746190B; Tue, 21 Mar 2023 01:05:52 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 3FB69C433AE; Tue, 21 Mar 2023 01:05:51 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1679360751; bh=X9XZ64eC274wgkQx6wWmhf2sQlJYCfwVsMTKahD9y60=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=AdxUIorZdsY+OeZI6H+I8yXTtMj/TVmvPGvUpK6enKYZ9pfnudoZuMfsjio1zdDQf xcjzJbq6Ys8mGNQIa81pi3N97ZQl98IviTJDzzO/X4L+SRmgyBDcx6oQRqGTj2CxGM +avZ69I273gPjo872PYRS4BJmVyPsRi5kdKT4A8ch2SgYcAXGLFxLzuRt6tkVYDc1I IlJCoaDHbNaWw+dkzzFMbmGTved6o8ygsrkmGk2RjWWPB4ZqFsMTKt2z1SeERy3Wyu 4IpWMT8oT5D02dwQbT90bX1rsR+RehwJrL6ePx1e4KtF74M9TsS3gLGgIGQ+KFNoiG +gGKz7Moanrmg== Received: by paulmck-ThinkPad-P72.home (Postfix, from userid 1000) id 8E24315403AF; Mon, 20 Mar 2023 18:05:50 -0700 (PDT) From: "Paul E. McKenney" To: linux-kernel@vger.kernel.org, linux-arch@vger.kernel.org, kernel-team@meta.com, mingo@kernel.org Cc: stern@rowland.harvard.edu, parri.andrea@gmail.com, will@kernel.org, peterz@infradead.org, boqun.feng@gmail.com, npiggin@gmail.com, dhowells@redhat.com, j.alglave@ucl.ac.uk, luc.maranget@inria.fr, akiyks@gmail.com, "Paul E. McKenney" Subject: [PATCH memory-model scripts 12/31] tools/memory-model: Make judgelitmus.sh ransack .litmus.out files Date: Mon, 20 Mar 2023 18:05:30 -0700 Message-Id: <20230321010549.51296-12-paulmck@kernel.org> X-Mailer: git-send-email 2.40.0.rc2 In-Reply-To: <4e5839bb-e980-4931-a550-3548d025a32a@paulmck-laptop> References: <4e5839bb-e980-4931-a550-3548d025a32a@paulmck-laptop> MIME-Version: 1.0 X-Spam-Status: No, score=-7.1 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_HI, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1760938328737632806?= X-GMAIL-MSGID: =?utf-8?q?1760938328737632806?= The judgelitmus.sh script currently relies solely on the "Result:" comment in the .litmus file. This is problematic when using the --hw argument, because it is necessary to check the hardware model against LKMM even in the absence of "Result:" comments. This commit therefore modifies judgelitmus.sh to check the observation in a .litmus.out file, in case one was generated by a previous LKMM run. Signed-off-by: Paul E. McKenney --- tools/memory-model/scripts/judgelitmus.sh | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/tools/memory-model/scripts/judgelitmus.sh b/tools/memory-model/scripts/judgelitmus.sh index 6f3c60065c8b..fe9131f8eb96 100755 --- a/tools/memory-model/scripts/judgelitmus.sh +++ b/tools/memory-model/scripts/judgelitmus.sh @@ -8,7 +8,9 @@ # is provided, this is assumed to be a hardware test, and the output is # assumed to be in file.HW.litmus.out, where "HW" is the --hw argument. # In addition, non-Sometimes verification results will be noted, but -# forgiven. +# forgiven. Furthermore, if there is no "Result:" comment but there is +# an LKMM .litmus.out file, the observation in that file will be used +# to judge the assembly-language verification. # # Usage: # judgelitmus.sh file.litmus @@ -32,9 +34,11 @@ fi if test -z "$LKMM_HW_MAP_FILE" then litmusout=$litmus.out + lkmmout= else litmusout="`echo $litmus | sed -e 's/\.litmus$/.'${LKMM_HW_MAP_FILE}'.litmus/'`.out" + lkmmout=$litmus.out fi if test -f "$LKMM_DESTDIR/$litmusout" -a -r "$LKMM_DESTDIR/$litmusout" then @@ -46,6 +50,9 @@ fi if grep -q '^ \* Result: ' $litmus then outcome=`grep -m 1 '^ \* Result: ' $litmus | awk '{ print $3 }'` +elif test -n "$LKMM_HW_MAP_FILE" && grep -q '^Observation' $LKMM_DESTDIR/$lkmmout > /dev/null 2>&1 +then + outcome=`grep -m 1 '^Observation ' $LKMM_DESTDIR/$lkmmout | awk '{ print $3 }'` else outcome=specified fi From patchwork Tue Mar 21 01:05:31 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Paul E. McKenney" X-Patchwork-Id: 72605 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:604a:0:0:0:0:0 with SMTP id j10csp1530138wrt; Mon, 20 Mar 2023 18:26:40 -0700 (PDT) X-Google-Smtp-Source: AK7set8xv9LkO/A3DlNtE4cbwLGlNKU0RWzCfd4X26yOnItyin4u2WPnwubKAGjxVpFGY3fHl3Hq X-Received: by 2002:a17:90b:17c5:b0:23d:4a40:e794 with SMTP id me5-20020a17090b17c500b0023d4a40e794mr356053pjb.10.1679361999950; Mon, 20 Mar 2023 18:26:39 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1679361999; cv=none; d=google.com; s=arc-20160816; b=z8Ivtyd8uJd/NVSQ6s+XpAYvX7XIxmOEkrC4EqGp2Ub7ZGEXDcKKbLNIMj5NXohSY2 t+F+pGQvxAVUiKZyRN1imhopSEpVBFeewqLFfRsAVNIe3dTMHhavwLobsu2C11HDI7ae +wXA/gTjsDu9DpyhKdl3+PKuj8JMsk9JP4WUCDa+DPeTFhvUFXyug6QWUc48Zh1m4B3Z LrDgMUrsYKxWIELQvVrnIEqbgtfbpq++1V809llli+tUfJTXcPHof6MjxwvGAH4okmw5 P2Gqpe1ByNpsB1CpxDLd73/wsu5LOU+l3lxsmyGhyhFWnuQmENaeDqvkaNZgTOxAOfrk 6rSA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=WxdPRga92uq5RfZuVxvlzoosz95acFXTWJyYGMyzwog=; b=OvaahSVQOAeRR9YNnyre0lsT2O2GvBh3L1h6CmJ2kiRgiHBRSZlNw/78+GLZDc0Bdf G34ULEtxFUMpX1Y5Ek74FTv+WUv09WkcgLdeoxzR0u7hiVRa2muf4TtcazuXrlDNDuL9 C9Od432XfyXjP0ITJl1V10uJ6O6H3SKztyk4Mfcztt6nEt2xNBh04jRTgVwUa0PnF5od tr+jkuQYrgf7/xTm3NQIVftIxTY0L0uOpd29gWHUdLnhVOqB2GW8/o9tunA1/SX3Zwlh cq/bdj+QSL1lYiAioECBzDjqAhlJotch9YVrQUF1qmHN+VH0epefT2OCxMK4KrsFQ/hV MGCA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=BzEo2pxk; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id v11-20020a63f84b000000b004fb954ce988si11740382pgj.727.2023.03.20.18.26.27; Mon, 20 Mar 2023 18:26:39 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=BzEo2pxk; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230105AbjCUBIm (ORCPT + 99 others); Mon, 20 Mar 2023 21:08:42 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54460 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230261AbjCUBII (ORCPT ); Mon, 20 Mar 2023 21:08:08 -0400 Received: from sin.source.kernel.org (sin.source.kernel.org [145.40.73.55]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 3CD643770F; Mon, 20 Mar 2023 18:06:59 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by sin.source.kernel.org (Postfix) with ESMTPS id C9BB0CE16A5; Tue, 21 Mar 2023 01:05:53 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 52A2AC433AC; Tue, 21 Mar 2023 01:05:51 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1679360751; bh=f6IKxMTaJcICYTISs9nF6sa539njknB8QuXY3B+9jxI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=BzEo2pxkp8bTVwQTzlbRxIRAaeL9v/YByMGmliGd+fVuZVP1OIxxSY4Yk3h/OUh0a 9y4J6PvlU00C5eDhS+xUTgYzRVqlfuVft67nKZQeJjzKcPYi4mFX/kXiglTYcqAV4y MzSQWD0Fs09v5diigGUnk4/s98BspjsWh658boFd6msiY3qt/HW+IF/4PbDcA7fjXQ w5aHpa0VX68FNK+U3nC3gb7t9kysvOCOEoJMJFqwneuD6mvC8zlRhRv6F7doIkQ+0y f7REsCg0kSgPOJ7VEtJLXzN9Y0SUpXLhm3Y8if9HWgm/9iKhA0450PIE9CHRoj6N8d yMwo+J90Fo6gQ== Received: by paulmck-ThinkPad-P72.home (Postfix, from userid 1000) id 922FE15403B1; Mon, 20 Mar 2023 18:05:50 -0700 (PDT) From: "Paul E. McKenney" To: linux-kernel@vger.kernel.org, linux-arch@vger.kernel.org, kernel-team@meta.com, mingo@kernel.org Cc: stern@rowland.harvard.edu, parri.andrea@gmail.com, will@kernel.org, peterz@infradead.org, boqun.feng@gmail.com, npiggin@gmail.com, dhowells@redhat.com, j.alglave@ucl.ac.uk, luc.maranget@inria.fr, akiyks@gmail.com, "Paul E. McKenney" Subject: [PATCH memory-model scripts 13/31] tools/memory-model: Split runlitmus.sh out of checklitmus.sh Date: Mon, 20 Mar 2023 18:05:31 -0700 Message-Id: <20230321010549.51296-13-paulmck@kernel.org> X-Mailer: git-send-email 2.40.0.rc2 In-Reply-To: <4e5839bb-e980-4931-a550-3548d025a32a@paulmck-laptop> References: <4e5839bb-e980-4931-a550-3548d025a32a@paulmck-laptop> MIME-Version: 1.0 X-Spam-Status: No, score=-7.1 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_HI, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1760938688877304450?= X-GMAIL-MSGID: =?utf-8?q?1760938688877304450?= This commit prepares for adding --hw capability to github litmus-test scripts by splitting runlitmus.sh (which simply runs the verification) out of checklitmus.sh (which also judges the results). Signed-off-by: Paul E. McKenney --- tools/memory-model/scripts/checklitmus.sh | 57 ++----------------- tools/memory-model/scripts/runlitmus.sh | 69 +++++++++++++++++++++++ 2 files changed, 73 insertions(+), 53 deletions(-) create mode 100755 tools/memory-model/scripts/runlitmus.sh diff --git a/tools/memory-model/scripts/checklitmus.sh b/tools/memory-model/scripts/checklitmus.sh index 42ff11869cd6..4c1d0cf0ddad 100755 --- a/tools/memory-model/scripts/checklitmus.sh +++ b/tools/memory-model/scripts/checklitmus.sh @@ -1,15 +1,8 @@ #!/bin/sh # SPDX-License-Identifier: GPL-2.0+ # -# Run a herd7 test and invokes judgelitmus.sh to check the result against -# a "Result:" comment within the litmus test. It also outputs verification -# results to a file whose name is that of the specified litmus test, but -# with ".out" appended. -# -# If the --hw argument is specified, this script translates the .litmus -# C-language file to the specified type of assembly and verifies that. -# But in this case, litmus tests using complex synchronization (such as -# locking, RCU, and SRCU) are cheerfully ignored. +# Invokes runlitmus.sh and judgelitmus.sh on its arguments to run the +# specified litmus test and pass judgment on the results. # # Usage: # checklitmus.sh file.litmus @@ -22,47 +15,5 @@ # # Author: Paul E. McKenney -litmus=$1 -if test -f "$litmus" -a -r "$litmus" -then - : -else - echo ' --- ' error: \"$litmus\" is not a readable file - exit 255 -fi - -if test -z "$LKMM_HW_MAP_FILE" -then - # LKMM run - herdoptions=${LKMM_HERD_OPTIONS--conf linux-kernel.cfg} - echo Herd options: $herdoptions > $LKMM_DESTDIR/$litmus.out - /usr/bin/time $LKMM_TIMEOUT_CMD herd7 $herdoptions $litmus >> $LKMM_DESTDIR/$litmus.out 2>&1 -else - # Hardware run - - T=/tmp/checklitmushw.sh.$$ - trap 'rm -rf $T' 0 2 - mkdir $T - - # Generate filenames - catfile="`echo $LKMM_HW_MAP_FILE | tr '[A-Z]' '[a-z]'`.cat" - mapfile="Linux2${LKMM_HW_MAP_FILE}.map" - themefile="$T/${LKMM_HW_MAP_FILE}.theme" - herdoptions="-model $LKMM_HW_CAT_FILE" - hwlitmus=`echo $litmus | sed -e 's/\.litmus$/.'${LKMM_HW_MAP_FILE}'.litmus/'` - hwlitmusfile=`echo $hwlitmus | sed -e 's,^.*/,,'` - - # Don't run on litmus tests with complex synchronization - if ! scripts/simpletest.sh $litmus - then - echo ' --- ' error: \"$litmus\" contains locking, RCU, or SRCU - exit 254 - fi - - # Generate the assembly code and run herd7 on it. - gen_theme7 -n 10 -map $mapfile -call Linux.call > $themefile - jingle7 -theme $themefile $litmus > $T/$hwlitmusfile 2> $T/$hwlitmusfile.jingle7.out - /usr/bin/time $LKMM_TIMEOUT_CMD herd7 -model $catfile $T/$hwlitmusfile > $LKMM_DESTDIR/$hwlitmus.out 2>&1 -fi - -scripts/judgelitmus.sh $litmus +scripts/runlitmus.sh $1 +scripts/judgelitmus.sh $1 diff --git a/tools/memory-model/scripts/runlitmus.sh b/tools/memory-model/scripts/runlitmus.sh new file mode 100755 index 000000000000..91af859c0e90 --- /dev/null +++ b/tools/memory-model/scripts/runlitmus.sh @@ -0,0 +1,69 @@ +#!/bin/sh +# SPDX-License-Identifier: GPL-2.0+ +# +# Without the -hw argument, runs a herd7 test and outputs verification +# results to a file whose name is that of the specified litmus test, +# but with ".out" appended. +# +# If the --hw argument is specified, this script translates the .litmus +# C-language file to the specified type of assembly and verifies that. +# But in this case, litmus tests using complex synchronization (such as +# locking, RCU, and SRCU) are cheerfully ignored. +# +# Either way, return the status of the herd7 command. +# +# Usage: +# runlitmus.sh file.litmus +# +# Run this in the directory containing the memory model, specifying the +# pathname of the litmus test to check. The caller is expected to have +# properly set up the LKMM environment variables. +# +# Copyright IBM Corporation, 2019 +# +# Author: Paul E. McKenney + +litmus=$1 +if test -f "$litmus" -a -r "$litmus" +then + : +else + echo ' --- ' error: \"$litmus\" is not a readable file + exit 255 +fi + +if test -z "$LKMM_HW_MAP_FILE" +then + # LKMM run + herdoptions=${LKMM_HERD_OPTIONS--conf linux-kernel.cfg} + echo Herd options: $herdoptions > $LKMM_DESTDIR/$litmus.out + /usr/bin/time $LKMM_TIMEOUT_CMD herd7 $herdoptions $litmus >> $LKMM_DESTDIR/$litmus.out 2>&1 +else + # Hardware run + + T=/tmp/checklitmushw.sh.$$ + trap 'rm -rf $T' 0 2 + mkdir $T + + # Generate filenames + catfile="`echo $LKMM_HW_MAP_FILE | tr '[A-Z]' '[a-z]'`.cat" + mapfile="Linux2${LKMM_HW_MAP_FILE}.map" + themefile="$T/${LKMM_HW_MAP_FILE}.theme" + herdoptions="-model $LKMM_HW_CAT_FILE" + hwlitmus=`echo $litmus | sed -e 's/\.litmus$/.'${LKMM_HW_MAP_FILE}'.litmus/'` + hwlitmusfile=`echo $hwlitmus | sed -e 's,^.*/,,'` + + # Don't run on litmus tests with complex synchronization + if ! scripts/simpletest.sh $litmus + then + echo ' --- ' error: \"$litmus\" contains locking, RCU, or SRCU + exit 254 + fi + + # Generate the assembly code and run herd on it. + gen_theme7 -n 10 -map $mapfile -call Linux.call > $themefile + jingle7 -theme $themefile $litmus > $T/$hwlitmusfile 2> $T/$hwlitmusfile.jingle7.out + /usr/bin/time $LKMM_TIMEOUT_CMD herd7 -model $catfile $T/$hwlitmusfile > $LKMM_DESTDIR/$hwlitmus.out 2>&1 +fi + +exit $? From patchwork Tue Mar 21 01:05:32 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Paul E. McKenney" X-Patchwork-Id: 72609 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:604a:0:0:0:0:0 with SMTP id j10csp1530275wrt; Mon, 20 Mar 2023 18:27:03 -0700 (PDT) X-Google-Smtp-Source: AK7set8ykoLWG0xm2a70Iv/BROJFNlZomjvQ7hWskRhW2Bn2XTXO5MPP/O0NXI8S/zFh/l+pFbdg X-Received: by 2002:a05:6a20:dc:b0:d4:c1ba:9f4e with SMTP id 28-20020a056a2000dc00b000d4c1ba9f4emr505406pzh.35.1679362023295; Mon, 20 Mar 2023 18:27:03 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1679362023; cv=none; d=google.com; s=arc-20160816; b=skoQL1cNcfOJfILpMkprX72iP9yEVqXpexnZWCHAJ/O7JCGB2lTIEVK5HMZRNfAgtz /B7SNczY5CwxpD552cp9beo0ZBCCC6afgjyB3nh1WB2q6OwPEDsrgScKqL4dbEZ3Z29r IEyzG9Fxky1RIcG/h9Y3q3UdwgpRe8pz0VPnDupM6/SB5vS1Ki3hZdlHx1DaMA8s8BVO 4MQS3h55ndcsXrPUFQ/gyADBYzFcWXVaUfMkG1xmimc9pO9DVaI0Ipj4kJ1ladGqoy2c cm/UVPScF4idTK5aVHrgWklA4G0KEStXax8GRww/F/J792hynsK/L4jUXyv8YgigDs45 c4nA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=szmCNMTJ3nibQEmcFEFVj5SVO1CNHoXuD3BQpn2859E=; b=MNF0VZRp+HCdJwRodnloGnwzgfhoLa0ltH7ko/wtcCFG5sHoNlTpZDXi03734amKfl kS4AUE2UQ0596nbo5lM28N+wan4dJ+fWFsVAeS+asRIrRgjnfweEbXAdnksch9qUvYK5 EX+pWwS9a/dH4oFR7w+hLFlOWuWw+GqwID6HFB98lJfXynu/Szh7y+YHabypsrLVDMvC 11V0Py4EfbWtclzjF0MV458KhxQ7tS2cULPczL4a5lerw0PTHRjUwQ0FrcvUQ8IvP7LS zRB5jZpDvhNjjjk1fZ5ZQMJrkZx8evGMOs2jYNNE0N6V5SaAdfTPrHTGf9UNfoNOaWw3 mApg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=lYL2FWtf; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id s35-20020a056a0017a300b0062624d7193dsi12972704pfg.70.2023.03.20.18.26.51; Mon, 20 Mar 2023 18:27:03 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=lYL2FWtf; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230316AbjCUBIv (ORCPT + 99 others); Mon, 20 Mar 2023 21:08:51 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:55244 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230119AbjCUBIY (ORCPT ); Mon, 20 Mar 2023 21:08:24 -0400 Received: from ams.source.kernel.org (ams.source.kernel.org [145.40.68.75]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id DC3A540E5; Mon, 20 Mar 2023 18:07:06 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ams.source.kernel.org (Postfix) with ESMTPS id 6C4FFB811C1; Tue, 21 Mar 2023 01:05:53 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 5C494C433AF; Tue, 21 Mar 2023 01:05:51 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1679360751; bh=e+JwgiSYBmcYTwtgzJeK6ycbQBOI0HkCxBZtQxMym1E=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=lYL2FWtfl/5U++XY6qbXdhgN8b+dGkmc2GkYyrbrBxC9QGJUQedZhZpILKFb2cM3d FZIh1euP87PX8MbXoxt2EfW13obVIFDUv06ASM7JvEMHw8VF2VVS9BrzebZm/pxgnX BH/+3DkQKL0P2mIMWjDas6sSHgqZFEjxeErl2jc6GDmp0p4nb/dwFBD1zi6ftgCrW+ lbH3VDmRyr8q6xigyX8f67Wwr8ja/oJJ83Lkv9Z/JfAf0CM7VlcNj6+GvNky6iQoR3 ZhVXHr7BoACLpNcumUuoOB2lh8+0y0WMI94HhiYffdjSSpNAYIGl9Q8GHKklx676cp eP74njSF5oD1g== Received: by paulmck-ThinkPad-P72.home (Postfix, from userid 1000) id 9626315403B3; Mon, 20 Mar 2023 18:05:50 -0700 (PDT) From: "Paul E. McKenney" To: linux-kernel@vger.kernel.org, linux-arch@vger.kernel.org, kernel-team@meta.com, mingo@kernel.org Cc: stern@rowland.harvard.edu, parri.andrea@gmail.com, will@kernel.org, peterz@infradead.org, boqun.feng@gmail.com, npiggin@gmail.com, dhowells@redhat.com, j.alglave@ucl.ac.uk, luc.maranget@inria.fr, akiyks@gmail.com, "Paul E. McKenney" Subject: [PATCH memory-model scripts 14/31] tools/memory-model: Make runlitmus.sh generate .litmus.out for --hw Date: Mon, 20 Mar 2023 18:05:32 -0700 Message-Id: <20230321010549.51296-14-paulmck@kernel.org> X-Mailer: git-send-email 2.40.0.rc2 In-Reply-To: <4e5839bb-e980-4931-a550-3548d025a32a@paulmck-laptop> References: <4e5839bb-e980-4931-a550-3548d025a32a@paulmck-laptop> MIME-Version: 1.0 X-Spam-Status: No, score=-7.1 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_HI, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1760938712955893017?= X-GMAIL-MSGID: =?utf-8?q?1760938712955893017?= In the absence of "Result:" comments, the runlitmus.sh script relies on litmus.out files from prior LKMM runs. This can be a bit user-hostile, so this commit makes runlitmus.sh generate any needed .litmus.out files that don't already exist. Signed-off-by: Paul E. McKenney --- tools/memory-model/scripts/runlitmus.sh | 54 ++++++++++++++----------- 1 file changed, 30 insertions(+), 24 deletions(-) diff --git a/tools/memory-model/scripts/runlitmus.sh b/tools/memory-model/scripts/runlitmus.sh index 91af859c0e90..2865a9661b07 100755 --- a/tools/memory-model/scripts/runlitmus.sh +++ b/tools/memory-model/scripts/runlitmus.sh @@ -28,42 +28,48 @@ if test -f "$litmus" -a -r "$litmus" then : else - echo ' --- ' error: \"$litmus\" is not a readable file + echo ' !!! ' error: \"$litmus\" is not a readable file exit 255 fi -if test -z "$LKMM_HW_MAP_FILE" +if test -z "$LKMM_HW_MAP_FILE" -o ! -e $LKMM_DESTDIR/$litmus.out then # LKMM run herdoptions=${LKMM_HERD_OPTIONS--conf linux-kernel.cfg} echo Herd options: $herdoptions > $LKMM_DESTDIR/$litmus.out /usr/bin/time $LKMM_TIMEOUT_CMD herd7 $herdoptions $litmus >> $LKMM_DESTDIR/$litmus.out 2>&1 -else - # Hardware run + ret=$? + if test -z "$LKMM_HW_MAP_FILE" + then + exit $ret + fi + echo " --- " Automatically generated LKMM output for '"'--hw $LKMM_HW_MAP_FILE'"' run +fi - T=/tmp/checklitmushw.sh.$$ - trap 'rm -rf $T' 0 2 - mkdir $T +# Hardware run - # Generate filenames - catfile="`echo $LKMM_HW_MAP_FILE | tr '[A-Z]' '[a-z]'`.cat" - mapfile="Linux2${LKMM_HW_MAP_FILE}.map" - themefile="$T/${LKMM_HW_MAP_FILE}.theme" - herdoptions="-model $LKMM_HW_CAT_FILE" - hwlitmus=`echo $litmus | sed -e 's/\.litmus$/.'${LKMM_HW_MAP_FILE}'.litmus/'` - hwlitmusfile=`echo $hwlitmus | sed -e 's,^.*/,,'` +T=/tmp/checklitmushw.sh.$$ +trap 'rm -rf $T' 0 2 +mkdir $T - # Don't run on litmus tests with complex synchronization - if ! scripts/simpletest.sh $litmus - then - echo ' --- ' error: \"$litmus\" contains locking, RCU, or SRCU - exit 254 - fi +# Generate filenames +catfile="`echo $LKMM_HW_MAP_FILE | tr '[A-Z]' '[a-z]'`.cat" +mapfile="Linux2${LKMM_HW_MAP_FILE}.map" +themefile="$T/${LKMM_HW_MAP_FILE}.theme" +herdoptions="-model $LKMM_HW_CAT_FILE" +hwlitmus=`echo $litmus | sed -e 's/\.litmus$/.'${LKMM_HW_MAP_FILE}'.litmus/'` +hwlitmusfile=`echo $hwlitmus | sed -e 's,^.*/,,'` - # Generate the assembly code and run herd on it. - gen_theme7 -n 10 -map $mapfile -call Linux.call > $themefile - jingle7 -theme $themefile $litmus > $T/$hwlitmusfile 2> $T/$hwlitmusfile.jingle7.out - /usr/bin/time $LKMM_TIMEOUT_CMD herd7 -model $catfile $T/$hwlitmusfile > $LKMM_DESTDIR/$hwlitmus.out 2>&1 +# Don't run on litmus tests with complex synchronization +if ! scripts/simpletest.sh $litmus +then + echo ' --- ' error: \"$litmus\" contains locking, RCU, or SRCU + exit 254 fi +# Generate the assembly code and run herd7 on it. +gen_theme7 -n 10 -map $mapfile -call Linux.call > $themefile +jingle7 -theme $themefile $litmus > $T/$hwlitmusfile 2> $T/$hwlitmusfile.jingle7.out +/usr/bin/time $LKMM_TIMEOUT_CMD herd7 -model $catfile $T/$hwlitmusfile > $LKMM_DESTDIR/$hwlitmus.out 2>&1 + exit $? From patchwork Tue Mar 21 01:05:33 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Paul E. McKenney" X-Patchwork-Id: 72601 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:604a:0:0:0:0:0 with SMTP id j10csp1529555wrt; Mon, 20 Mar 2023 18:24:56 -0700 (PDT) X-Google-Smtp-Source: AK7set+ZSu5UuzF2m0EYpRMo1w4cixPHieMVcOsr8rQvTkvxRXshCH18VnoEiHT/OcsBj9IAtfOP X-Received: by 2002:a17:90a:734a:b0:234:a88e:d67e with SMTP id j10-20020a17090a734a00b00234a88ed67emr665451pjs.34.1679361896149; Mon, 20 Mar 2023 18:24:56 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1679361896; cv=none; d=google.com; s=arc-20160816; b=mCVOnckj//HdOBtTjMR8pqDy2R/4qrtb7/WKBXCrv3Ybq3wVMMEdA2npP5lIitZ42J 1cKEVwyxyhkaNcclOtoB7Odue5NxSGDiMu88rJ8BTA06puutGUO/YDZh2wt07OlZUG22 xsLBFPY5dtOWWRnAmU4O2PsOU4uo9vvh7cS7zO6cUbG10e9T1knmac4Essm0agYw6jq5 sNB4z3mWA5/rSiFZcdOdPcDCw0e12m/UI2oZ37Bi0MzUngKtPvzdXNg/Rke+iOOT+YeQ S1BDJLTI0l6RPk0SR9XAHHC4Coyop+cRXxSUbTnlgvJakqWNpZ80+T1MMjzKhmKManCK STdg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=nzhRabapQDM6i6jOalqvXi3cg+89fZqCrqb5YtRRy+4=; b=MNg9tVdxIj/usiltXRpjM7jpKDZ+zFj9RLGEcZ9OPi62Hen4VSe/nP2UC9rhRGUmE9 boP2Dlq2C5OgC4dgHfzA3UbkVl8OAZGJSdJdbHwY6Tf2w9+KG9vYM5/wDlzIAnPQywvk rbkSLwrFVFNR17dbn15yo4zAnNDSnpbwprKP5y2YoloLv20OX6uR2opP3pUukpGBa8Ug xQURqnUeAfiZMPdjIf4D8AAIWsAzQjgI8pzdhFFdenEEM+IUi/cJcPnG5yKczEfNaEWB enLqH7yZkt+cHTtGWjCosr4PVhU3QWw0uRY5RsJbbASO57eUoO0gNlQEnJ4oCZ4WEc43 I+mQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b="YY/DmIoY"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id e14-20020a17090a4a0e00b0021918bc9a47si10965146pjh.174.2023.03.20.18.24.43; Mon, 20 Mar 2023 18:24:56 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b="YY/DmIoY"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230252AbjCUBH7 (ORCPT + 99 others); Mon, 20 Mar 2023 21:07:59 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54456 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230053AbjCUBHQ (ORCPT ); Mon, 20 Mar 2023 21:07:16 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [IPv6:2604:1380:4641:c500::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 0A92235243; Mon, 20 Mar 2023 18:06:37 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 472B261912; Tue, 21 Mar 2023 01:05:52 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 5D1DDC433B0; Tue, 21 Mar 2023 01:05:51 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1679360751; bh=VGCA+C0ef8eZmvBaYJ92neS/iUXCg6LsBghMzQBbpPw=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=YY/DmIoYUbhumK+97XG71aS+6NywVzT49eNz5WQ46VIuWTq3pdQ8yaQztDxjKanXF ovIDbvi/JS+BOuMgPgxFk6rMyNu3ZDYEsWXeTffamw5q7ETxB1BowdmvKzvDvPcjMi ARyaFTWZU0L4qa0uPYSJ8NtPQNyX+DMkQQVUHFu/Z93YCtn2LmEx1DRxTdEJj0FddJ gfcTr9zPp0iWjhOAM43/97HLW3MSeVrXecigO7zAzuNuD0uUabImJpmBUghdjhavXB c1lVBRMsCMKoa6Je2KJL8AzNYyc0LgwMeyIyoC6PvEITPpqdDH6h/KWs/3SJqwB13/ S84bCLaN7K75g== Received: by paulmck-ThinkPad-P72.home (Postfix, from userid 1000) id 9A00815403B5; Mon, 20 Mar 2023 18:05:50 -0700 (PDT) From: "Paul E. McKenney" To: linux-kernel@vger.kernel.org, linux-arch@vger.kernel.org, kernel-team@meta.com, mingo@kernel.org Cc: stern@rowland.harvard.edu, parri.andrea@gmail.com, will@kernel.org, peterz@infradead.org, boqun.feng@gmail.com, npiggin@gmail.com, dhowells@redhat.com, j.alglave@ucl.ac.uk, luc.maranget@inria.fr, akiyks@gmail.com, "Paul E. McKenney" Subject: [PATCH memory-model scripts 15/31] tools/memory-model: Move from .AArch64.litmus.out to .litmus.AArch.out Date: Mon, 20 Mar 2023 18:05:33 -0700 Message-Id: <20230321010549.51296-15-paulmck@kernel.org> X-Mailer: git-send-email 2.40.0.rc2 In-Reply-To: <4e5839bb-e980-4931-a550-3548d025a32a@paulmck-laptop> References: <4e5839bb-e980-4931-a550-3548d025a32a@paulmck-laptop> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1760938579468932643?= X-GMAIL-MSGID: =?utf-8?q?1760938579468932643?= When the github scripts see ".litmus.out", they assume that there must be a corresponding C-language ".litmus" file. Won't they be disappointed when they instead see nothing, or, worse yet, the corresponding assembly-language litmus test? This commit therefore swaps the hardware tag with the "litmus" to avoid this sort of disappointment. This commit also adjusts the .gitignore file so as to avoid adding these new ".out" files to git. [ paulmck: Apply Akira Yokosawa feedback. ] Signed-off-by: Paul E. McKenney --- tools/memory-model/litmus-tests/.gitignore | 2 +- tools/memory-model/scripts/judgelitmus.sh | 4 ++-- tools/memory-model/scripts/runlitmus.sh | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/tools/memory-model/litmus-tests/.gitignore b/tools/memory-model/litmus-tests/.gitignore index c492a1ddad91..d65462d64816 100644 --- a/tools/memory-model/litmus-tests/.gitignore +++ b/tools/memory-model/litmus-tests/.gitignore @@ -1,2 +1,2 @@ # SPDX-License-Identifier: GPL-2.0-only -*.litmus.out +*.out diff --git a/tools/memory-model/scripts/judgelitmus.sh b/tools/memory-model/scripts/judgelitmus.sh index fe9131f8eb96..9abda72fe013 100755 --- a/tools/memory-model/scripts/judgelitmus.sh +++ b/tools/memory-model/scripts/judgelitmus.sh @@ -6,7 +6,7 @@ # test ran correctly. If the --hw argument is omitted, check against the # LKMM output, which is assumed to be in file.litmus.out. If this argument # is provided, this is assumed to be a hardware test, and the output is -# assumed to be in file.HW.litmus.out, where "HW" is the --hw argument. +# assumed to be in file.litmus.HW.out, where "HW" is the --hw argument. # In addition, non-Sometimes verification results will be noted, but # forgiven. Furthermore, if there is no "Result:" comment but there is # an LKMM .litmus.out file, the observation in that file will be used @@ -37,7 +37,7 @@ then lkmmout= else litmusout="`echo $litmus | - sed -e 's/\.litmus$/.'${LKMM_HW_MAP_FILE}'.litmus/'`.out" + sed -e 's/\.litmus$/.litmus.'${LKMM_HW_MAP_FILE}'/'`.out" lkmmout=$litmus.out fi if test -f "$LKMM_DESTDIR/$litmusout" -a -r "$LKMM_DESTDIR/$litmusout" diff --git a/tools/memory-model/scripts/runlitmus.sh b/tools/memory-model/scripts/runlitmus.sh index 2865a9661b07..c84124b32bee 100755 --- a/tools/memory-model/scripts/runlitmus.sh +++ b/tools/memory-model/scripts/runlitmus.sh @@ -57,7 +57,7 @@ catfile="`echo $LKMM_HW_MAP_FILE | tr '[A-Z]' '[a-z]'`.cat" mapfile="Linux2${LKMM_HW_MAP_FILE}.map" themefile="$T/${LKMM_HW_MAP_FILE}.theme" herdoptions="-model $LKMM_HW_CAT_FILE" -hwlitmus=`echo $litmus | sed -e 's/\.litmus$/.'${LKMM_HW_MAP_FILE}'.litmus/'` +hwlitmus=`echo $litmus | sed -e 's/\.litmus$/.litmus.'${LKMM_HW_MAP_FILE}'/'` hwlitmusfile=`echo $hwlitmus | sed -e 's,^.*/,,'` # Don't run on litmus tests with complex synchronization From patchwork Tue Mar 21 01:05:34 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Paul E. McKenney" X-Patchwork-Id: 72585 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:604a:0:0:0:0:0 with SMTP id j10csp1527290wrt; Mon, 20 Mar 2023 18:17:41 -0700 (PDT) X-Google-Smtp-Source: AK7set+1Wbb2dTbmtD9bkLVyOJV0wmZw46rGAHoOehjqLgjBo0OpTiRcaYTNM5EeIU1ds/BOXT1r X-Received: by 2002:a17:90b:4a49:b0:23f:83de:7e4a with SMTP id lb9-20020a17090b4a4900b0023f83de7e4amr761122pjb.7.1679361460894; Mon, 20 Mar 2023 18:17:40 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1679361460; cv=none; d=google.com; s=arc-20160816; b=YNKlwJ3CPLcNCVqXZm8Eb9s0CeoLQ7r4QNaU5zQdpqUVsrkUxEe4ah2wZv4aF3cQcq 4uijMkgXZvEyIb771Z41TFWL3Zy1FBRpPfrubwz3T14SNK2qCHXBNWBAhCkjs5aTZl8I 738l6nQ33CAGJDDW7nLTORPOWG7j7ZPB1K0aHMmuQSjcXamtrlBlVfFgJdb/aeZhILfP KNlGWPlpM5Qru/tvK3gzwanU+ibKPJD2Hhhhkq6Uk9JbYjOGytssG+lC2rzUCwQHODVj CB+wAm+HKItrXDfrmXDK2UTObVIYxY+UzrSm5CfcfmML46FdbgjWGs0p2BOiMWpCZvA6 beGQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=Hz97+ELZGgZMeOW06JYSpmk81KnzsTTiGlxkC78Qr/0=; b=VHZ5e3PqfGLjN8XVbPc5i5Dhq2IdVsnFmZVrDM+TJEAwMqayXgX7Eewts2npEHpsaO RTe4iFk8c77CEguW793FJolAwMOdLyIQsKZcahLNJ8SsdyOXlnY9aaoDQKlRUGYUhCfB cElLQVVzpk/gENpHW3ltZfL+XNMNzGRtI8+nyKV8sB7caCzd7und2DzEdhHytMcCMnDe eVbMJedOrYu+nVDPHAUY+ZVs6JiQL2B+P4/KjIidopqZmN4ctVRt+gw4e2nTbuma6lgW b7PMpcdSoqvbO9F/A7mY8C6MlCEXfg0LZE3O5E903poOyU3ZxrxvCsOrtjDClRD53Jyk m9TA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=ZfZraS+G; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id e10-20020a63aa0a000000b0050f87d6a818si3531788pgf.659.2023.03.20.18.17.27; Mon, 20 Mar 2023 18:17:40 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=ZfZraS+G; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230263AbjCUBII (ORCPT + 99 others); Mon, 20 Mar 2023 21:08:08 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:55014 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230180AbjCUBHS (ORCPT ); Mon, 20 Mar 2023 21:07:18 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [IPv6:2604:1380:4641:c500::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id F2C6C36477; Mon, 20 Mar 2023 18:06:37 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 50BC961917; Tue, 21 Mar 2023 01:05:52 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 6DB27C433B3; Tue, 21 Mar 2023 01:05:51 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1679360751; bh=zrJhDFwsnIHdZbBHduJ9jR8yxxoCsBG0lePBScVcTRI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ZfZraS+GOMRNaZZrHY5VSBxkpiiu6CRSkag88z42ks7wd+XeskqIwxzgrRJzOnaEy Q3wxgFnhExWctqS/KTl3ohN0PMmxLv3FUeMd+iLgl/yiZujAypaxKjAauZkULNmdBB rTCfFwl3k5IAcvXMUFb/oAzSes0Th91dVJjeyNnp8f1V8W8NrMPVv0NbHLawp9a2+5 eAQoYmHVJRNJiOIzteCr5LzQUom6WQZt80GdQSmEwEVQi8hurqBSLqTePrbqR+D5Ap GKygadfFTNF9dcyOzLJ1Gl5DDigFUBpPmMMI/v0gWe9EWHbvRsMMWRK3px2npYYfja vn84ZrXXZwL7w== Received: by paulmck-ThinkPad-P72.home (Postfix, from userid 1000) id 9DFAF15403B7; Mon, 20 Mar 2023 18:05:50 -0700 (PDT) From: "Paul E. McKenney" To: linux-kernel@vger.kernel.org, linux-arch@vger.kernel.org, kernel-team@meta.com, mingo@kernel.org Cc: stern@rowland.harvard.edu, parri.andrea@gmail.com, will@kernel.org, peterz@infradead.org, boqun.feng@gmail.com, npiggin@gmail.com, dhowells@redhat.com, j.alglave@ucl.ac.uk, luc.maranget@inria.fr, akiyks@gmail.com, "Paul E. McKenney" Subject: [PATCH memory-model scripts 16/31] tools/memory-model: Keep assembly-language litmus tests Date: Mon, 20 Mar 2023 18:05:34 -0700 Message-Id: <20230321010549.51296-16-paulmck@kernel.org> X-Mailer: git-send-email 2.40.0.rc2 In-Reply-To: <4e5839bb-e980-4931-a550-3548d025a32a@paulmck-laptop> References: <4e5839bb-e980-4931-a550-3548d025a32a@paulmck-laptop> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1760938123379448673?= X-GMAIL-MSGID: =?utf-8?q?1760938123379448673?= This commit retains the assembly-language litmus tests generated from the C-language litmus tests, appending the hardware tag to the original C-language litmus test's filename. Thus, S+poonceonces.litmus.AArch64 contains the Armv8 assembly language corresponding to the C-language S+poonceonces.litmus test. This commit also updates the .gitignore to avoid committing these automatically generated assembly-language litmus tests. Signed-off-by: Paul E. McKenney --- tools/memory-model/litmus-tests/.gitignore | 2 +- tools/memory-model/scripts/runlitmus.sh | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/tools/memory-model/litmus-tests/.gitignore b/tools/memory-model/litmus-tests/.gitignore index d65462d64816..19c379cf069d 100644 --- a/tools/memory-model/litmus-tests/.gitignore +++ b/tools/memory-model/litmus-tests/.gitignore @@ -1,2 +1,2 @@ # SPDX-License-Identifier: GPL-2.0-only -*.out +*.litmus.* diff --git a/tools/memory-model/scripts/runlitmus.sh b/tools/memory-model/scripts/runlitmus.sh index c84124b32bee..62b47c7e1ba9 100755 --- a/tools/memory-model/scripts/runlitmus.sh +++ b/tools/memory-model/scripts/runlitmus.sh @@ -69,7 +69,7 @@ fi # Generate the assembly code and run herd7 on it. gen_theme7 -n 10 -map $mapfile -call Linux.call > $themefile -jingle7 -theme $themefile $litmus > $T/$hwlitmusfile 2> $T/$hwlitmusfile.jingle7.out -/usr/bin/time $LKMM_TIMEOUT_CMD herd7 -model $catfile $T/$hwlitmusfile > $LKMM_DESTDIR/$hwlitmus.out 2>&1 +jingle7 -theme $themefile $litmus > $LKMM_DESTDIR/$hwlitmus 2> $T/$hwlitmusfile.jingle7.out +/usr/bin/time $LKMM_TIMEOUT_CMD herd7 -model $catfile $LKMM_DESTDIR/$hwlitmus > $LKMM_DESTDIR/$hwlitmus.out 2>&1 exit $? From patchwork Tue Mar 21 01:05:35 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Paul E. McKenney" X-Patchwork-Id: 72575 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:604a:0:0:0:0:0 with SMTP id j10csp1525503wrt; Mon, 20 Mar 2023 18:12:19 -0700 (PDT) X-Google-Smtp-Source: AK7set+oPKHwT1Hx1R5UMm7hLiSS+aVIPnUrZnJR6Xf9HgGypWjnjN9ZtdA7j+d/QYLN+rfvIz8B X-Received: by 2002:a62:8405:0:b0:625:a34a:89e8 with SMTP id k5-20020a628405000000b00625a34a89e8mr875556pfd.2.1679361139396; Mon, 20 Mar 2023 18:12:19 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1679361139; cv=none; d=google.com; s=arc-20160816; b=rZl6OwC5iIw05moRRLn/l4wXPM7c1zep+51xNTGydIFY6Kb90h0feHuc6ljX6tuvuE FaY0Wb//mWRbos/R0IU4HUjwsbVeMKoDiEC8vJGtKcas/Fj/Rczmbnl1+NMYVMPU6m2n ueBOAfJgNPfkB0Vk1xWCavHmD+3/F4lMgS0MD9G01k8ntMScs2WpoOTF2WbXIptPN2c/ pWI0Msiaj2lNvMYcde2MI7+VS/Cg81ZqoM6wOmcURupcvqKUA4RcHRw2E3Yj9XLFF6/q Fk5vK2RfYKm/Sfe5mS5tYNRVRUnWURmmfAzV3MwY+Prn36X8ZDo2kSRv4Mf6ZCvzoMoW +UgQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=eswbg3osHeVc/mwRWcry7LwGxM4Zdem3sxWXPMpwBIE=; b=z3Pzyci7/dNmZ03kJRUBDbEXXtFJ54aH9PHa8EolWpou1MFV5FFPNUKOt6B+pE9DOh IrWOoXpS/BnZWLC01Wtxn8M+RjFtWWD+vYaMsMAASi9hllZx0C8dSqI6nsura9FlMG9s gr4/OY+UG9+m6GYN2t72LKweMBwC0tVRuRkNuJjYvvUxJEQiQ4cAD2tP8NzSNB/k8v4F cNxbHnEqze1Q7NfGxE0EcHTa9IL5PoF5U4G7TzCVDl3iRiR7NnDtMhqm/JuTZayb6ou4 xiulchyT2eFGuOzmcNmmOVcYGVZS5ZtTmcMGuGPZ2L59Sewi3AVGhVqKowuvULrV9OGH 9Txw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=IiNzFNKu; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id bm7-20020a056a00320700b0059258b3c5cbsi11040688pfb.358.2023.03.20.18.12.04; Mon, 20 Mar 2023 18:12:19 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=IiNzFNKu; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230274AbjCUBIL (ORCPT + 99 others); Mon, 20 Mar 2023 21:08:11 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54460 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230083AbjCUBHS (ORCPT ); Mon, 20 Mar 2023 21:07:18 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [IPv6:2604:1380:4641:c500::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 5257036681; Mon, 20 Mar 2023 18:06:38 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 50B306190F; Tue, 21 Mar 2023 01:05:52 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 67F8BC433B4; Tue, 21 Mar 2023 01:05:51 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1679360751; bh=YOH+IMMMfmEIxn685uTHBEdxIh0ZkUcdFkY/5zEgfDM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=IiNzFNKu51/d8O1GxAG7DHXiMC9/f4NBIlxXRbe++/BQOoxD0HbF3ETZo+ugDNo4S vr09+wcT6bjIFqaQuOJTYVPWrd1yWPhMlHTupcWwLjBn0YmETWX27BvJ8C2MjFlVl6 fKbhTrtuXtLH+ez+7mQPGJgKTpt4OSYEyXVTXy0gGIfQhIWE5LyulY1ZjqAhmUlzuf wnP09W2xUp2ZKMgvfNeNnYz+iYpaUsxCTg/TgiY1T3lxzKhP6Fqs4/leH7/gPwvpIu H663auVe6CD6kUoro+q1UHFE1AXd1mXD90/FOHS7CGQqWCL2g0DZwpwrMHUQjbRl9J rWMsWATUUXT/w== Received: by paulmck-ThinkPad-P72.home (Postfix, from userid 1000) id A1EB715403B9; Mon, 20 Mar 2023 18:05:50 -0700 (PDT) From: "Paul E. McKenney" To: linux-kernel@vger.kernel.org, linux-arch@vger.kernel.org, kernel-team@meta.com, mingo@kernel.org Cc: stern@rowland.harvard.edu, parri.andrea@gmail.com, will@kernel.org, peterz@infradead.org, boqun.feng@gmail.com, npiggin@gmail.com, dhowells@redhat.com, j.alglave@ucl.ac.uk, luc.maranget@inria.fr, akiyks@gmail.com, "Paul E. McKenney" Subject: [PATCH memory-model scripts 17/31] tools/memory-model: Allow herd to deduce CPU type Date: Mon, 20 Mar 2023 18:05:35 -0700 Message-Id: <20230321010549.51296-17-paulmck@kernel.org> X-Mailer: git-send-email 2.40.0.rc2 In-Reply-To: <4e5839bb-e980-4931-a550-3548d025a32a@paulmck-laptop> References: <4e5839bb-e980-4931-a550-3548d025a32a@paulmck-laptop> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1760937785934938777?= X-GMAIL-MSGID: =?utf-8?q?1760937785934938777?= Currently, the scripts specify the CPU's .cat file to herd. But this is pointless because herd will select a good and sufficient .cat file from the assembly-language litmus test itself. This commit therefore removes the -model argument to herd, allowing herd to figure the CPU family out itself. Note that the user can override herd's choice using the "--herdopts" argument to the scripts. Suggested-by: Luc Maranget Signed-off-by: Paul E. McKenney --- tools/memory-model/scripts/runlitmus.sh | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/tools/memory-model/scripts/runlitmus.sh b/tools/memory-model/scripts/runlitmus.sh index 62b47c7e1ba9..afb196d7ef10 100755 --- a/tools/memory-model/scripts/runlitmus.sh +++ b/tools/memory-model/scripts/runlitmus.sh @@ -53,7 +53,6 @@ trap 'rm -rf $T' 0 2 mkdir $T # Generate filenames -catfile="`echo $LKMM_HW_MAP_FILE | tr '[A-Z]' '[a-z]'`.cat" mapfile="Linux2${LKMM_HW_MAP_FILE}.map" themefile="$T/${LKMM_HW_MAP_FILE}.theme" herdoptions="-model $LKMM_HW_CAT_FILE" @@ -70,6 +69,6 @@ fi # Generate the assembly code and run herd7 on it. gen_theme7 -n 10 -map $mapfile -call Linux.call > $themefile jingle7 -theme $themefile $litmus > $LKMM_DESTDIR/$hwlitmus 2> $T/$hwlitmusfile.jingle7.out -/usr/bin/time $LKMM_TIMEOUT_CMD herd7 -model $catfile $LKMM_DESTDIR/$hwlitmus > $LKMM_DESTDIR/$hwlitmus.out 2>&1 +/usr/bin/time $LKMM_TIMEOUT_CMD herd7 $LKMM_DESTDIR/$hwlitmus > $LKMM_DESTDIR/$hwlitmus.out 2>&1 exit $? From patchwork Tue Mar 21 01:05:36 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Paul E. McKenney" X-Patchwork-Id: 72587 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:604a:0:0:0:0:0 with SMTP id j10csp1527810wrt; Mon, 20 Mar 2023 18:19:24 -0700 (PDT) X-Google-Smtp-Source: AK7set90yKmbH3a/m7THuReZnI2cERQ4QXFuu+WicTrLX02xXUHc8VgueDxR68TSIU0d8LiuNSI8 X-Received: by 2002:a17:903:1109:b0:19e:3922:b7d8 with SMTP id n9-20020a170903110900b0019e3922b7d8mr647009plh.12.1679361564612; Mon, 20 Mar 2023 18:19:24 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1679361564; cv=none; d=google.com; s=arc-20160816; b=HDbfEaAev2ilEIvPDeDSf9A7TTt71ofMgLbVq2cfnM55f8DzdvpLBy/gE6z+9l5cyB uWkCdHkvqadK4kZ/tBCD+LuWo6VEzMIZElvhZfdb3y3eHyLxjQ/x1PY+4YDg2+Vam5O6 K5z2tpnwRKiyr/aUjR0nmSXeAWFUqFCaN5y6BgCLrB8vPK1Lpg0Oe9XNu4Z/+8+7gvq2 XOTzCUCCZTMGbJTkFEK+Dgcw0P+ugQGTJBZnGWufoQx4TIkiLbd8zXMlgcpsCiytPtro WNMrrUAyPu/MC5SxQKKs1lDceTWryw9wjij9hYEFwRCRouvBbbrD2lz9+0eSc9sFHyZq NwSg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=00yZg4uLEQ/uVsszsnMxXog233f+RBEIEPLLDiKe4BM=; b=037hBT92FK+l4umDYEhr+eb9nIaKLWDBeEq6nzUWah5HSEllofVNapxMfkRPd+yQDF EeCadO47fYVHBmg9FdvIKrJh2ZMyDB7mHto0g/60DbQzCzc9RH4ZrsQCSPHVdoingtbI 9Orqnu0KqngeSAYlGs6uJcuxJS3LQrpkfkBdvYgKuLYO1Rtp2Z7g2q0Jz61Nuhpzl741 985kyDEWxTVkyzTQjzqdbLE/DHgYBKB90iUdZ3Q294Kg604hRo/u071VKqtERn4MlGiv 9tEazDam1fR4n7dgM5AV7X4qgazGsIts/p+bjtCNaLcRTVHIkwhRNTcvjHhLVniwvNYy 5+fw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=ZQCXemlZ; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id w8-20020a655348000000b004fab9a24dddsi11418927pgr.732.2023.03.20.18.19.11; Mon, 20 Mar 2023 18:19:24 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=ZQCXemlZ; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230307AbjCUBIp (ORCPT + 99 others); Mon, 20 Mar 2023 21:08:45 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54566 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230266AbjCUBII (ORCPT ); Mon, 20 Mar 2023 21:08:08 -0400 Received: from sin.source.kernel.org (sin.source.kernel.org [145.40.73.55]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 18CDD37734; Mon, 20 Mar 2023 18:07:01 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by sin.source.kernel.org (Postfix) with ESMTPS id CF3B9CE173F; Tue, 21 Mar 2023 01:05:53 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 7C88FC43442; Tue, 21 Mar 2023 01:05:51 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1679360751; bh=oT4l9yMcAJkQzBuPV8xL/8r1YT5hPfxeVf6gwstrxpc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ZQCXemlZnLyBJkKiBe8GSH5LRmnXcPYS5+VdLsRmP0XU/IWOTZnfwV9KeNf2AEvug Mbs2L8Y9NgAZR+BP/dDtQJKi43tUHQXGtGC/11TUZkXDSxxonfxhBc5vTm2UwTVG54 obidjWrf21VjL7+vOHfmy431X7cbOlujyG1odZ0dX4R8BX8oCFq/KFIaolGd2/fNbN Z8DA69qLViSOc+8sEqiu4L35lHNfNKpu9GcqrVgM12haYKFQc5IGVcxQCmTPuXSYiY rq/G71WIClZgYqxzVUgrR55wJSBKTOe6ywC7jvAvA7rQZonOIYQSHO8IolYDhcJmkJ 8pIc5PyDe9C8w== Received: by paulmck-ThinkPad-P72.home (Postfix, from userid 1000) id A61DD15403BB; Mon, 20 Mar 2023 18:05:50 -0700 (PDT) From: "Paul E. McKenney" To: linux-kernel@vger.kernel.org, linux-arch@vger.kernel.org, kernel-team@meta.com, mingo@kernel.org Cc: stern@rowland.harvard.edu, parri.andrea@gmail.com, will@kernel.org, peterz@infradead.org, boqun.feng@gmail.com, npiggin@gmail.com, dhowells@redhat.com, j.alglave@ucl.ac.uk, luc.maranget@inria.fr, akiyks@gmail.com, "Paul E. McKenney" Subject: [PATCH memory-model scripts 18/31] tools/memory-model: Make runlitmus.sh check for jingle errors Date: Mon, 20 Mar 2023 18:05:36 -0700 Message-Id: <20230321010549.51296-18-paulmck@kernel.org> X-Mailer: git-send-email 2.40.0.rc2 In-Reply-To: <4e5839bb-e980-4931-a550-3548d025a32a@paulmck-laptop> References: <4e5839bb-e980-4931-a550-3548d025a32a@paulmck-laptop> MIME-Version: 1.0 X-Spam-Status: No, score=-7.1 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_HI, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1760938231880036274?= X-GMAIL-MSGID: =?utf-8?q?1760938231880036274?= It turns out that the jingle7 tool is currently a bit picky about the litmus tests it is willing to process. This commit therefore ensures that jingle7 failures are reported. Signed-off-by: Paul E. McKenney --- tools/memory-model/scripts/runlitmus.sh | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/tools/memory-model/scripts/runlitmus.sh b/tools/memory-model/scripts/runlitmus.sh index afb196d7ef10..5f2d29b460ff 100755 --- a/tools/memory-model/scripts/runlitmus.sh +++ b/tools/memory-model/scripts/runlitmus.sh @@ -69,6 +69,11 @@ fi # Generate the assembly code and run herd7 on it. gen_theme7 -n 10 -map $mapfile -call Linux.call > $themefile jingle7 -theme $themefile $litmus > $LKMM_DESTDIR/$hwlitmus 2> $T/$hwlitmusfile.jingle7.out +if grep -q "Generated 0 tests" $T/$hwlitmusfile.jingle7.out +then + echo ' !!! ' jingle7 failed, no $hwlitmus generated + exit 253 +fi /usr/bin/time $LKMM_TIMEOUT_CMD herd7 $LKMM_DESTDIR/$hwlitmus > $LKMM_DESTDIR/$hwlitmus.out 2>&1 exit $? From patchwork Tue Mar 21 01:05:37 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Paul E. McKenney" X-Patchwork-Id: 72574 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:604a:0:0:0:0:0 with SMTP id j10csp1525479wrt; Mon, 20 Mar 2023 18:12:16 -0700 (PDT) X-Google-Smtp-Source: AK7set80klu6ezv3L5wPcM5ykjXkwSbud9QPG9cE/p3v6ze8+uZejZ+A6dxwCfpvZl4ylCn9hV44 X-Received: by 2002:a17:902:6944:b0:1a1:ad71:7402 with SMTP id k4-20020a170902694400b001a1ad717402mr430125plt.28.1679361136100; Mon, 20 Mar 2023 18:12:16 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1679361136; cv=none; d=google.com; s=arc-20160816; b=AY4zeaqV3pdRv872O/EDBWZFU/r0Uaws12lAV049QxQOhYE9kJCc36wPOeGcsj//H/ VoKuH3toH5vJMhwEaOXKrO+QTj8n52YuXv4rwhGoO50GYPzKZY/Xz8/CVbSewx0Pv5DA EtHZqvgODKtxCw2zdLQ7QnkBrplydSGi8AE9vssyNaZkcydfR7mPNz565Hz0vyHIfwc9 SYIiBmdIl3iYaE4qdcwngLtEuSzVtgWVqnDAfH02ZXqYA7oE5Kvjg8vbVZ0nn8qFBJSr TTiWxRTSJKkSE3MhHRooI3SETItyYcOSwC9qOUE12HAoBi1ztb2VC6l9IyFG6RQxFglP evjQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=NNvmImupEOhJJWpOlC872KS20Bvz8kYc0gjHIEF4JuI=; b=tOse8HtAPGMyVY6Gs/b3HxpiyBntJjgKHpaTjlS2ZSv+1F50Dsq3NAu79snXMNBLlY 34u9dmy3BEkhHaxHtM+ExgZctB7o7FhIvwUI06e4uznJ3vF3GrNvFtvV3ZC7RfBz6xom dwQekCamUCog6CWGm7iHtYoPspeDgtp2K02NvlUGC/Z5vFAVPUosp3hVD1/LEQTWTM+b 1IXdJZSs78BvVQM+NXxK4GBjnQ/QsH1p7dGq9E9AWRC/ENziVPyRLJ18K/2OW8riBWji pUCZoe4ZjlduZ0mGTpPVEz++/zEOAosIrqZakxg4jl7xNMWKVfDmVI//THsUFW0vr5AB +EhQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=DC8YQZXL; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id c1-20020a170903234100b0019f24ac1ab4si12267904plh.472.2023.03.20.18.12.01; Mon, 20 Mar 2023 18:12:16 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=DC8YQZXL; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230368AbjCUBJa (ORCPT + 99 others); Mon, 20 Mar 2023 21:09:30 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:55014 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230161AbjCUBIk (ORCPT ); Mon, 20 Mar 2023 21:08:40 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [IPv6:2604:1380:4641:c500::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E4FB538478; Mon, 20 Mar 2023 18:07:32 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 5969B61913; Tue, 21 Mar 2023 01:05:52 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 871F6C43445; Tue, 21 Mar 2023 01:05:51 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1679360751; bh=LD+uNbg2NKxm4VHvtKkFGgb6L1Vjn3N8Q4kXgELWAtA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=DC8YQZXLrRav2lLUM737VjmWSeaP2iNXa0anBXefW6s9j+l0Lk0kseGVxw8YVBVMt ulMlpfnbsYm5IhjVVnF+5R5LxSWU1iPsDoe6Lsqf/1ly6lOv89s2vtZSgSEHuvTDPP TtGwJqjQg8O3d0YKdUirrASvQby75ev+ZSYDFcd7OX8gnaDop2GexHio7GC2Bc63qT pGMWj4bf7/D0Gg+qPYGXi8eWQGW2DZjrPo/IHKTzwtx+w0WwxZRp1sCH79Dfslr3GO nEUVEGpdup5IcJT8NKlmmuIUfwoB/VLToBn5GWsQN1tazmIuwgvVTp6Z2XRXT9OaHw z1MTq3dJ5Bssg== Received: by paulmck-ThinkPad-P72.home (Postfix, from userid 1000) id ABC3B15403BD; Mon, 20 Mar 2023 18:05:50 -0700 (PDT) From: "Paul E. McKenney" To: linux-kernel@vger.kernel.org, linux-arch@vger.kernel.org, kernel-team@meta.com, mingo@kernel.org Cc: stern@rowland.harvard.edu, parri.andrea@gmail.com, will@kernel.org, peterz@infradead.org, boqun.feng@gmail.com, npiggin@gmail.com, dhowells@redhat.com, j.alglave@ucl.ac.uk, luc.maranget@inria.fr, akiyks@gmail.com, "Paul E. McKenney" Subject: [PATCH memory-model scripts 19/31] tools/memory-model: Add -v flag to jingle7 runs Date: Mon, 20 Mar 2023 18:05:37 -0700 Message-Id: <20230321010549.51296-19-paulmck@kernel.org> X-Mailer: git-send-email 2.40.0.rc2 In-Reply-To: <4e5839bb-e980-4931-a550-3548d025a32a@paulmck-laptop> References: <4e5839bb-e980-4931-a550-3548d025a32a@paulmck-laptop> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1760937782326417908?= X-GMAIL-MSGID: =?utf-8?q?1760937782326417908?= Adding the -v flag to jingle7 invocations gives much useful information on why jingle7 didn't like a given litmus test. This commit therefore adds this flag and saves off any such information into a .err file. Suggested-by: Luc Maranget Signed-off-by: Paul E. McKenney --- tools/memory-model/scripts/runlitmus.sh | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/tools/memory-model/scripts/runlitmus.sh b/tools/memory-model/scripts/runlitmus.sh index 5f2d29b460ff..dfdb1f00fcc0 100755 --- a/tools/memory-model/scripts/runlitmus.sh +++ b/tools/memory-model/scripts/runlitmus.sh @@ -68,10 +68,11 @@ fi # Generate the assembly code and run herd7 on it. gen_theme7 -n 10 -map $mapfile -call Linux.call > $themefile -jingle7 -theme $themefile $litmus > $LKMM_DESTDIR/$hwlitmus 2> $T/$hwlitmusfile.jingle7.out +jingle7 -v -theme $themefile $litmus > $LKMM_DESTDIR/$hwlitmus 2> $T/$hwlitmusfile.jingle7.out if grep -q "Generated 0 tests" $T/$hwlitmusfile.jingle7.out then - echo ' !!! ' jingle7 failed, no $hwlitmus generated + echo ' !!! ' jingle7 failed, errors in $hwlitmus.err + cp $T/$hwlitmusfile.jingle7.out $LKMM_DESTDIR/$hwlitmus.err exit 253 fi /usr/bin/time $LKMM_TIMEOUT_CMD herd7 $LKMM_DESTDIR/$hwlitmus > $LKMM_DESTDIR/$hwlitmus.out 2>&1 From patchwork Tue Mar 21 01:05:38 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Paul E. McKenney" X-Patchwork-Id: 72604 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:604a:0:0:0:0:0 with SMTP id j10csp1529995wrt; Mon, 20 Mar 2023 18:26:14 -0700 (PDT) X-Google-Smtp-Source: AK7set8R5oGargJ8eIlJz//YXgnLrHkMApc26bZ8B+ZvBvaG/chNDoepu5SA9UgseUE6Tl/CHzyF X-Received: by 2002:a17:902:e88d:b0:19f:3aff:dcfd with SMTP id w13-20020a170902e88d00b0019f3affdcfdmr15040021plg.6.1679361974471; Mon, 20 Mar 2023 18:26:14 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1679361974; cv=none; d=google.com; s=arc-20160816; b=NvW9UFEzDmcfPobBaMR3Dgf++HNCynYb6MiVAsJwmE7oBoeMIKO4MnH+h7I5BSM2i1 6puHjfW73KjuIqyvYa/eCLsKMtO0fpi5Bw0yB3BAPQKVQyu4NhsyJ8U8W+GgWb4YYY1P rzD2ehrJMDsmrurP0sqYLxO8lntdmiqkF8veblrzP/I6gNnwVM5F47faKiq2P7+DyeOg T6XPdVoVL63PleBNCMoh2z+3EJQ1ICdXr8TRq1v44+7V9Y0vM6fyF883Bxk3Vu55z4z6 QRhC2y+I6+oE1jAU8dkenQ/1j0h62Pjl7oktV83v62/ShECwhgwiSzu3XvUtiQGUxGKY NpYA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=VGhZKjf7omLtBgBh+3CDUu7+qlfb9xDLHbZ1/GQKA0A=; b=NxRbkppNdE8MCUJHAieMbwKE5iAmuGgE/DXaJUE+ghdWmbM1j/FNiUPq/XbdpC5+Zc yQBeCdK9aa+kqcVs0j/PmGXDLFaBdGPIA3rXYg4JTg1T+W+8akW/BS/ZyyjQ37ltLK2t xmCop+vt8CtAlbR7KP7DHDXjwzU+PrAQ3M4bm6vj8UA9f7dUFAYIQryIwonkqPlRlRO5 grazbu1jsctzLHpPDKOxx1thlocd9DwG6QUUuecxAWC1WUXXp5h63tkG4Yh1DefWXYHC ojqLi+TsSjOiFomHuuwgcnLnAZ53gJd4I0buBffd42nnHGAEWeqdgcDLXDx/CCUD5mOC ufqA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=VmzqCH9D; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id d9-20020a170903230900b001a10c64c68csi12784023plh.113.2023.03.20.18.26.02; Mon, 20 Mar 2023 18:26:14 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=VmzqCH9D; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230181AbjCUBJH (ORCPT + 99 others); Mon, 20 Mar 2023 21:09:07 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54086 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230137AbjCUBI1 (ORCPT ); Mon, 20 Mar 2023 21:08:27 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [IPv6:2604:1380:4641:c500::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id AF41C20D00; Mon, 20 Mar 2023 18:07:16 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id C2D6E6192D; Tue, 21 Mar 2023 01:05:52 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 92F09C4339E; Tue, 21 Mar 2023 01:05:51 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1679360751; bh=s9ojW5D99E0N5jDbUUGtarJUEkQdysRNlfbhK1sMvIA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=VmzqCH9DFOdLYr84piHc5undrc8To0vxkGUcQUi3FxbfVKjypWpqH7ez4DhPZ+Q5w TUfV2RrWjmcOmYYN+2Gi0DhyIyfppVkQ2RDAyOzR/0w6+SPr8Jszv8J4FywDNV7BFu UR3ua8BPXeOCtzRBiXYv/njeGSnjl/MgQcv916JU9ciimUomPCeUPk87b6kPFR0LMg 8jhnAmU0Aai1AavbOZyWT8v67kiEmVmLR49NzUztjaZRQb3TjM0v7yDgDLNByYH58N /623/ylwXhIJMz7x09KMlIUuWsBeAYmGwixgmmhjbvMWsp+N2nsliyjSmp1Ju0WSfb TZMGC7m4rJizw== Received: by paulmck-ThinkPad-P72.home (Postfix, from userid 1000) id B0E9B15403BF; Mon, 20 Mar 2023 18:05:50 -0700 (PDT) From: "Paul E. McKenney" To: linux-kernel@vger.kernel.org, linux-arch@vger.kernel.org, kernel-team@meta.com, mingo@kernel.org Cc: stern@rowland.harvard.edu, parri.andrea@gmail.com, will@kernel.org, peterz@infradead.org, boqun.feng@gmail.com, npiggin@gmail.com, dhowells@redhat.com, j.alglave@ucl.ac.uk, luc.maranget@inria.fr, akiyks@gmail.com, "Paul E. McKenney" Subject: [PATCH memory-model scripts 20/31] tools/memory-model: Implement --hw support for checkghlitmus.sh Date: Mon, 20 Mar 2023 18:05:38 -0700 Message-Id: <20230321010549.51296-20-paulmck@kernel.org> X-Mailer: git-send-email 2.40.0.rc2 In-Reply-To: <4e5839bb-e980-4931-a550-3548d025a32a@paulmck-laptop> References: <4e5839bb-e980-4931-a550-3548d025a32a@paulmck-laptop> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1760938661555416898?= X-GMAIL-MSGID: =?utf-8?q?1760938661555416898?= This commits enables the "--hw" argument for the checkghlitmus.sh script, causing it to convert any applicable C-language litmus tests to the specified flavor of assembly language, to verify these assembly-language litmus tests, and checking compatibility of the outcomes. Note that the conversion does not yet handle locking, RCU, SRCU, plain C-language memory accesses, or casts. Signed-off-by: Paul E. McKenney --- tools/memory-model/scripts/checkghlitmus.sh | 9 ++++--- tools/memory-model/scripts/hwfnseg.sh | 20 +++++++++++++++ tools/memory-model/scripts/runlitmushist.sh | 27 +++++++++++++-------- 3 files changed, 42 insertions(+), 14 deletions(-) create mode 100755 tools/memory-model/scripts/hwfnseg.sh diff --git a/tools/memory-model/scripts/checkghlitmus.sh b/tools/memory-model/scripts/checkghlitmus.sh index 6589fbb6f653..2ea220d2564b 100755 --- a/tools/memory-model/scripts/checkghlitmus.sh +++ b/tools/memory-model/scripts/checkghlitmus.sh @@ -10,6 +10,7 @@ # parseargs.sh scripts for arguments. . scripts/parseargs.sh +. scripts/hwfnseg.sh T=/tmp/checkghlitmus.sh.$$ trap 'rm -rf $T' 0 @@ -32,9 +33,9 @@ then ( cd "$LKMM_DESTDIR"; sed -e 's/^/mkdir -p /' | sh ) fi -# Create a list of the C-language litmus tests previously run. -( cd $LKMM_DESTDIR; find litmus -name '*.litmus.out' -print ) | - sed -e 's/\.out$//' | +# Create a list of the specified litmus tests previously run. +( cd $LKMM_DESTDIR; find litmus -name "*.litmus${hwfnseg}.out" -print ) | + sed -e "s/${hwfnseg}"'\.out$//' | xargs -r egrep -l '^ \* Result: (Never|Sometimes|Always|DEADLOCK)' | xargs -r grep -L "^P${LKMM_PROCS}"> $T/list-C-already @@ -44,7 +45,7 @@ find litmus -name '*.litmus' -exec grep -l -m 1 "^C " {} \; > $T/list-C xargs < $T/list-C -r egrep -l '^ \* Result: (Never|Sometimes|Always|DEADLOCK)' > $T/list-C-result xargs < $T/list-C-result -r grep -L "^P${LKMM_PROCS}" > $T/list-C-result-short -# Form list of tests without corresponding .litmus.out files +# Form list of tests without corresponding .out files sort $T/list-C-already $T/list-C-result-short | uniq -u > $T/list-C-needed # Run any needed tests. diff --git a/tools/memory-model/scripts/hwfnseg.sh b/tools/memory-model/scripts/hwfnseg.sh new file mode 100755 index 000000000000..580c3281181c --- /dev/null +++ b/tools/memory-model/scripts/hwfnseg.sh @@ -0,0 +1,20 @@ +#!/bin/sh +# SPDX-License-Identifier: GPL-2.0+ +# +# Generate the hardware extension to the litmus-test filename, or the +# empty string if this is an LKMM run. The extension is placed in +# the shell variable hwfnseg. +# +# Usage: +# . hwfnseg.sh +# +# Copyright IBM Corporation, 2019 +# +# Author: Paul E. McKenney + +if test -z "$LKMM_HW_MAP_FILE" +then + hwfnseg= +else + hwfnseg=".$LKMM_HW_MAP_FILE" +fi diff --git a/tools/memory-model/scripts/runlitmushist.sh b/tools/memory-model/scripts/runlitmushist.sh index 852786fef179..c6c2bdc67a50 100755 --- a/tools/memory-model/scripts/runlitmushist.sh +++ b/tools/memory-model/scripts/runlitmushist.sh @@ -15,6 +15,8 @@ # # Author: Paul E. McKenney +. scripts/hwfnseg.sh + T=/tmp/runlitmushist.sh.$$ trap 'rm -rf $T' 0 mkdir $T @@ -30,15 +32,12 @@ fi # Prefixes for per-CPU scripts for ((i=0;i<$LKMM_JOBS;i++)) do - echo dir="$LKMM_DESTDIR" > $T/$i.sh echo T=$T >> $T/$i.sh - echo herdoptions=\"$LKMM_HERD_OPTIONS\" >> $T/$i.sh cat << '___EOF___' >> $T/$i.sh runtest () { - echo ' ... ' /usr/bin/time $LKMM_TIMEOUT_CMD herd7 $herdoptions $1 '>' $dir/$1.out '2>&1' - if /usr/bin/time $LKMM_TIMEOUT_CMD herd7 $herdoptions $1 > $dir/$1.out 2>&1 + if scripts/runlitmus.sh $1 then - if ! grep -q '^Observation ' $dir/$1.out + if ! grep -q '^Observation ' $LKMM_DESTDIR/$1$2.out then echo ' !!! Herd failed, no Observation:' $1 fi @@ -47,10 +46,16 @@ do if test "$exitcode" -eq 124 then exitmsg="timed out" + elif test "$exitcode" -eq 253 + then + exitmsg= else exitmsg="failed, exit code $exitcode" fi - echo ' !!! Herd' ${exitmsg}: $1 + if test -n "$exitmsg" + then + echo ' !!! Herd' ${exitmsg}: $1 + fi fi } ___EOF___ @@ -59,11 +64,13 @@ done awk -v q="'" -v b='\\' ' { print "echo `grep " q "^P[0-9]" b "+(" q " " $0 " | tail -1 | sed -e " q "s/^P" b "([0-9]" b "+" b ")(.*$/" b "1/" q "` " $0 -}' | bash | -sort -k1n | -awk -v ncpu=$LKMM_JOBS -v t=$T ' +}' | sh | sort -k1n | +awk -v dq='"' -v hwfnseg="$hwfnseg" -v ncpu="$LKMM_JOBS" -v t="$T" ' { - print "runtest " $2 >> t "/" NR % ncpu ".sh"; + print "if test -z " dq hwfnseg dq " || scripts/simpletest.sh " dq $2 dq + print "then" + print "\techo runtest " dq $2 dq " " hwfnseg " >> " t "/" NR % ncpu ".sh"; + print "fi" } END { From patchwork Tue Mar 21 01:05:39 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Paul E. McKenney" X-Patchwork-Id: 72624 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:604a:0:0:0:0:0 with SMTP id j10csp1540538wrt; Mon, 20 Mar 2023 19:01:18 -0700 (PDT) X-Google-Smtp-Source: AK7set/kKoV1u2fqjf5Ygajqf3h2tcxLLVWlPtZ8g2Ij7d4mW7EHXyAvEwwutM9cVTht493+EnaG X-Received: by 2002:a17:90b:384c:b0:23b:3699:b8a9 with SMTP id nl12-20020a17090b384c00b0023b3699b8a9mr848111pjb.17.1679364078226; Mon, 20 Mar 2023 19:01:18 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1679364078; cv=none; d=google.com; s=arc-20160816; b=MNj3f43PVtno4MRa05cDrHP8CPCl2ovJbav+52OQz7/P2OxbyEzAlApWA/ktTJA4qp 67Aacr51aSzsUts65SwQuGAlqg1KvdoA5anQtpy/5yoFOklhFQXQrcAct84sItdR/7d7 f3VhE3kl7ayLbVf33/tV/hhsSnFM1krqYLriyS3fiCNAVCTVubsh1l1GyVmgIuBMn0tn eFWfl4ZUGF4uuhFp0ODF3chJK0d0nHuxLXQrHXIkRN2DrKpz3pfifDVHDu8qj+A+baDS /EAMrg9oVC1L35nVFouZ7LtO64CFwIgzSEZemLaZH3wZICr2+xlzZQeSc2ZfRwy0WU2y NhwA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=RRnRXJUINfKAkjAWGR8GIPSh51IAW76zgUdq3sepC1Q=; b=mm2p61ugpWymbWnRqyTMe+Ey5NwN5Yu8BQzf2JBFNGLq2JhdwwUe/jpDZM/vrEwFkJ fv2hmtPt5qMezMGkZEtemGhQp5Uyd1oReEG9E/pSQU+/+3/33OhJRDujeKC+UXWzVGm6 1Wk/qIdWmYznPQIPgjI5t01pw8knha42a9zP91TA5Rzkd+egmIZoH3hRbN/IiI0CccXV IhMQ823qRwByuWq35ZAwUiYvQiCLtiC38HSNR+7c7U4jp2vkIJZvi0fDKhi5Prq2+K6f C4LBCUGiAyNMcY9WOHgezplXNNJ0ZEpUsi3MrcVv1VBKVg3+x/xD7PIc+e4vlzGsDMQk 90Jg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=RjpjlutZ; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id h24-20020a635758000000b004fab4df6dfdsi12065866pgm.369.2023.03.20.19.01.05; Mon, 20 Mar 2023 19:01:18 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=RjpjlutZ; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230243AbjCUBKS (ORCPT + 99 others); Mon, 20 Mar 2023 21:10:18 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:55380 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230343AbjCUBJk (ORCPT ); Mon, 20 Mar 2023 21:09:40 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id DF9DE2449D; Mon, 20 Mar 2023 18:08:20 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id BBC166192B; Tue, 21 Mar 2023 01:05:52 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 86FA2C43443; Tue, 21 Mar 2023 01:05:51 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1679360751; bh=G5gsvOMCGVuXxuF//Mtvc8D8cBklGhECOvtTo807aJo=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=RjpjlutZQtMRWY5am2ENMHDtQDNuAZHin83kBacsfyNBRyc8ONmG/pK+NEBczhKQD uZgXdAetHUhCde3OjQ+I5dRg/bth7aogN+JbO+HIOTV1GiXHGGrvwS/Da1boPFr1si rqsvZJa/kErgu3zQ7/+NP8BxlOwzjLM755rnP/vAI8mcBeJ6nMNqsjpxtaNgeT3EVb wPXH8sEX/F/3kd6GQZHC9CRE/rCWmO6zendgk+Nwqq4zcE84sN2b2f4lRdKgsmKhqE YgqAHlgLGr7oMJKb8F6fv4fiaeIe0gTS7yfGFR6sdiDzcB3xOWafLwCoUckCjyWsf/ qFSbbHEg/HVfQ== Received: by paulmck-ThinkPad-P72.home (Postfix, from userid 1000) id B5BDC15403C1; Mon, 20 Mar 2023 18:05:50 -0700 (PDT) From: "Paul E. McKenney" To: linux-kernel@vger.kernel.org, linux-arch@vger.kernel.org, kernel-team@meta.com, mingo@kernel.org Cc: stern@rowland.harvard.edu, parri.andrea@gmail.com, will@kernel.org, peterz@infradead.org, boqun.feng@gmail.com, npiggin@gmail.com, dhowells@redhat.com, j.alglave@ucl.ac.uk, luc.maranget@inria.fr, akiyks@gmail.com, "Paul E. McKenney" Subject: [PATCH memory-model scripts 21/31] tools/memory-model: Fix scripting --jobs argument Date: Mon, 20 Mar 2023 18:05:39 -0700 Message-Id: <20230321010549.51296-21-paulmck@kernel.org> X-Mailer: git-send-email 2.40.0.rc2 In-Reply-To: <4e5839bb-e980-4931-a550-3548d025a32a@paulmck-laptop> References: <4e5839bb-e980-4931-a550-3548d025a32a@paulmck-laptop> MIME-Version: 1.0 X-Spam-Status: No, score=-7.1 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_HI, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1760940867824779694?= X-GMAIL-MSGID: =?utf-8?q?1760940867824779694?= The parseargs.sh regular expression for the --jobs argument incorrectly requires that the number of jobs be at least 10, that is, have at least two digits. This commit therefore adjusts this regular expression to allow single-digit numbers of jobs to be specified. Signed-off-by: Paul E. McKenney --- tools/memory-model/scripts/parseargs.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/memory-model/scripts/parseargs.sh b/tools/memory-model/scripts/parseargs.sh index 5f016fc3f3af..25a81ac0dfdf 100755 --- a/tools/memory-model/scripts/parseargs.sh +++ b/tools/memory-model/scripts/parseargs.sh @@ -113,7 +113,7 @@ do LKMM_JOBS="`echo $njobs | sed -e 's/^\([0-9]\+\).*$/\1/'`" ;; --jobs|--job|-j) - checkarg --jobs "(number)" "$#" "$2" '^[1-9][0-9]\+$' '^--' + checkarg --jobs "(number)" "$#" "$2" '^[1-9][0-9]*$' '^--' LKMM_JOBS="$2" shift ;; From patchwork Tue Mar 21 01:05:40 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Paul E. McKenney" X-Patchwork-Id: 72582 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:604a:0:0:0:0:0 with SMTP id j10csp1526650wrt; Mon, 20 Mar 2023 18:15:47 -0700 (PDT) X-Google-Smtp-Source: AK7set94JCdSUy4dowKc2xVCqSpknm0G2WJRxiRUKrUWmJqqrnLEPnkMP2w66vZD4WVfRFTJ7pNf X-Received: by 2002:a17:90b:3911:b0:23f:3df:df26 with SMTP id ob17-20020a17090b391100b0023f03dfdf26mr709269pjb.4.1679361346885; Mon, 20 Mar 2023 18:15:46 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1679361346; cv=none; d=google.com; s=arc-20160816; b=EzCW/9FHFacXhwiC/SRc025wrJSVC6w55oJ/LpBL8KcrbA+zcdfNbDzblCgIlxZlt3 hpW7ZqgvJ4YURGUR1VpeldvlJfZYZLkj60wsG3R2o1nxjs36CVvfTUBmQYb0LM09vKkF T+qPRJ6kb0K70s/UAJzmPNQ0SHiq+01chHpt1mRnDNP7VspQ/Bl6kByGXfpmFQvRYAg7 9Vnx4HcLUqtsl1GiwCux7KGgtgrg+69UDjBJRDsR8mi9CAu3WiU0LFPj5VazVgJDxUtm IougwoG/Gv+1PYymQPr+2j42biK+WR6thAo55NlHRkkb/1/vLhawFLidONav1VsD02kb 5lcw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=6BAG4mdl4Lx4nyKc94yueisi/4+j7EoAZDs+wy3kYJ0=; b=tDnPo4uWH1nT4tprRUZtpKtESVjaodclJN6VcdD+ArPVEefu5IkEP9zgbhm/Jx02nH tkXkt40lp9YkMxzs1653yFOab4nI0jTIm01H+qpUZiGvUX66Bi0Qm0ZvXP9XDd2A6k4G x+ArM8otLR3SVFOs1CW8D+hMIKFqkONGD42z9GSFtL1m/akFqM2Ty2d9G2hA1+BdZvsr ZH+Ek80YR+e+iIGVYh8/jHsZjSc6zuWaQkEx86r0UnWDyUqfDQBKU8Hxw9qwJrZCtCV3 VZNy/9h5pNeBdRlPc9+m7FY7eO0L6AUKHKSezUUHf3GqKeSSvXahRno9hURvU2xsqk2m H6iA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=L0MQ0RLU; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id nl7-20020a17090b384700b0023b4a85cf5fsi19026261pjb.115.2023.03.20.18.15.32; Mon, 20 Mar 2023 18:15:46 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=L0MQ0RLU; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230189AbjCUBI2 (ORCPT + 99 others); Mon, 20 Mar 2023 21:08:28 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:55360 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230182AbjCUBH3 (ORCPT ); Mon, 20 Mar 2023 21:07:29 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [IPv6:2604:1380:4641:c500::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E07BC12F0A; Mon, 20 Mar 2023 18:06:46 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 5E54A61919; Tue, 21 Mar 2023 01:05:52 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 8C060C43444; Tue, 21 Mar 2023 01:05:51 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1679360751; bh=2FzOW3T+R4HnYsHV7ty3mj5LYS0RHLM9dQ2q3FNSUVY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=L0MQ0RLUMwVekUQe0J6/EgE3P3mpfMo5OX1upPRu00H0RzokVcvbmVDcFZ3JCMCTk Mx3+hMV6X3UufPWtyV1dWMSHAGlQ7Zw0c37HDbcfSitwNp3uo9uzHP94lJWGdXuKYR vLWTAb1mRsw433qRTaZ9M0Ljo9F0Q9sShcZ3j7Kc9oM3ukolRNZtQTGhfnfpyIoQB/ QJm6jvA3potdsH94t22smTd9pOzqUHcOIv5HPXbMHbWVP/c9vjqZiXKjXFdy2vkHeF xrqMoNsc6lIiMGMO+aHskDprSu6ha9k+x8Mh+nLf+vcK94WMsC2DrYX0DJdzjLefhD /ffdkrUUAt/4Q== Received: by paulmck-ThinkPad-P72.home (Postfix, from userid 1000) id BC5FF15403C3; Mon, 20 Mar 2023 18:05:50 -0700 (PDT) From: "Paul E. McKenney" To: linux-kernel@vger.kernel.org, linux-arch@vger.kernel.org, kernel-team@meta.com, mingo@kernel.org Cc: stern@rowland.harvard.edu, parri.andrea@gmail.com, will@kernel.org, peterz@infradead.org, boqun.feng@gmail.com, npiggin@gmail.com, dhowells@redhat.com, j.alglave@ucl.ac.uk, luc.maranget@inria.fr, akiyks@gmail.com, "Paul E. McKenney" Subject: [PATCH memory-model scripts 22/31] tools/memory-model: Make checkghlitmus.sh use mselect7 Date: Mon, 20 Mar 2023 18:05:40 -0700 Message-Id: <20230321010549.51296-22-paulmck@kernel.org> X-Mailer: git-send-email 2.40.0.rc2 In-Reply-To: <4e5839bb-e980-4931-a550-3548d025a32a@paulmck-laptop> References: <4e5839bb-e980-4931-a550-3548d025a32a@paulmck-laptop> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1760938003343875180?= X-GMAIL-MSGID: =?utf-8?q?1760938003343875180?= The checkghlitmus.sh script currently uses grep to ignore non-C-language litmus tests, which is a bit fragile. This commit therefore enlists the aid of "mselect7 -arch C", given Luc Maraget's recent modifications that allow mselect7 to operate in filter mode. This change requires herdtools 7.52-32-g1da3e0e50977 or later. Signed-off-by: Paul E. McKenney --- tools/memory-model/scripts/checkghlitmus.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/memory-model/scripts/checkghlitmus.sh b/tools/memory-model/scripts/checkghlitmus.sh index 2ea220d2564b..cedd0290b73f 100755 --- a/tools/memory-model/scripts/checkghlitmus.sh +++ b/tools/memory-model/scripts/checkghlitmus.sh @@ -41,7 +41,7 @@ fi # Create a list of C-language litmus tests with "Result:" commands and # no more than the specified number of processes. -find litmus -name '*.litmus' -exec grep -l -m 1 "^C " {} \; > $T/list-C +find litmus -name '*.litmus' -print | mselect7 -arch C > $T/list-C xargs < $T/list-C -r egrep -l '^ \* Result: (Never|Sometimes|Always|DEADLOCK)' > $T/list-C-result xargs < $T/list-C-result -r grep -L "^P${LKMM_PROCS}" > $T/list-C-result-short From patchwork Tue Mar 21 01:05:41 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Paul E. McKenney" X-Patchwork-Id: 72620 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:604a:0:0:0:0:0 with SMTP id j10csp1540243wrt; Mon, 20 Mar 2023 19:00:34 -0700 (PDT) X-Google-Smtp-Source: AK7set+Pe63Z8mNLJXXynFr47PGGRat0SjY2iBIKLN+Zh344qA76gQG/akb+ZSsoOkmcNFq2d9Kf X-Received: by 2002:a17:90b:1d8a:b0:23f:5fe7:25a1 with SMTP id pf10-20020a17090b1d8a00b0023f5fe725a1mr813418pjb.13.1679364033811; Mon, 20 Mar 2023 19:00:33 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1679364033; cv=none; d=google.com; s=arc-20160816; b=EthhekwY9GTyMijsInUUlEszbD6SBf7njhSHhYc8u8TMsnTXN9v8M/A9TNmQygXkPh eH5cGjpEGDazGGPFkCPtlGKMtOjIwdRvo3dBIow480seMaDXvzoKYvXHk/VA7BCpFs6Y IoinaQIscuECjfX5nf80VoC6m5SUpQM8HLn1KuzOVnJlAk4N8g/luqIJGA4phesmP8T7 3d83OH3s8CJZPqSq7SbeR/MybD/0meJH0miZPda91W6r+orscyZ0ciAnXvIShRIKi9Dh XA+OtNdN9pwcp6J5VCAQPKCf2casqw0z3hF8zFrt72eUyXhwIm/VNeyxomFgXbT55809 oYHg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=wsOA9P6P6ldSsIf5Mu+pM27a3NKOKLhvHRcyZQHPf38=; b=U4a17uGD5PZn9Z+5Whp1ifDxqL2NYX0CM9u14o9UjlocI0ojIX621MQk5Ygt5xYt0a 6A3xoKFmAH6OEwUcPcH4v+1cy1WnUMbFL82LBYlTQtLonbZ554aK0/ZITO9MEaZiC5wZ i4+/wMD3ahIdsbVmjzY8diW+jI+noX3iO66r1tqtM3fyQ8V2wqKHcVa9zhHmpxzb8dXq rqCY3KCWqoFy7B94pPyTrwI1xjSGatMm8qIukhW/8TDQHG4sbJrQoc8koKn/DdItbGyg mUZjxS7cN1dQrjxP3wzcOGxQqzoSOF+/1Gk1liCtkJ4MommxekWo9MwJiyVbl4Pe7LAS cS9g== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=ICLcFajJ; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id cm13-20020a17090afa0d00b0023d1679ac2dsi11080041pjb.169.2023.03.20.19.00.20; Mon, 20 Mar 2023 19:00:33 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=ICLcFajJ; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230220AbjCUBVa (ORCPT + 99 others); Mon, 20 Mar 2023 21:21:30 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49220 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229877AbjCUBV0 (ORCPT ); Mon, 20 Mar 2023 21:21:26 -0400 Received: from sin.source.kernel.org (sin.source.kernel.org [IPv6:2604:1380:40e1:4800::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 8A77230F2; Mon, 20 Mar 2023 18:20:57 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by sin.source.kernel.org (Postfix) with ESMTPS id DDB72CE1742; Tue, 21 Mar 2023 01:05:53 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 9F089C43446; Tue, 21 Mar 2023 01:05:51 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1679360751; bh=dTl9j0kLFz79+DRz2r2NTYGvZ0TA7ESPIKqeRybBfzE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ICLcFajJjU4lafzH2MN39Hm7EJA/qpGtwdKnPpyx9Tzo+X6AaNaCyKe8Ka3SWTqAM KjBHkbq6JzXpi4xl340zifEfc1pJtgnS0NsImElUne/YUHXEPJBl5exjyP30adp1vo OLY32WGsrx1ljIN6fyhB6jpMqXHS9BV9hM/YZsp0JRhUDWz8cg6QuRyowTdgwuaoat E9XgeLZwanbTWdfQL+1nv1CXJ2qV8mkDbUJ4jxHnNltKeK6n/NnZzKAk+IwcTBgQqL YrP/YOoNoQpHNLr6Dedl0MTiWHj2dmAPP2SrMi9iiSeGmQ1ne6/RCE7PTtqkPKPzSM /RZGRsFCU5R6A== Received: by paulmck-ThinkPad-P72.home (Postfix, from userid 1000) id C31B815403C5; Mon, 20 Mar 2023 18:05:50 -0700 (PDT) From: "Paul E. McKenney" To: linux-kernel@vger.kernel.org, linux-arch@vger.kernel.org, kernel-team@meta.com, mingo@kernel.org Cc: stern@rowland.harvard.edu, parri.andrea@gmail.com, will@kernel.org, peterz@infradead.org, boqun.feng@gmail.com, npiggin@gmail.com, dhowells@redhat.com, j.alglave@ucl.ac.uk, luc.maranget@inria.fr, akiyks@gmail.com, "Paul E. McKenney" Subject: [PATCH memory-model scripts 23/31] tools/memory-model: Make history-check scripts use mselect7 Date: Mon, 20 Mar 2023 18:05:41 -0700 Message-Id: <20230321010549.51296-23-paulmck@kernel.org> X-Mailer: git-send-email 2.40.0.rc2 In-Reply-To: <4e5839bb-e980-4931-a550-3548d025a32a@paulmck-laptop> References: <4e5839bb-e980-4931-a550-3548d025a32a@paulmck-laptop> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1760940820934375567?= X-GMAIL-MSGID: =?utf-8?q?1760940820934375567?= The history-check scripts currently use grep to ignore non-C-language litmus tests, which is a bit fragile. This commit therefore enlists the aid of "mselect7 -arch C", given Luc Maraget's recent modifications that allow mselect7 to operate in filter mode. This change requires herdtools 7.52-32-g1da3e0e50977 or later. Signed-off-by: Paul E. McKenney --- tools/memory-model/scripts/initlitmushist.sh | 2 +- tools/memory-model/scripts/newlitmushist.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/memory-model/scripts/initlitmushist.sh b/tools/memory-model/scripts/initlitmushist.sh index 956b6957484d..31ea782955d3 100755 --- a/tools/memory-model/scripts/initlitmushist.sh +++ b/tools/memory-model/scripts/initlitmushist.sh @@ -60,7 +60,7 @@ fi # Create a list of the C-language litmus tests with no more than the # specified number of processes (per the --procs argument). -find litmus -name '*.litmus' -exec grep -l -m 1 "^C " {} \; > $T/list-C +find litmus -name '*.litmus' -print | mselect7 -arch C > $T/list-C xargs < $T/list-C -r grep -L "^P${LKMM_PROCS}" > $T/list-C-short scripts/runlitmushist.sh < $T/list-C-short diff --git a/tools/memory-model/scripts/newlitmushist.sh b/tools/memory-model/scripts/newlitmushist.sh index 3f4b06e29988..25235e2049cf 100755 --- a/tools/memory-model/scripts/newlitmushist.sh +++ b/tools/memory-model/scripts/newlitmushist.sh @@ -43,7 +43,7 @@ fi # Form full list of litmus tests with no more than the specified # number of processes (per the --procs argument). -find litmus -name '*.litmus' -exec grep -l -m 1 "^C " {} \; > $T/list-C-all +find litmus -name '*.litmus' -print | mselect7 -arch C > $T/list-C-all xargs < $T/list-C-all -r grep -L "^P${LKMM_PROCS}" > $T/list-C-short # Form list of new tests. Note: This does not handle litmus-test deletion! From patchwork Tue Mar 21 01:05:42 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Paul E. McKenney" X-Patchwork-Id: 72586 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:604a:0:0:0:0:0 with SMTP id j10csp1527483wrt; Mon, 20 Mar 2023 18:18:18 -0700 (PDT) X-Google-Smtp-Source: AK7set9RA8OdmJzfcokPPgnI65fZ6iSA3H0LHWOQpFg284c40XzHDaF7beUjq8/QM4+8+divvvXM X-Received: by 2002:a17:903:1390:b0:1a1:9842:2020 with SMTP id jx16-20020a170903139000b001a198422020mr353145plb.43.1679361498211; Mon, 20 Mar 2023 18:18:18 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1679361498; cv=none; d=google.com; s=arc-20160816; b=fyISsU0zqpzsLBKKP3+bRlwxhZ1y/DeL1ClWCJu+g4uTYamP2tSdnNnv/+UExHujs4 zbg+EI6DASRqWCyPi9Y2GmjmNchxSY5pkUOH6gIlPDbPoAaF8PWiNhJrSdz+13Nsh61w us7AdFHVekGXgtAlw2jHew5n3X9XoIcV/tJUc9thKZ6svUlgxCKdWFfOxK6/T8yzZm4x t784/zKY28XMWIF1ga1L99cJ7G5bux4bx1lrJge6/4Fk10c2vh1iCYcO5hGI2YVgNZ7O kTZ/ku6sZjnNKik97f0MSBiA0SpCo5mLOI83hgiab4izxvBx4n3RT6KJuSO9zI7mGJ5z rTQw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=lVVMl9OClfPCCic+TiRKsUYeRgjpXsansWes4B0pnUc=; b=Ic479YBX9ekiwHKjlPiQjrZEgn1buXZFNQyg6zsPZZ6dywsKxJDGsCp9fi+29DOiMx kUpkcbi4IdSUJrnB93SfBSLWlC8zMNIE2gkp2T3I/ta8R95ndvKQTikHJzu4FLxxUTZS pu/0CsKh5GMfQQgaLwL/qO5m8ZUobqzoLJ+cMW4sQh0zSbuREMAe72vz0zxywsoayClH 237PnqaaideBX7XoIah9WL/M74UK9tUjETHelm/PahQO6BWqChIgHuCNDKnaFaIEDTCL pl6YvccV0uTOg+IgLt2uWIYB3H0smdz5ENmC2Frnp1MJ8qOHEJxlamWum9ZRSArxXffG vQig== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=PfIudBR6; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id kd4-20020a17090313c400b001a1c562e6a4si6029013plb.582.2023.03.20.18.18.06; Mon, 20 Mar 2023 18:18:18 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=PfIudBR6; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230167AbjCUBHN (ORCPT + 99 others); Mon, 20 Mar 2023 21:07:13 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53786 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230060AbjCUBGn (ORCPT ); Mon, 20 Mar 2023 21:06:43 -0400 Received: from sin.source.kernel.org (sin.source.kernel.org [IPv6:2604:1380:40e1:4800::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 98F9E3029B; Mon, 20 Mar 2023 18:06:14 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by sin.source.kernel.org (Postfix) with ESMTPS id 1340BCE1745; Tue, 21 Mar 2023 01:05:54 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id AB747C4331F; Tue, 21 Mar 2023 01:05:51 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1679360751; bh=TZ/HARgy2h040ZnfHsCeMp2AvhKFuiI8pmwwADeA4vE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=PfIudBR6f5u5j2wiIDbYIX5bnTglR4QomDedyfgFDH575mdR3JgpyUgc7zrxeMJ5x BJiUmDmkAH2/pGlju4O0ZxnsiqhjuHR7r8ZgwLPYgiLiGLq3crQjqhM0n1i8wmh8ZQ KgInFrOSB/lN+YYcIfTXjj4icJrT60oHSWXFYHS1BKjr5uE0xIOSgePdewYIGlU11B zp84khUvxTmvUhm30jYqKIMmtj3fKQOzGmAWnD03TG574E2e11nsYi57xIFwzGyqZu m42jJp43sDbPe3EeXootZW3aa6P8ext/8OHzu2TJ2Ez+blmjLIRCpgnLfHI4gWXAkG yrDJ8kCfEHG+A== Received: by paulmck-ThinkPad-P72.home (Postfix, from userid 1000) id C931915403C7; Mon, 20 Mar 2023 18:05:50 -0700 (PDT) From: "Paul E. McKenney" To: linux-kernel@vger.kernel.org, linux-arch@vger.kernel.org, kernel-team@meta.com, mingo@kernel.org Cc: stern@rowland.harvard.edu, parri.andrea@gmail.com, will@kernel.org, peterz@infradead.org, boqun.feng@gmail.com, npiggin@gmail.com, dhowells@redhat.com, j.alglave@ucl.ac.uk, luc.maranget@inria.fr, akiyks@gmail.com, "Paul E. McKenney" Subject: [PATCH memory-model scripts 24/31] tools/memory-model: Add "--" to parseargs.sh for additional arguments Date: Mon, 20 Mar 2023 18:05:42 -0700 Message-Id: <20230321010549.51296-24-paulmck@kernel.org> X-Mailer: git-send-email 2.40.0.rc2 In-Reply-To: <4e5839bb-e980-4931-a550-3548d025a32a@paulmck-laptop> References: <4e5839bb-e980-4931-a550-3548d025a32a@paulmck-laptop> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1760938162721382332?= X-GMAIL-MSGID: =?utf-8?q?1760938162721382332?= Currently, parseargs.sh expects to consume all the command-line arguments, which prevents the calling script from having any of its own arguments. This commit therefore causes parseargs.sh to stop consuming arguments when it encounters a "--" argument, leaving any remaining arguments for the calling script. Signed-off-by: Paul E. McKenney --- tools/memory-model/scripts/parseargs.sh | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/tools/memory-model/scripts/parseargs.sh b/tools/memory-model/scripts/parseargs.sh index 25a81ac0dfdf..7aa58755adfc 100755 --- a/tools/memory-model/scripts/parseargs.sh +++ b/tools/memory-model/scripts/parseargs.sh @@ -83,7 +83,7 @@ do echo "Cannot create directory --destdir '$LKMM_DESTDIR'" usage fi - if test -d "$LKMM_DESTDIR" -a -w "$LKMM_DESTDIR" -a -x "$LKMM_DESTDIR" + if test -d "$LKMM_DESTDIR" -a -x "$LKMM_DESTDIR" then : else @@ -127,6 +127,10 @@ do LKMM_TIMEOUT="$2" shift ;; + --) + shift + break + ;; *) echo Unknown argument $1 usage From patchwork Tue Mar 21 01:05:43 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Paul E. McKenney" X-Patchwork-Id: 72632 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:604a:0:0:0:0:0 with SMTP id j10csp1542315wrt; Mon, 20 Mar 2023 19:06:45 -0700 (PDT) X-Google-Smtp-Source: AK7set93vdX968R5nsKBbx7/0sxvdtttO1wgThQNnRxzPQoRhWGI8hWT7/JLZMtSjEO1vS+0zrxX X-Received: by 2002:aa7:9423:0:b0:626:6a3:6b81 with SMTP id y3-20020aa79423000000b0062606a36b81mr871135pfo.15.1679364405503; Mon, 20 Mar 2023 19:06:45 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1679364405; cv=none; d=google.com; s=arc-20160816; b=oBeOnmEpFCujab9vmkO6G7/rMjFFTe1+U9VTbGHQoAs6pb++xARmO82OqxffzKUl7y pFnoNcc04sU1MbGafV8Ty/kVQn/WtDgFw0h4eWTxuWyGaJ9vSXCsBtC/kQB2CWnzwNYB BMIGpPJD2eBdqd2vLqLDuZVtBVan1yCdcSSNtgiheQrA53KJY+sAocUABuS/Z/JgIrQq eD1P4E+3w3QoYCjUDgOdGVeMQtY4cJT46aQR2+bvKCuQumiX6useXatmiOojqaUoRmQD ui46Kh1wUtKTkrKpc79W4LXJRPPVBcI5ut+71K5EEEfiU0DMZELLzuiPy4/J5yQDAF34 vuFA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=cCy8oFLXsTn8ZwZDs24Mz91vL/4nxuuEmPQT0n5ZCdA=; b=K2SSxk/YfqTJJ1C2ifpd2CymFnKPtouEVdfCnHKISf38dRNKgH0ZDJ25OskiykOk5q vfy2ymWWZfn9UXPcYWj+d2M1+0XhtGfwuXrGdM6AYhJVq6CL2iszHh6iQgGTx0aOFAb0 B+/yhnfBaG7E/ot3GweuPCqMkFiVU2Vsn8IB1miK3lnQMecksd0vc7vD1bMWkGsLG+Yo 9fUOJh/QRozdZnHArNsLC6ixnq2kR3n9EziTOOhLhGZL9NGMYWsosFUyji655R5YL28T Pnyr8Nw3vZizpokIQpo+zSmcI9NMV4B6U2qzyFEvVfdfjf6eqadXWiPdVddYVqjB7RH+ aM/Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=Pyd2kCGJ; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id k17-20020a63d111000000b004fb924c6aefsi11154574pgg.243.2023.03.20.19.06.33; Mon, 20 Mar 2023 19:06:45 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=Pyd2kCGJ; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230203AbjCUBKL (ORCPT + 99 others); Mon, 20 Mar 2023 21:10:11 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:55614 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230226AbjCUBJW (ORCPT ); Mon, 20 Mar 2023 21:09:22 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [IPv6:2604:1380:4641:c500::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B35D83865D; Mon, 20 Mar 2023 18:08:00 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 7399761920; Tue, 21 Mar 2023 01:05:52 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id AB15BC4331E; Tue, 21 Mar 2023 01:05:51 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1679360751; bh=BsZuPX17U98phpF/nvSsC4AY78z3ydCcHiePtu2rdfM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Pyd2kCGJB7LohO6l3EwIBK/SMEZuG+1PDz7b8wcYTPeEtE9zyV/Z+qygzYmUZs3a5 /T3KBI4BUz8RhRSAp/Vw+cwrtUN6GnbqDNEuOkYNxRnb8+dR04hOtxLLN0JiLuNpS+ BvVUnaxZY/IrGDdcrdv4eaJgMg4a7oqmMZfiwkbLGGPqTInNXw391mGrdIVuyNAAM8 6KcapxiIgKmD8eSWgWruLPqbBMr+UwLb2o/eH+xI4xAOl8Lhqsg5KvDlfsScdTR1Rc 38ktbX08vcG4qWeGNEQp5NB1d3JIxoQv5FjGySSViNjWsPlCtDhtxGG77QYrDgVR1B g86Nz9CgmwHxg== Received: by paulmck-ThinkPad-P72.home (Postfix, from userid 1000) id CF231154039A; Mon, 20 Mar 2023 18:05:50 -0700 (PDT) From: "Paul E. McKenney" To: linux-kernel@vger.kernel.org, linux-arch@vger.kernel.org, kernel-team@meta.com, mingo@kernel.org Cc: stern@rowland.harvard.edu, parri.andrea@gmail.com, will@kernel.org, peterz@infradead.org, boqun.feng@gmail.com, npiggin@gmail.com, dhowells@redhat.com, j.alglave@ucl.ac.uk, luc.maranget@inria.fr, akiyks@gmail.com, "Paul E. McKenney" Subject: [PATCH memory-model scripts 25/31] tools/memory-model: Repair parseargs.sh header comment Date: Mon, 20 Mar 2023 18:05:43 -0700 Message-Id: <20230321010549.51296-25-paulmck@kernel.org> X-Mailer: git-send-email 2.40.0.rc2 In-Reply-To: <4e5839bb-e980-4931-a550-3548d025a32a@paulmck-laptop> References: <4e5839bb-e980-4931-a550-3548d025a32a@paulmck-laptop> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1760941211027816545?= X-GMAIL-MSGID: =?utf-8?q?1760941211027816545?= Signed-off-by: Paul E. McKenney --- tools/memory-model/scripts/parseargs.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/memory-model/scripts/parseargs.sh b/tools/memory-model/scripts/parseargs.sh index 7aa58755adfc..08ded5909860 100755 --- a/tools/memory-model/scripts/parseargs.sh +++ b/tools/memory-model/scripts/parseargs.sh @@ -1,7 +1,7 @@ #!/bin/sh # SPDX-License-Identifier: GPL-2.0+ # -# the corresponding .litmus.out file, and does not judge the result. +# Parse arguments common to the various scripts. # # . scripts/parseargs.sh # From patchwork Tue Mar 21 01:05:44 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Paul E. McKenney" X-Patchwork-Id: 72603 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:604a:0:0:0:0:0 with SMTP id j10csp1529778wrt; Mon, 20 Mar 2023 18:25:33 -0700 (PDT) X-Google-Smtp-Source: AK7set9zUVGQtvqTfF//zGo2G3wn6/9hqR1/pwNh7ADaMZhNHHLENoOsDE2MdSnhUHyUNLjO7vRF X-Received: by 2002:a17:902:daca:b0:1a0:4fb2:6623 with SMTP id q10-20020a170902daca00b001a04fb26623mr601396plx.40.1679361933584; Mon, 20 Mar 2023 18:25:33 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1679361933; cv=none; d=google.com; s=arc-20160816; b=WWBgtMmGWxSW7zTrmD8V4IqJMD5kauiEjuRwxG7d7MI9wz7MAtg5IRnSDZ+AAoEFzg RtKXabqWhy6vN9I1dUBtzB7TAr9Hj7sf1KsXKTW7GfD7iY7WCmoZ6leItSsB957XSfA9 MiF2as5PQKaNkpI7xd3LctmVlVaQewNONmgE4a4aF57mz0o9Old/6JhyM4cwZXEnlyz6 I+Os0AyGXMD26+yyqbaZZXTqjHQMzVmgQKgct7Ht+Gj77uE7djQBKcgTu24j+oH/f+Mm UP6RhxwuvH4T7EC/5Smj+7nEPYwTszvMctMUi8m16pBqpi9MVDfW1lThBh+DpQuqGoeb +QmA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=7BpnzotjYH49LskXPRGfwCieIG85IWvNB7MWyX617ic=; b=RlRLT1w63ZMoNCXgs03Au1IBqy3WfwheLqveTeucBIzuXVTDd+CBy0O1OIcG43wLiK /M71tSggj8VzM2zHdHGi7DcxUajfpKOt6p2UH8WIagSrSGLZIBFEvkqjw7CTsyJQRSyJ 3jPQYEh+iYiR6RaCF2w5iHnSEPT4/CuBixaZtUWnepYN29HHe+VvmkFh/J0fSNkABicC JCr6L29p8bnhkSaVp8goRoUxCdTHftFnXqLBEapfJfdzZlZvSa7KvM8my5/fsUbVYXHj MNkvF8/8zvKzAd2EK/UZSqYaZd3l0g1lnQDzMLO9y/ujqe9FJP25bZivEIzB5ORkHV5i n4+g== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=EiYb4dum; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id f9-20020a170902ce8900b001a185d3cc26si12061091plg.219.2023.03.20.18.25.21; Mon, 20 Mar 2023 18:25:33 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=EiYb4dum; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230206AbjCUBJJ (ORCPT + 99 others); Mon, 20 Mar 2023 21:09:09 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54846 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230184AbjCUBI1 (ORCPT ); Mon, 20 Mar 2023 21:08:27 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [IPv6:2604:1380:4641:c500::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 51C323803F; Mon, 20 Mar 2023 18:07:18 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id CEC586192C; Tue, 21 Mar 2023 01:05:52 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id AAC5AC433A0; Tue, 21 Mar 2023 01:05:51 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1679360751; bh=bB0eL5KNMURkMUPp20sEmFSXSRxd5RWy7LGzvhcBn0g=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=EiYb4dum4txHGwuDwlRtR5qm6u9idg+abQi9yZjyrd7m9q40HlHZDl7e+0kCJHxCi 5lFo68logJ/cQIJ6U9voelpn3n+OY098NLsFkKBDP/Sr7GL/4sy0QrGLO/59FeV5Yx N4VNau2TMpQZ+/3I+jB05ePqoFMJ2rkAAQJPjx1vhv6hhVpUlmOxZG7pKoFCsF1vgt OM97ceNFSP8aZlUT2mO5Ah+7ISjcAvokM1Dy5yoIpiGZyTlwXuZeTd9p+J1te88iaK 5309qV406DOyadjpOCLZnG1wrAiBWJfe2t4xGSXye5awiEgsQU/UXFI0yH6NkaQLgC LLszCNEb6Bnlw== Received: by paulmck-ThinkPad-P72.home (Postfix, from userid 1000) id D38FA15403C9; Mon, 20 Mar 2023 18:05:50 -0700 (PDT) From: "Paul E. McKenney" To: linux-kernel@vger.kernel.org, linux-arch@vger.kernel.org, kernel-team@meta.com, mingo@kernel.org Cc: stern@rowland.harvard.edu, parri.andrea@gmail.com, will@kernel.org, peterz@infradead.org, boqun.feng@gmail.com, npiggin@gmail.com, dhowells@redhat.com, j.alglave@ucl.ac.uk, luc.maranget@inria.fr, akiyks@gmail.com, "Paul E. McKenney" Subject: [PATCH memory-model scripts 26/31] tools/memory-model: Add checktheselitmus.sh to run specified litmus tests Date: Mon, 20 Mar 2023 18:05:44 -0700 Message-Id: <20230321010549.51296-26-paulmck@kernel.org> X-Mailer: git-send-email 2.40.0.rc2 In-Reply-To: <4e5839bb-e980-4931-a550-3548d025a32a@paulmck-laptop> References: <4e5839bb-e980-4931-a550-3548d025a32a@paulmck-laptop> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1760938618792128257?= X-GMAIL-MSGID: =?utf-8?q?1760938618792128257?= This commit adds a checktheselitmus.sh script that runs the litmus tests specified on the command line. This is useful for verifying fixes to specific litmus tests. Signed-off-by: Paul E. McKenney --- tools/memory-model/scripts/README | 8 ++++ .../memory-model/scripts/checktheselitmus.sh | 43 +++++++++++++++++++ 2 files changed, 51 insertions(+) create mode 100755 tools/memory-model/scripts/checktheselitmus.sh diff --git a/tools/memory-model/scripts/README b/tools/memory-model/scripts/README index 0e29a52044c1..cc2c4e5be9ec 100644 --- a/tools/memory-model/scripts/README +++ b/tools/memory-model/scripts/README @@ -27,6 +27,14 @@ checklitmushist.sh checklitmus.sh Check a single litmus test against its "Result:" expected result. + Not intended to for manual use. + +checktheselitmus.sh + + Check the specified list of litmus tests against their "Result:" + expected results. This takes optional parseargs.sh arguments, + followed by "--" followed by pathnames starting from the current + directory. cmplitmushist.sh diff --git a/tools/memory-model/scripts/checktheselitmus.sh b/tools/memory-model/scripts/checktheselitmus.sh new file mode 100755 index 000000000000..10eeb5ecea6d --- /dev/null +++ b/tools/memory-model/scripts/checktheselitmus.sh @@ -0,0 +1,43 @@ +#!/bin/sh +# SPDX-License-Identifier: GPL-2.0+ +# +# Invokes checklitmus.sh on its arguments to run the specified litmus +# test and pass judgment on the results. +# +# Usage: +# checktheselitmus.sh -- [ file1.litmus [ file2.litmus ... ] ] +# +# Run this in the directory containing the memory model, specifying the +# pathname of the litmus test to check. The usual parseargs.sh arguments +# can be specified prior to the "--". +# +# This script is intended for use with pathnames that start from the +# tools/memory-model directory. If some of the pathnames instead start at +# the root directory, they all must do so and the "--destdir /" parseargs.sh +# argument must be specified prior to the "--". Alternatively, some other +# "--destdir" argument can be supplied as long as the needed subdirectories +# are populated. +# +# Copyright IBM Corporation, 2018 +# +# Author: Paul E. McKenney + +. scripts/parseargs.sh + +ret=0 +for i in "$@" +do + if scripts/checklitmus.sh $i + then + : + else + ret=1 + fi +done +if test "$ret" -ne 0 +then + echo " ^^^ VERIFICATION MISMATCHES" 1>&2 +else + echo All litmus tests verified as was expected. 1>&2 +fi +exit $ret From patchwork Tue Mar 21 01:05:45 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Paul E. McKenney" X-Patchwork-Id: 72596 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:604a:0:0:0:0:0 with SMTP id j10csp1529018wrt; Mon, 20 Mar 2023 18:23:10 -0700 (PDT) X-Google-Smtp-Source: AK7set8Hj+sunwMH2WQy4uQRzSigoLOYeQhebTKqJunRM4/818xhzs+mUBdn1lA31mPCrLKPx36b X-Received: by 2002:a05:6a20:8ba3:b0:d5:c0dc:643c with SMTP id m35-20020a056a208ba300b000d5c0dc643cmr486258pzh.10.1679361789940; Mon, 20 Mar 2023 18:23:09 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1679361789; cv=none; d=google.com; s=arc-20160816; b=fuJaD+CjyTk1sEsKSkYn97W8Tac4ViYMwq2pX079KXLdJ55UM/v41oc87+OeRW7J8v 4pi8Ycry/dkx9vQx0tqQ4OADjv4s6bvmwbisZt7YCwu80M12kXjFSVlpqxq2nFnlmmEs ME8+nzZMN2OfTmSjzI0I+ig1wfBjnFT1vOH4xpQI4cMe+MIDC+cKW3f2ielwY1GZ9jHw MoG6mbjys6qdAtGzbp6GFgbr0LGJjZeZn91A33qnnyIelHYjMebepzsjO+FCaXS/o1k2 p6W5Uirw3N+I0WMn6oFQSTRPfB2Zz+/yTiMBC6FRs+0oK5EXcfzsLFGlafusXxAF62Mh bBzQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=xPu/P/Z5Xi9QGvs2HEAghXVOTzGSd3VjxobQ9fwQQII=; b=0GCE++RxFONetjZMStjdMMaMdnfSFC0MWWtvvrjbWJKFL4PDlrT0UQEVtqihctscRW 9Z2E1MpeKB2Lz+x8qnB6VkXDX397WTw5LZo+RJxgDRCYEccOMRKiLq3d3QEAF4HoLXt1 JpoQ8ryHXTutsGXvRsM9DgrluXygAf7ios0x73PLodAJ9VjEwtqIwHK/Q93gZ+2q4qTR JsdBV+4j7nPszQKIHTh7cWCys4lvvzeAk2ZvVn6gf7q4zIupkdW707J1ykdStTpuAyXt YLWHIu306rHPVfduXrr/D0gbgg8Zxylr9VDDgpFUDNv6WwaMz6PF5dnTvfYSHTt7IDqE XxvA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=kvWuUUYY; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id v11-20020a63f84b000000b004fb954ce988si11740382pgj.727.2023.03.20.18.22.57; Mon, 20 Mar 2023 18:23:09 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=kvWuUUYY; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230227AbjCUBKO (ORCPT + 99 others); Mon, 20 Mar 2023 21:10:14 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:55304 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230319AbjCUBJh (ORCPT ); Mon, 20 Mar 2023 21:09:37 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [IPv6:2604:1380:4641:c500::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 2F5D040F9; Mon, 20 Mar 2023 18:08:17 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id DB37261932; Tue, 21 Mar 2023 01:05:52 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id AD7F5C4331D; Tue, 21 Mar 2023 01:05:51 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1679360751; bh=gpI70LyYK1MnsBJ+dsCexmKpKV1wtgzABQ+Cyr1rAL0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=kvWuUUYY+Wje1nZaPRVENUQX0GuLAdbDstDVnIm43zSOmxfjOswZsWG/xvLJUcSg2 zVdb9O+cTOo9jLNyZHS3W06FfagnL0B4pBWFChUtcUpqeVq7zyAYLMz9yX5I4GN/pM ghSKJYszu2BDs0m4oobMTzCY7rWyU6iHHlPjTu8eqAP9kfCbBmqgpwVol/3Qb0zWHT 47dIfWXppSK2VEengygfFp+gNxVrdgdZEB+A7MZNLd4AxLk8crRK9zClGhBwdF4OkS BL7PStRy6PoKaAjCUMUx/FMyNsPQV6TFHsCMIzD4cZudTp+FLDo+RO8p7P+YTInWfh QTSV28MQ+iIcg== Received: by paulmck-ThinkPad-P72.home (Postfix, from userid 1000) id D783F15403CB; Mon, 20 Mar 2023 18:05:50 -0700 (PDT) From: "Paul E. McKenney" To: linux-kernel@vger.kernel.org, linux-arch@vger.kernel.org, kernel-team@meta.com, mingo@kernel.org Cc: stern@rowland.harvard.edu, parri.andrea@gmail.com, will@kernel.org, peterz@infradead.org, boqun.feng@gmail.com, npiggin@gmail.com, dhowells@redhat.com, j.alglave@ucl.ac.uk, luc.maranget@inria.fr, akiyks@gmail.com, "Paul E. McKenney" Subject: [PATCH memory-model scripts 27/31] tools/memory-model: Add data-race capabilities to judgelitmus.sh Date: Mon, 20 Mar 2023 18:05:45 -0700 Message-Id: <20230321010549.51296-27-paulmck@kernel.org> X-Mailer: git-send-email 2.40.0.rc2 In-Reply-To: <4e5839bb-e980-4931-a550-3548d025a32a@paulmck-laptop> References: <4e5839bb-e980-4931-a550-3548d025a32a@paulmck-laptop> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1760938468139146698?= X-GMAIL-MSGID: =?utf-8?q?1760938468139146698?= This commit adds functionality to judgelitmus.sh to allow it to handle both the "DATARACE" markers in the "Result:" comments in litmus tests and the "Flag data-race" markers in LKMM output. For C-language tests, if either marker is present, the other must also be as well, at least for litmus tests having a "Result:" comment. If the LKMM output indicates a data race, then failures of the Always/Sometimes/Never portion of the "Result:" prediction are forgiven. The reason for forgiving "Result:" mispredictions is that data races can result in "interesting" compiler optimizations, so that all bets are off in the data-race case. [ paulmck: Apply Akira Yokosawa feedback. ] Signed-off-by: Paul E. McKenney --- tools/memory-model/scripts/judgelitmus.sh | 40 ++++++++++++++++++----- 1 file changed, 32 insertions(+), 8 deletions(-) diff --git a/tools/memory-model/scripts/judgelitmus.sh b/tools/memory-model/scripts/judgelitmus.sh index 9abda72fe013..2700481d20f0 100755 --- a/tools/memory-model/scripts/judgelitmus.sh +++ b/tools/memory-model/scripts/judgelitmus.sh @@ -4,13 +4,19 @@ # Given a .litmus test and the corresponding litmus output file, check # the .litmus.out file against the "Result:" comment to judge whether the # test ran correctly. If the --hw argument is omitted, check against the -# LKMM output, which is assumed to be in file.litmus.out. If this argument -# is provided, this is assumed to be a hardware test, and the output is -# assumed to be in file.litmus.HW.out, where "HW" is the --hw argument. -# In addition, non-Sometimes verification results will be noted, but -# forgiven. Furthermore, if there is no "Result:" comment but there is -# an LKMM .litmus.out file, the observation in that file will be used -# to judge the assembly-language verification. +# LKMM output, which is assumed to be in file.litmus.out. If either a +# "DATARACE" marker in the "Result:" comment or a "Flag data-race" marker +# in the LKMM output is present, the other must also be as well, at least +# for litmus tests having a "Result:" comment. In this case, a failure of +# the Always/Sometimes/Never portion of the "Result:" prediction will be +# noted, but forgiven. +# +# If the --hw argument is provided, this is assumed to be a hardware +# test, and the output is assumed to be in file.litmus.HW.out, where +# "HW" is the --hw argument. In addition, non-Sometimes verification +# results will be noted, but forgiven. Furthermore, if there is no +# "Result:" comment but there is an LKMM .litmus.out file, the observation +# in that file will be used to judge the assembly-language verification. # # Usage: # judgelitmus.sh file.litmus @@ -47,9 +53,27 @@ else echo ' --- ' error: \"$LKMM_DESTDIR/$litmusout is not a readable file exit 255 fi +if grep -q '^Flag data-race$' "$LKMM_DESTDIR/$litmusout" +then + datarace_modeled=1 +fi if grep -q '^ \* Result: ' $litmus then outcome=`grep -m 1 '^ \* Result: ' $litmus | awk '{ print $3 }'` + if grep -m1 '^ \* Result: .* DATARACE' $litmus + then + datarace_predicted=1 + fi + if test -n "$datarace_predicted" -a -z "$datarace_modeled" -a -z "$LKMM_HW_MAP_FILE" + then + echo '!!! Predicted data race not modeled' $litmus + exit 252 + elif test -z "$datarace_predicted" -a -n "$datarace_modeled" + then + # Note that hardware models currently don't model data races + echo '!!! Unexpected data race modeled' $litmus + exit 253 + fi elif test -n "$LKMM_HW_MAP_FILE" && grep -q '^Observation' $LKMM_DESTDIR/$lkmmout > /dev/null 2>&1 then outcome=`grep -m 1 '^Observation ' $LKMM_DESTDIR/$lkmmout | awk '{ print $3 }'` @@ -114,7 +138,7 @@ elif grep '^Observation' $LKMM_DESTDIR/$litmusout | grep -q $outcome || test "$o then ret=0 else - if test -n "$LKMM_HW_MAP_FILE" -a "$outcome" = Sometimes + if test \( -n "$LKMM_HW_MAP_FILE" -a "$outcome" = Sometimes \) -o -n "$datarace_modeled" then flag="--- Forgiven" ret=0 From patchwork Tue Mar 21 01:05:46 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Paul E. McKenney" X-Patchwork-Id: 72602 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:604a:0:0:0:0:0 with SMTP id j10csp1529584wrt; Mon, 20 Mar 2023 18:24:59 -0700 (PDT) X-Google-Smtp-Source: AK7set8nykUh4fIPco9mqE7Voh+3zmA0DDlS6PvZ6K3TNKBpDCvDUm/nAB6abVSbKOwveeh4jYh8 X-Received: by 2002:a05:6a20:3b29:b0:d9:7868:60c5 with SMTP id c41-20020a056a203b2900b000d9786860c5mr486456pzh.54.1679361899397; Mon, 20 Mar 2023 18:24:59 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1679361899; cv=none; d=google.com; s=arc-20160816; b=ioyLyGPenAbftHWLVkT8qkTFezDBfXyWWsguR1bZKcnqqXwv9N5SVZ865wA61paRGY LaWYt+z4xURW2Lc0wHhRcjDTEdUA/XcsHUUfs06FdafF/B9surM8gbEAXHJC0PQ2Ni0+ akOw1nKdwNZYIwUKzkb4ilJ8BzNEbjE3JiHWA9/D7Dc+K3BunhqEgFwvKYaHIXYHK6W7 EEJDitwXhZNpdxnyRCrHUQrUCTYyR/0AGjm4B4qaYl3B5FUa6mftztG3HsbrZv+ktiBO DzTsc8axoB+CCzICzCxmSiRFynfXaxYr6TWCmeAowO2LOUTV0D3fLRonCnGG5fFAAYzu q54w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=kNX+khWysBkMlELNKeV1ZcEMBQQCL3vLvVpO4hAZ4ic=; b=r/kcuBnjxu9sm5WQh61UtBDrm6QR8xVVWjc5MNtDEZSs/QFKtauxa2kurXGdQ8Vycb ZpkgYQOVFzr3GOA+45AaaXcZN3gRIiRLd6m2dmXI6L6FBJ/nH4bNgXqL+GhGISXLnEQV IhoCx4+2C0VfLCKRvtCbDfRyVrrZi6yk9oiiPgxRKho3PNKc0R/2n8VxuDsQTEf1wwjd 9o08yTV+wCz6ROAW6Htw1q/g0ShKSPqxlaKaIyrhcme5gk8i19jcvACZqf+a/nAEwake orjquY1Pt692Xf59gCx6T9iKKf2fqplzOkF1NHBQBiTWq6MaYYsfSq9AhA5m+nmKYkI3 ycwg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=Brt0kjtX; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id s3-20020a056a00194300b00608ab285f1csi10552799pfk.199.2023.03.20.18.24.46; Mon, 20 Mar 2023 18:24:59 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=Brt0kjtX; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230364AbjCUBJ1 (ORCPT + 99 others); Mon, 20 Mar 2023 21:09:27 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54520 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230175AbjCUBIk (ORCPT ); Mon, 20 Mar 2023 21:08:40 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [IPv6:2604:1380:4641:c500::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 31BE63864E; Mon, 20 Mar 2023 18:07:33 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 7DAAB61923; Tue, 21 Mar 2023 01:05:52 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id B552BC43323; Tue, 21 Mar 2023 01:05:51 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1679360751; bh=zCihDnP1nhMRD7A4aKMBexBXbcNXxLpiIowJmzZbfCY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Brt0kjtXDiG28K+fPikI/fC2jGfYPLyjf9idP56YaGbo2y0gfFPHTxF8IvLDqIPic KEqeeMCAWVD5hyiqQ5Alt1g0h9xRiFtYNkwNOGeqB9XT/djoTpXU2pvoncvbATzdJu wcwZkRQmNwDQML75ZWnRtDJ098Wz3SogPyJFNx6eoiB4aVt4r3IFaLIWVmHqaiPAlY eTac3CxYlchsF6DO6wS6BaYTkHHZxr/KR5Sm137oGJ0zrYAH4B+pLKvnszeMGjiur2 VUp0mzynqSxc6HpJ6h5BG2pHNAoZE+tRZCosOcHfFSXoZcPYrutA2Je5TwNXprwzoH 1Sw+dRTM0uaGQ== Received: by paulmck-ThinkPad-P72.home (Postfix, from userid 1000) id DB56715403CD; Mon, 20 Mar 2023 18:05:50 -0700 (PDT) From: "Paul E. McKenney" To: linux-kernel@vger.kernel.org, linux-arch@vger.kernel.org, kernel-team@meta.com, mingo@kernel.org Cc: stern@rowland.harvard.edu, parri.andrea@gmail.com, will@kernel.org, peterz@infradead.org, boqun.feng@gmail.com, npiggin@gmail.com, dhowells@redhat.com, j.alglave@ucl.ac.uk, luc.maranget@inria.fr, akiyks@gmail.com, "Paul E. McKenney" Subject: [PATCH memory-model scripts 28/31] tools/memory-model: Make judgelitmus.sh handle scripted Result: tag Date: Mon, 20 Mar 2023 18:05:46 -0700 Message-Id: <20230321010549.51296-28-paulmck@kernel.org> X-Mailer: git-send-email 2.40.0.rc2 In-Reply-To: <4e5839bb-e980-4931-a550-3548d025a32a@paulmck-laptop> References: <4e5839bb-e980-4931-a550-3548d025a32a@paulmck-laptop> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1760938582945382536?= X-GMAIL-MSGID: =?utf-8?q?1760938582945382536?= The scripts that generate the litmus tests in the "auto" directory of the https://github.com/paulmckrcu/litmus archive place the "Result:" tag into a single-line ocaml comment, which judgelitmus.sh currently does not recognize. This commit therefore makes judgelitmus.sh recognize both the multiline comment format that it currently does and the automatically generated single-line format. Signed-off-by: Paul E. McKenney --- tools/memory-model/scripts/judgelitmus.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tools/memory-model/scripts/judgelitmus.sh b/tools/memory-model/scripts/judgelitmus.sh index 2700481d20f0..1ec5d89fcfbb 100755 --- a/tools/memory-model/scripts/judgelitmus.sh +++ b/tools/memory-model/scripts/judgelitmus.sh @@ -57,10 +57,10 @@ if grep -q '^Flag data-race$' "$LKMM_DESTDIR/$litmusout" then datarace_modeled=1 fi -if grep -q '^ \* Result: ' $litmus +if grep -q '^[( ]\* Result: ' $litmus then - outcome=`grep -m 1 '^ \* Result: ' $litmus | awk '{ print $3 }'` - if grep -m1 '^ \* Result: .* DATARACE' $litmus + outcome=`grep -m 1 '^[( ]\* Result: ' $litmus | awk '{ print $3 }'` + if grep -m1 '^[( ]\* Result: .* DATARACE' $litmus then datarace_predicted=1 fi From patchwork Tue Mar 21 01:05:47 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Paul E. McKenney" X-Patchwork-Id: 72579 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:604a:0:0:0:0:0 with SMTP id j10csp1526380wrt; Mon, 20 Mar 2023 18:14:55 -0700 (PDT) X-Google-Smtp-Source: AK7set81p+Pgvef23kbpbgshBelvx688gug6ilEHV/c/ghn1dZNLpCfa9hoQw4SxUuI1ARuUrEuT X-Received: by 2002:aa7:9dc1:0:b0:627:ecd4:84a5 with SMTP id g1-20020aa79dc1000000b00627ecd484a5mr875733pfq.14.1679361295327; Mon, 20 Mar 2023 18:14:55 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1679361295; cv=none; d=google.com; s=arc-20160816; b=yK2GuaVK6xI4LY+Am0ean2yayxM9wrC3noBjAL5sRUAOhNq+/sFUAlsjmeG2Y64LmY aAp+/JEHsGEpMdZUGJuGsZx+yVWXrXsUjBTt0XB/t0TYVYu07I0UJ00uX0Pw2t5QwC39 AKptHZnL8d5+GKuwfQOs0CZSjlxpifAK4YgMK/AIkS94oKdDGPa06eUT8yDN8LTggnwT XV5MePFTaLsNpOoDx+8i26oHafPBPdJFwVfp940VkJPszL0mvwUTOV8C/8O8kagFYNZJ +Nb3H8TO7ELnbbr801B0lurGx4Ax5VhuMHGUEK1NbSVp6dv9XL+tebcmsL1e2mqDPh1X 3CyQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=rheyqhyoqNwxj4AJzxaowszjeM+y1XTWTjrtqIBcUP8=; b=czLlbFiOBQXHreB7mbsjwmJH/LXNn4qct4KY4HlO+9DcDRecQa2I57VxrsF2NZUM0B YR1Rd4cBYW79/W1h0gdF9irKHCcxtDyrapMUj0l/rj+fQ/BSie+yxRHe8L5N9DXNXvtx 9AdC/d3xHc/BlLgHR+hheeU3ewF7sXAVWqYdEmEhcuWGIXXGkQKqnq9MEpnva9Hj3qtH X7vilAAguCKhAX6WA8uMl9pjxv9QEDzxauyn6jcqqsRNLKeHyEI4XEueZLWnuxYPirjz FRN/nlGxzobG1Cw0FY2TaMNfZGflwCIfz1tv+Ojw8bIj2KTvTeA2VvlLm2CqnJrdqesV B6+g== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=AtpyVMek; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id a29-20020a62d41d000000b00627fd61aaafsi3644369pfh.340.2023.03.20.18.14.40; Mon, 20 Mar 2023 18:14:55 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=AtpyVMek; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230030AbjCUBHH (ORCPT + 99 others); Mon, 20 Mar 2023 21:07:07 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53934 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229950AbjCUBGn (ORCPT ); Mon, 20 Mar 2023 21:06:43 -0400 Received: from ams.source.kernel.org (ams.source.kernel.org [IPv6:2604:1380:4601:e00::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 6092B2ED5E; Mon, 20 Mar 2023 18:06:14 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ams.source.kernel.org (Postfix) with ESMTPS id A4665B811C3; Tue, 21 Mar 2023 01:05:53 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id B7B91C43324; Tue, 21 Mar 2023 01:05:51 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1679360751; bh=wa5pYtC5SYWp9ZShIu2HSy2OIsdx39BjnrLPgX+Su3Y=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=AtpyVMekd3m51PaRDe+rVxdlIheIptFu7ri+D5Cd5GUFhkPqtpQFpbmcVQwG6RDoI Rlt7ea8SmHEvnoUJd2DxiIQeYgDPBC9OJFYHcP5bGIYoBnMCkJmMtVDpvZPNGdnDXb ySFCxdWHpFMk9LNQSSNMpjLyJ1SxWyWYUXL1zCOI1749PoGTrleh/Bth5YMwmsnJlK i/N9TwUD9itnAKnzFvz4CnjJ2YAFA3U+btHMNfoHDUsDRan8f2V5YlhtXTgXv8UMGi C+S0ZFxz30e8fn4qPrKTpiYAr7+0M2RwzPWndU/2iinwYKJmm2SsHOYMOezYDOuHuM J6T1yY1ZP6jaw== Received: by paulmck-ThinkPad-P72.home (Postfix, from userid 1000) id DF22315403CF; Mon, 20 Mar 2023 18:05:50 -0700 (PDT) From: "Paul E. McKenney" To: linux-kernel@vger.kernel.org, linux-arch@vger.kernel.org, kernel-team@meta.com, mingo@kernel.org Cc: stern@rowland.harvard.edu, parri.andrea@gmail.com, will@kernel.org, peterz@infradead.org, boqun.feng@gmail.com, npiggin@gmail.com, dhowells@redhat.com, j.alglave@ucl.ac.uk, luc.maranget@inria.fr, akiyks@gmail.com, "Paul E. McKenney" Subject: [PATCH memory-model scripts 29/31] tools/memory-model: Use "-unroll 0" to keep --hw runs finite Date: Mon, 20 Mar 2023 18:05:47 -0700 Message-Id: <20230321010549.51296-29-paulmck@kernel.org> X-Mailer: git-send-email 2.40.0.rc2 In-Reply-To: <4e5839bb-e980-4931-a550-3548d025a32a@paulmck-laptop> References: <4e5839bb-e980-4931-a550-3548d025a32a@paulmck-laptop> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1760937949483613022?= X-GMAIL-MSGID: =?utf-8?q?1760937949483613022?= Litmus tests involving atomic operations produce LL/SC loops on a number of architectures, and unrolling these loops can result in excessive verification times or even stack overflows. This commit therefore uses the "-unroll 0" herd7 argument to avoid unrolling, on the grounds that additional passes through an LL/SC loop should not change the verification. Note however, that certain bugs in the mapping of the LL/SC loop to machine instructions may go undetected. On the other hand, herd7 might not be the best vehicle for finding such bugs in any case. (You do stress-test your architecture-specific code, don't you?) Suggested-by: Luc Maranget Signed-off-by: Paul E. McKenney --- tools/memory-model/scripts/runlitmus.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/memory-model/scripts/runlitmus.sh b/tools/memory-model/scripts/runlitmus.sh index dfdb1f00fcc0..94608d4b6502 100755 --- a/tools/memory-model/scripts/runlitmus.sh +++ b/tools/memory-model/scripts/runlitmus.sh @@ -75,6 +75,6 @@ then cp $T/$hwlitmusfile.jingle7.out $LKMM_DESTDIR/$hwlitmus.err exit 253 fi -/usr/bin/time $LKMM_TIMEOUT_CMD herd7 $LKMM_DESTDIR/$hwlitmus > $LKMM_DESTDIR/$hwlitmus.out 2>&1 +/usr/bin/time $LKMM_TIMEOUT_CMD herd7 -unroll 0 $LKMM_DESTDIR/$hwlitmus > $LKMM_DESTDIR/$hwlitmus.out 2>&1 exit $? From patchwork Tue Mar 21 01:05:48 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Paul E. McKenney" X-Patchwork-Id: 72598 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:604a:0:0:0:0:0 with SMTP id j10csp1529137wrt; Mon, 20 Mar 2023 18:23:30 -0700 (PDT) X-Google-Smtp-Source: AK7set9o5XcsS95pom/CeDAr5+m5aKX35DfAHLReJeLjz1oyEdrIRMzDY1/zf/sLGHj6HuFGrDdI X-Received: by 2002:a17:903:2288:b0:19e:d60a:e9e with SMTP id b8-20020a170903228800b0019ed60a0e9emr591840plh.42.1679361810219; Mon, 20 Mar 2023 18:23:30 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1679361810; cv=none; d=google.com; s=arc-20160816; b=I2Oib59SBsM6bhMKh/XsIxkUH2xyL1NRd0G8Iyciz+PBxCqIzk+CxmuML3QAmuX/u/ ml20LvqT+pTrhI8DaJjPtf2M8HGvLyXZEka8qEf1Xiwz7oqM04byEJk7Y/j9bRuL7cTk zlOGH4Ol7IMMqaesYAQRuqrMPul19mgy/SM5i1mZWALmeU1Q0FaQwdmpjK42z9ezdvTe fL0ATDLe1yHbu7L+wFISzyLMApa8IWXz6lhoYCk/+VfUxHYcLRK4B5lC2BrD1YPvzzOX YORR9/Y0JY+txaGVSY7nbF0EshUDtjwuMrjY20/osStvH3yNzPIYks7QUTw+3mHp77+N Vl6g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=pLnj+ihw5UKs6v/2DUrm7goKz9p056A5pgnivLgxSlI=; b=wfdvfd1dscvdcC2LA4iqG/gBSOXid9mMioO2czfc9RtM2OLuYDB+MdAOz3LZ0rNbGj Lt9l52F0UKO3p9zvle5GxvPqi363DJ8835EPLsbbSSIeMxWj2weQySrWCJat7JSQVHut YfXLPa2+7Beq4EqCFks05V7rVbXWTTh4ETFGsnHrbL10Lzg5wNYg1Iisa0h716Sofo8Y e5tW0L2hKsOgxPwU9IPfOaHReoldutm3mF8b+M1Wf+HzlA548oikudiA1BH2Emgy5NW9 B0wiIKKOKO3b1mX9fANIduETmRkrFZ4H68Ib8ZsrOG9vV5LNPcK71qh02Jnl6IIkHz2H JhHA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=u95EU6ZD; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id d9-20020a170903230900b001a10c64c68csi12784023plh.113.2023.03.20.18.23.17; Mon, 20 Mar 2023 18:23:30 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=u95EU6ZD; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230327AbjCUBIy (ORCPT + 99 others); Mon, 20 Mar 2023 21:08:54 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:55294 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230285AbjCUBIY (ORCPT ); Mon, 20 Mar 2023 21:08:24 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [IPv6:2604:1380:4641:c500::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 3569737F19; Mon, 20 Mar 2023 18:07:10 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 7DA5F61922; Tue, 21 Mar 2023 01:05:52 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id B352AC43322; Tue, 21 Mar 2023 01:05:51 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1679360751; bh=WB00CrRRLxEmj0pXgFp/Ju7EoygRhiityPvhygsGO3s=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=u95EU6ZDWRY1JXEc/8UjfNrdzNUVMjdjhCix7mzdYRbNfxFm1LJPjcXyuiJsw5llQ nnM+2OrOLX1TUPXd9wqCen2xMvZLUm2eR0nS0pbA6i9U1UKdqJIkf8EgCIAWOIRaw/ KvmvQVdWMfScVJxZTph8OhTE38TEMPmZCXg1S5GQ9UDWbRE27A1hDS/7T3EM0YlpPS l7umhGhf89hKIy2IC46wdg+YBLLUtaB2y/YOFx65R9HpYKSeo3iU7FKyZXPWBBNWxw S3Z0sbEFx1kE30YIopJFadLpO01pZ+4LVxoBiCCC+hbauUU/IpZuGUNaR06mKs9v1u /iZi0tnGOfzVg== Received: by paulmck-ThinkPad-P72.home (Postfix, from userid 1000) id E30C715403D1; Mon, 20 Mar 2023 18:05:50 -0700 (PDT) From: "Paul E. McKenney" To: linux-kernel@vger.kernel.org, linux-arch@vger.kernel.org, kernel-team@meta.com, mingo@kernel.org Cc: stern@rowland.harvard.edu, parri.andrea@gmail.com, will@kernel.org, peterz@infradead.org, boqun.feng@gmail.com, npiggin@gmail.com, dhowells@redhat.com, j.alglave@ucl.ac.uk, luc.maranget@inria.fr, akiyks@gmail.com, Tiezhu Yang , "Paul E . McKenney" Subject: [PATCH memory-model scripts 30/31] tools/memory-model: Use "grep -E" instead of "egrep" Date: Mon, 20 Mar 2023 18:05:48 -0700 Message-Id: <20230321010549.51296-30-paulmck@kernel.org> X-Mailer: git-send-email 2.40.0.rc2 In-Reply-To: <4e5839bb-e980-4931-a550-3548d025a32a@paulmck-laptop> References: <4e5839bb-e980-4931-a550-3548d025a32a@paulmck-laptop> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1760938489380087759?= X-GMAIL-MSGID: =?utf-8?q?1760938489380087759?= From: Tiezhu Yang The latest version of grep claims the egrep is now obsolete so the build now contains warnings that look like: egrep: warning: egrep is obsolescent; using grep -E fix this up by moving the related file to use "grep -E" instead. sed -i "s/egrep/grep -E/g" `grep egrep -rwl tools/memory-model` Here are the steps to install the latest grep: wget http://ftp.gnu.org/gnu/grep/grep-3.8.tar.gz tar xf grep-3.8.tar.gz cd grep-3.8 && ./configure && make sudo make install export PATH=/usr/local/bin:$PATH Signed-off-by: Tiezhu Yang Reviewed-by: Akira Yokosawa Signed-off-by: Paul E. McKenney --- tools/memory-model/scripts/checkghlitmus.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/memory-model/scripts/checkghlitmus.sh b/tools/memory-model/scripts/checkghlitmus.sh index cedd0290b73f..d3dfb321259f 100755 --- a/tools/memory-model/scripts/checkghlitmus.sh +++ b/tools/memory-model/scripts/checkghlitmus.sh @@ -36,13 +36,13 @@ fi # Create a list of the specified litmus tests previously run. ( cd $LKMM_DESTDIR; find litmus -name "*.litmus${hwfnseg}.out" -print ) | sed -e "s/${hwfnseg}"'\.out$//' | - xargs -r egrep -l '^ \* Result: (Never|Sometimes|Always|DEADLOCK)' | + xargs -r grep -E -l '^ \* Result: (Never|Sometimes|Always|DEADLOCK)' | xargs -r grep -L "^P${LKMM_PROCS}"> $T/list-C-already # Create a list of C-language litmus tests with "Result:" commands and # no more than the specified number of processes. find litmus -name '*.litmus' -print | mselect7 -arch C > $T/list-C -xargs < $T/list-C -r egrep -l '^ \* Result: (Never|Sometimes|Always|DEADLOCK)' > $T/list-C-result +xargs < $T/list-C -r grep -E -l '^ \* Result: (Never|Sometimes|Always|DEADLOCK)' > $T/list-C-result xargs < $T/list-C-result -r grep -L "^P${LKMM_PROCS}" > $T/list-C-result-short # Form list of tests without corresponding .out files From patchwork Tue Mar 21 01:05:49 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Paul E. McKenney" X-Patchwork-Id: 72590 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:604a:0:0:0:0:0 with SMTP id j10csp1528568wrt; Mon, 20 Mar 2023 18:21:44 -0700 (PDT) X-Google-Smtp-Source: AK7set/mCbrj4OpRPbMwlBzFMGTCKw1oWUigIME8dPhQ8492ohIOFq5uadNzyO6uqbQ5IaBFVLrL X-Received: by 2002:a17:903:41cf:b0:19f:1c79:8b21 with SMTP id u15-20020a17090341cf00b0019f1c798b21mr456560ple.42.1679361703958; Mon, 20 Mar 2023 18:21:43 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1679361703; cv=none; d=google.com; s=arc-20160816; b=M474jRcq2kCgKb2Ij+w2Uu/jEZeniwLpgrJxn7IwR592040oRm2FimxVIvtrrSdbtH WksKMBFsBn7BJ3SrdlggsAvBs1Y+1UJ1ieADuJLwhNmFoGQSUAcegYm/R9NU/WHVX3pC bnkRfyiQRQbZEh9pmSG7U/egTbSwMosUhnAA1RrAeKVh0VWB+c3XM/C5TCAIy28mqVVd h4jiSw6JC8YE3ZrrOe5UcuC0kMd23Q6EaxF1w/lBCy2mpEfG7TZjrj0G2ZlSZrfnI+mk wS2kwLiDYIrjlMUQxpJKwHnr9ZLlSicVvVRP5hG72l+RxH/ixIXC+fNBSfpFNjIFnuBb FVtg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=Yp/bxVUDVKKqQCzt4iNfloheJcWYiCl01u6Th6XRkyA=; b=TfjXJ0gJleuA6reHFSP4UKikrsAC/p10cGtFk6K5wHwAILXVY+4WceZSDL6bV4qFg0 BpHfJBKJKOD4Stuk6L7WhoxaR7PmFUgZKa1agGuP5tNVJ9PplQS7XR6a0vJyNV3Qrcpz fKpQps6iTdO7rEMcy3xY/pZBn0Dzp2GcCxrx7Ge6/zgB8ZBEQ+M9PGT+w9pbBaongy8Z kS0qDXu0k9giaJtLO5VqADikOn3ZK8sVHE+bKO9M1xEBZTfbjelQhHIk2dYyUUyJUgpi krxCZmpY5aSGXixbZG2yuZ2MAvFPSm8Hv2kN1aa0qymO9MXN2rmN6IR0MRxy7fPLrkbb MNVw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=eqH28SQS; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id d9-20020a170903230900b001a10c64c68csi12784023plh.113.2023.03.20.18.21.31; Mon, 20 Mar 2023 18:21:43 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=eqH28SQS; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230332AbjCUBI5 (ORCPT + 99 others); Mon, 20 Mar 2023 21:08:57 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:55306 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230128AbjCUBIZ (ORCPT ); Mon, 20 Mar 2023 21:08:25 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [IPv6:2604:1380:4641:c500::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D7A6D37F35; Mon, 20 Mar 2023 18:07:10 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 85F7561924; Tue, 21 Mar 2023 01:05:52 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id BEE88C43325; Tue, 21 Mar 2023 01:05:51 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1679360751; bh=lZo/BQz3UIZjSWUToPVQVl7BhO510z3+z/kZFOpr6Do=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=eqH28SQSZKbpDOkcDXEuR9n9DoC9/lhPx6oY3OJ09y0e2EgLc8/8siVxIpq3z+066 DQhmvXe7CeSZ9kSGO70GgnF1dt+96TKc32kATHQQsev9T+NzG38vywHrh7LR9Ke0vi GbpUf9IJrR7AIumjRQL9zxqOZxincyBfcBWRrdmdUhovNMdWuYL2B0+Zsvn3Y8O7N0 PSL1xNt7rO7ViZfDs2jZKxTwWZH30BlGIP4sA1lTrac5eHavwsyA4XtrziyFs7AV+0 F+eWSFJnIpiaUECVdP8Yp3GTwQB0qc36u516f0YzFonUrsBTJ3sK/M/5C+btsu+Wv9 2El8nmZJsoSvA== Received: by paulmck-ThinkPad-P72.home (Postfix, from userid 1000) id E733315403D3; Mon, 20 Mar 2023 18:05:50 -0700 (PDT) From: "Paul E. McKenney" To: linux-kernel@vger.kernel.org, linux-arch@vger.kernel.org, kernel-team@meta.com, mingo@kernel.org Cc: stern@rowland.harvard.edu, parri.andrea@gmail.com, will@kernel.org, peterz@infradead.org, boqun.feng@gmail.com, npiggin@gmail.com, dhowells@redhat.com, j.alglave@ucl.ac.uk, luc.maranget@inria.fr, akiyks@gmail.com, "Paul E. McKenney" Subject: [PATCH memory-model scripts 31/31] tools/memory-model: Document LKMM test procedure Date: Mon, 20 Mar 2023 18:05:49 -0700 Message-Id: <20230321010549.51296-31-paulmck@kernel.org> X-Mailer: git-send-email 2.40.0.rc2 In-Reply-To: <4e5839bb-e980-4931-a550-3548d025a32a@paulmck-laptop> References: <4e5839bb-e980-4931-a550-3548d025a32a@paulmck-laptop> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1760938378515042115?= X-GMAIL-MSGID: =?utf-8?q?1760938378515042115?= This commit documents how to run the various scripts in order to test a potentially pervasive change to the memory model. Signed-off-by: Paul E. McKenney --- tools/memory-model/scripts/README | 32 +++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/tools/memory-model/scripts/README b/tools/memory-model/scripts/README index cc2c4e5be9ec..fb39bd0fd1b9 100644 --- a/tools/memory-model/scripts/README +++ b/tools/memory-model/scripts/README @@ -76,3 +76,35 @@ runlitmushist.sh README This file + +Testing a change to LKMM might go as follows: + + # Populate expected results without that change, and + # runs for about an hour on an 8-CPU x86 system: + scripts/initlitmushist.sh --timeout 10m --procs 10 + # Incorporate the change: + git am -s -3 /path/to/patch # Or whatever it takes. + + # Test the new version of LKMM as follows... + + # Runs in seconds, good smoke test: + scripts/checkalllitmus.sh + + # Compares results to those produced by initlitmushist.sh, + # and runs for about an hour on an 8-CPU x86 system: + scripts/checklitmushist.sh --timeout 10m --procs 10 + + # Checks results against Result tags, runs in minutes: + scripts/checkghlitmus.sh --timeout 10m --procs 10 + +The checkghlitmus.sh should not report errors in cases where the +checklitmushist.sh script did not also report a change. However, +this check is nevertheless valuable because it can find errors in the +original version of LKMM. Note however, that given the above procedure, +an error in the original LKMM version that is fixed by the patch will +be reported both as a mismatch by checklitmushist.sh and as an error +by checkghlitmus.sh. One exception to this rule of thumb is when the +test fails completely on the original version of LKMM and passes on the +new version. In this case, checklitmushist.sh will report a mismatch +and checkghlitmus.sh will report success. This happens when the change +to LKMM introduces a new primitive for which litmus tests already existed.