From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 48AE63E16A8 for ; Tue, 4 Aug 2026 16:32:01 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.177.32 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785861123; cv=none; b=H/ATzkvsq20xN4X+GvzO8FxrNbpWLYOz733gNyDvIgISn/+HCalpKsZeQDuU0dhwTqJzI4ddKql4xbhabX5MjLD5GErfL42iftnE3cJ5YBG3BqqPofCI47I3gqFe/ik5vTPfZoa5uKPWOIxzDeuaGwW4IgCoM1/BdUXFQ/EB74Y= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785861123; c=relaxed/simple; bh=UGTiE9PoEA6SS5x8rGxLLEUGs1EIv+4aqcJb978TU+I=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=TksEbylIps8N0VlSubaeFD4O9v2LbWc8QGlO54EeiQwm5AqXEizvu0ZzJ61hw97tl6eLMDN4O0+BDpYTdFeb1AhGtoUT8K9urDxh/VcPYrH//pm9Ln5oYjCenWlHhTBYwtJ1bkQyauLBOnfCliZRndiXvnyfsg+jCaNO1o81OHI= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com; spf=pass smtp.mailfrom=oracle.com; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b=QUAprVJc; arc=none smtp.client-ip=205.220.177.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oracle.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b="QUAprVJc" Received: from pps.filterd (m0333520.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 674FuA1b2490196; Tue, 4 Aug 2026 16:31:50 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= corp-2025-04-25; bh=8axs6/DwKqTZCcXgaGEvGg2rDdG/OlqeZDwlUMVsX+c=; b= QUAprVJcsRPJUw4qzprtNy2PyKKluyU8VHxfotfvIEfh1S5k+Uyx4o7w/NNMKbNP rWoNasKFeGPeeRKChUSoEgKKlxCEFe0cnCA65jxrYBzyqJztOE/ySsf94u4pgMYx Iu46pQVPoJpz5KYBqLmq43BsIWi7DJN+BIf50MhEgyZqCdYI1Jx5fcBJimTJixiC YA+c+hoE8EQ27YDyPdyFJuIlKdTa9Y52SCg0aqYiOW6FAtJEM/hFU14uBs7MjU5d Z6IXk39af1xY/MDR66CatYOzrVuuraWwD9qoaMtF0oTB6SmFEmBAEEiBwbaAOrHq YmagMhyed+/cID4+mBXM2g== Received: from phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta03.appoci.oracle.com [138.1.37.129]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4fs8uge0yh-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 04 Aug 2026 16:31:49 +0000 (GMT) Received: from pps.filterd (phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (8.18.1.7/8.18.1.7) with ESMTP id 674GU5hU034991; Tue, 4 Aug 2026 16:31:49 GMT Received: from pps.reinject (localhost [127.0.0.1]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 4fs78c9y2g-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 04 Aug 2026 16:31:48 +0000 (GMT) Received: from phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by pps.reinject (8.18.1.12/8.18.1.12) with ESMTP id 674GViIJ004573; Tue, 4 Aug 2026 16:31:48 GMT Received: from lab61.no.oracle.com (lab61.no.oracle.com [10.172.144.82]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTP id 4fs78c9xxd-3; Tue, 04 Aug 2026 16:31:48 +0000 (GMT) From: =?UTF-8?q?H=C3=A5kon=20Bugge?= To: linux-kernel@vger.kernel.org, Peter Zijlstra , Ingo Molnar , Will Deacon , Boqun Feng , Waiman Long , Chris Wilson Cc: =?UTF-8?q?H=C3=A5kon=20Bugge?= , John Stultz , Ingo Molnar Subject: [PATCH v3 2/3] test-ww_mutex: Report errors from stress workers Date: Tue, 4 Aug 2026 18:31:35 +0200 Message-ID: <20260804163139.3121781-3-haakon.bugge@oracle.com> X-Mailer: git-send-email 2.43.5 In-Reply-To: <20260804163139.3121781-1-haakon.bugge@oracle.com> References: <20260804163139.3121781-1-haakon.bugge@oracle.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-08-04_03,2026-08-04_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 lowpriorityscore=0 suspectscore=0 adultscore=0 mlxscore=0 bulkscore=0 spamscore=0 malwarescore=0 mlxlogscore=999 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.19.0-2606160000 definitions=main-2608040133 X-Proofpoint-ORIG-GUID: PUu4QOoum8bh60LgqN3gnzcSIjEyMhoV X-Authority-Analysis: v=2.4 cv=XqnK/1F9 c=1 sm=1 tr=0 ts=6a7213f5 b=1 cx=c_pps a=WeWmnZmh0fydH62SvGsd2A==:117 a=WeWmnZmh0fydH62SvGsd2A==:17 a=IkcTkHD0fZMA:10 a=Sv0fKeRqtYgA:10 a=M51BFTxLslgA:10 a=VkNPw1HP01LnGYTKEx00:22 a=jiCTI4zE5U7BLdzWsZGv:22 a=BqU2WV_vvsyTyxaotp0D:22 a=yPCof4ZbAAAA:8 a=1XWaLZrsAAAA:8 a=HWq8w0C2B1yOpf0TK-AA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=WmVTiCyuxqgg3mnwYu6p:22 X-Proofpoint-Spam-Info: AW1haW4tMjYwODA0MDEzMyBTYWx0ZWRfX+pAijdFRpV+d baFJY08oCDf+giEV+GW9qea4u1rjYcKY1nBw55KYv0HtOKygn151tiNSJ/g/zd7YABqvja4hHkl y2zy0tRN1qA7q30np4hG6n/Ahaatei1KyhJW9sMezngQt0okhIZi X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwODA0MDEzMyBTYWx0ZWRfX+5ZCMw87R43/ xvD47G4fTJp+w6E7n0bokD1VvJ96WWpGL2LlcmnKeogFa2Eddi48BOFbBWhO55jiSjpDlKFAsVQ UajPuz+Jjp+ZVXXYCFzC5gFkqVwsKzGmAKMYLgcnWtnwMupAUDofK0F/F35AysjCE9U/IypbmKK 8gONjjvd7zogyQihHQtxkOFBUEGSthqb133S9tMl474SlpBaDRewEnlshpL2IVHBgYTK07vjlbI 2SUAKfy27RpXXAa2PJkGnQ9dwpkYIHDdh5JRJGQkOnM9pT7e2fVhZvo00vbj6L09jjbNPn+zzUm NJXvSNSqh76lLii/Xr9kTMQLI0WwoM7JYFdQfAVYwwnf0NOPfXrFZYDuUchfnxZFBfIlJfoZgDv 81odTUYLG8snYD6ycgHEX9NykYR7VpxtQjVq2TM7zi5y3pjCS7Lb9laiGEZMZwBQBlQpVCbdlgm Nqv0nxhVZGzou0JxLkw== X-Proofpoint-GUID: PUu4QOoum8bh60LgqN3gnzcSIjEyMhoV If any of stress_one_work(), stress_reorder_work(), or stress_inorder_work() fails, the error is not conveyed back to the test harness function stress(). We may then see in the log: stress (stress_inorder_work) failed with -35 Beginning ww (die) mutex selftests All ww mutex selftests passed Besides being a contradiction by terms, the failure to return error from said worker functions leads to false-positive results. We fix that by adding a *result* variable to *struct stress*, update it in said worker functions, and finally, in stress(), scan the *stress_array* and report the first error if any. Fixes: 2a0c11282881 ("locking/ww_mutex: Add kselftests for ww_mutex stress") Signed-off-by: HÃ¥kon Bugge Acked-by: John Stultz --- v1 -> v2: * Added John's a-b --- kernel/locking/test-ww_mutex.c | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/kernel/locking/test-ww_mutex.c b/kernel/locking/test-ww_mutex.c index 8311ff38ab683..5ed91f2cf30d9 100644 --- a/kernel/locking/test-ww_mutex.c +++ b/kernel/locking/test-ww_mutex.c @@ -392,6 +392,7 @@ struct stress { struct ww_class *class; unsigned long timeout; int nlocks; + int result; }; struct rnd_state rng; @@ -440,6 +441,9 @@ static void stress_inorder_work(struct work_struct *work) struct ww_mutex *locks = stress->locks; struct ww_acquire_ctx ctx; int *order; + int err; + + stress->result = -ENOMEM; order = get_random_order(nlocks); if (!order) @@ -447,7 +451,7 @@ static void stress_inorder_work(struct work_struct *work) do { int contended = -1; - int n, err; + int n; ww_acquire_init(&ctx, stress->class); retry: @@ -485,6 +489,7 @@ static void stress_inorder_work(struct work_struct *work) } while (!time_after(jiffies, stress->timeout)); kfree(order); + stress->result = err; } struct reorder_lock { @@ -501,6 +506,8 @@ static void stress_reorder_work(struct work_struct *work) int *order; int n, err; + stress->result = -ENOMEM; + order = get_random_order(stress->nlocks); if (!order) return; @@ -545,6 +552,8 @@ static void stress_reorder_work(struct work_struct *work) ww_acquire_fini(&ctx); } while (!time_after(jiffies, stress->timeout)); + stress->result = err; + out: list_for_each_entry_safe(ll, ln, &locks, link) kfree(ll); @@ -569,6 +578,8 @@ static void stress_one_work(struct work_struct *work) break; } } while (!time_after(jiffies, stress->timeout)); + + stress->result = err; } #define STRESS_INORDER BIT(0) @@ -581,6 +592,7 @@ static int stress(struct ww_class *class, int nlocks, int nthreads, unsigned int struct ww_mutex *locks; struct stress *stress_array; int n, count; + int res = 0; locks = kmalloc_objs(*locks, nlocks); if (!locks) @@ -635,10 +647,15 @@ static int stress(struct ww_class *class, int nlocks, int nthreads, unsigned int for (n = 0; n < nlocks; n++) ww_mutex_destroy(&locks[n]); + + /* Report the first error */ + for (n = 0; !res && n < count; n++) + res = stress_array[n].result; + kfree(stress_array); kfree(locks); - return 0; + return res; } static int run_tests(struct ww_class *class) -- 2.43.5