lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [day] [month] [year] [list]
Message-Id: <20250510013515.69636-1-ryotkkr98@gmail.com>
Date: Sat, 10 May 2025 10:35:15 +0900
From: Ryo Takakura <ryotkkr98@...il.com>
To: john.ogness@...utronix.de,
	pmladek@...e.com
Cc: Jason@...c4.com,
	gregkh@...uxfoundation.org,
	linux-serial@...r.kernel.org,
	linux-kernel@...r.kernel.org,
	lkp@...el.com,
	oe-lkp@...ts.linux.dev,
	oliver.sang@...el.com,
	ryotkkr98@...il.com
Subject: [PATCH] rslib: Add scheduling points during the test

The test has been prone to softlockup but stayed unnoticed because
of the printk calls during the test resets the soflockup watchdog by
calling touch_nmi_watchdog(). With the commit b63e6f60eab4 ("serial:
8250: Switch to nbcon console"), the printk calls no longer suppress
the softlockup and warnings can be observed more evidently that shows
the test needs more scheduling points.

Provide scheduling points by adding cond_resched() for each test
iteration on their up to/beyond error correction capacity.

Signed-off-by: Ryo Takakura <ryotkkr98@...il.com>
---

Hi!

The discussion on how the printk was preventing
the softlockup can be found here [0].

Sincerely,
Ryo Takakura

[0] https://lore.kernel.org/all/202501221029.fb0d574d-lkp@intel.com/
---
 lib/reed_solomon/test_rslib.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/lib/reed_solomon/test_rslib.c b/lib/reed_solomon/test_rslib.c
index 75cb1adac..322d7b0a8 100644
--- a/lib/reed_solomon/test_rslib.c
+++ b/lib/reed_solomon/test_rslib.c
@@ -306,6 +306,8 @@ static void test_uc(struct rs_control *rs, int len, int errs,
 
 		if (memcmp(r, c, len * sizeof(*r)))
 			stat->dwrong++;
+
+		cond_resched();
 	}
 	stat->nwords += trials;
 }
@@ -400,6 +402,8 @@ static void test_bc(struct rs_control *rs, int len, int errs,
 		} else {
 			stat->rfail++;
 		}
+
+		cond_resched();
 	}
 	stat->nwords += trials;
 }
-- 
2.34.1


Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ