torture: Seed torture_random_state on CPU
authorPaul E. McKenney <paulmck@kernel.org>
Mon, 7 Nov 2022 02:16:14 +0000 (18:16 -0800)
committerPaul E. McKenney <paulmck@kernel.org>
Wed, 4 Jan 2023 01:52:54 +0000 (17:52 -0800)
The DEFINE_TORTURE_RANDOM_PERCPU() macro defines per-CPU random-number
generators for torture testing, but the seeds for each CPU's instance
will be identical if they are first used at the same time.  This commit
therefore adds the CPU number to the mix when reseeding.

Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
kernel/torture.c

index 789aeb0e1159c6a0f031f06db40dd28cec75c092..29afc62f2bfec8088aab70e62e7538809fca9469 100644 (file)
@@ -450,7 +450,7 @@ unsigned long
 torture_random(struct torture_random_state *trsp)
 {
        if (--trsp->trs_count < 0) {
-               trsp->trs_state += (unsigned long)local_clock();
+               trsp->trs_state += (unsigned long)local_clock() + raw_smp_processor_id();
                trsp->trs_count = TORTURE_RANDOM_REFRESH;
        }
        trsp->trs_state = trsp->trs_state * TORTURE_RANDOM_MULT +