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 789aeb0..29afc62 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 +