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>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20140210153728.GB20017@opentech.at>
Date:	Mon, 10 Feb 2014 16:37:28 +0100
From:	Nicholas Mc Guire <der.herr@...r.at>
To:	linux-rt-users@...r.kernel.org
Cc:	LKML <linux-kernel@...r.kernel.org>,
	Sebastian Andrzej Siewior <bigeasy@...utronix.de>,
	Steven Rostedt <rostedt@...dmis.org>,
	Peter Zijlstra <peterz@...radead.org>,
	Carsten Emde <C.Emde@...dl.org>,
	Thomas Gleixner <tglx@...utronix.de>,
	Andreas Platschek <platschek@....tuwien.ac.at>
Subject: [PATCH RT 1/5] allow preemption in add_timer_randomness


allow preemption in add_timer_randomness

This patch replaced the preempt_disable by migrate_disable in 
add_timer_randomness.

Does this really need even migration protection at all ? 
if one would even drop migration protection - what would happen ?

        /* if over the trickle threshold, use only 1 in 4096 samples */
        if (input_pool.entropy_count > trickle_thresh &&
            ((__this_cpu_inc_return(trickle_count) - 1) & 0xfff)) {
                return;
        }

trickle_thresh and input_pool.entropy_count are global, so the only thing
that would happen if this got migrated would be that the 1/4096 could be
a bit less precise locally (the probability of being migrted here is not 
very high this is a window of a few instructions at best) 

If we got migrated away - so what ? that only would mean that it would be
checking the trickle_count on the "wrong" cpu - in sum the cpus would though
still not contribute more bits, the one countdown wouuld speed up only as
much as some other countdown slowed down.

In any case, even for precise 1/4096 when over threshhold we would not need
more than a migration protection.

patch is against 3.12.10-rt15

Signed-off-by: Nicholas Mc Guire <der.herr@...r.at>
---
 drivers/char/random.c |    7 ++++---
 1 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/drivers/char/random.c b/drivers/char/random.c
index ddcbcad..ede5346 100644
--- a/drivers/char/random.c
+++ b/drivers/char/random.c
@@ -238,6 +238,7 @@
 #include <linux/utsname.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
+#include <linux/sched.h>
 #include <linux/major.h>
 #include <linux/string.h>
 #include <linux/fcntl.h>
@@ -670,15 +671,15 @@ static void add_timer_randomness(struct timer_rand_state *state, unsigned num)
 	} sample;
 	long delta, delta2, delta3;
 
-	preempt_disable();
+	migrate_disable();
 	/* if over the trickle threshold, use only 1 in 4096 samples */
 	if (input_pool.entropy_count > trickle_thresh &&
 	    ((__this_cpu_inc_return(trickle_count) - 1) & 0xfff)) {
-		preempt_enable();
+		migrate_enable();
 		return;
 	}
 
-	preempt_enable();
+	migrate_enable();
 	sample.jiffies = jiffies;
 	sample.cycles = random_get_entropy();
 	sample.num = num;
-- 
1.7.2.5

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ