From: Matt Mackall <mpm@selenic.com>
To: Andrew Morton <akpm@linux-foundation.org>
Cc: linux-kernel@vger.kernel.org
Subject: [PATCH 09 of 12] random: remove some prefetch logic
Date: Thu, 17 Jan 2008 20:33:51 -0600 [thread overview]
Message-ID: <bc31fa097d34c5c2470b.1200623631@cinder.waste.org> (raw)
In-Reply-To: <patchbomb.1200623622@cinder.waste.org>
The urandom output pool (ie the fast path) fits in one cacheline, so
this is pretty unnecessary. Further, the output path has already
fetched the entire pool to hash it before calling in here.
(This was the only user of prefetch_range in the kernel, and it passed
in words rather than bytes!)
Signed-off-by: Matt Mackall <mpm@selenic.com>
diff -r f06a2e1b4d58 -r bc31fa097d34 drivers/char/random.c
--- a/drivers/char/random.c Thu Jan 17 20:25:23 2008 -0600
+++ b/drivers/char/random.c Thu Jan 17 20:25:23 2008 -0600
@@ -457,7 +457,7 @@
unsigned long i, add_ptr, tap1, tap2, tap3, tap4, tap5;
int input_rotate;
int wordmask = r->poolinfo->poolwords - 1;
- __u32 w, next_w;
+ __u32 w;
unsigned long flags;
/* Taps are constant, so we can load them without holding r->lock. */
@@ -466,17 +466,13 @@
tap3 = r->poolinfo->tap3;
tap4 = r->poolinfo->tap4;
tap5 = r->poolinfo->tap5;
- next_w = *in++;
spin_lock_irqsave(&r->lock, flags);
- prefetch_range(r->pool, wordmask);
input_rotate = r->input_rotate;
add_ptr = r->add_ptr;
while (nwords--) {
- w = rol32(next_w, input_rotate & 31);
- if (nwords > 0)
- next_w = *in++;
+ w = rol32(*in++, input_rotate & 31);
i = add_ptr = (add_ptr - 1) & wordmask;
/* XOR in the various taps */
next prev parent reply other threads:[~2008-01-18 2:40 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-01-18 2:33 [PATCH 00 of 12] random cleanups for 2.6.25 Matt Mackall
2008-01-18 2:33 ` [PATCH 01 of 12] random: clean up checkpatch complaints Matt Mackall
2008-01-18 2:33 ` [PATCH 02 of 12] random: consolidate wakeup logic Matt Mackall
2008-01-18 2:33 ` [PATCH 03 of 12] random: use unlocked_ioctl Matt Mackall
2008-01-18 2:33 ` [PATCH 04 of 12] random: reuse rand_initialize Matt Mackall
2008-01-18 2:33 ` [PATCH 05 of 12] random: improve variable naming, clear extract buffer Matt Mackall
2008-01-18 2:33 ` [PATCH 06 of 12] random: make backtracking attacks harder Matt Mackall
2008-01-18 2:33 ` [PATCH 07 of 12] random: remove cacheline alignment for locks Matt Mackall
2008-01-18 2:33 ` [PATCH 08 of 12] random: eliminate redundant new_rotate variable Matt Mackall
2008-01-18 2:33 ` Matt Mackall [this message]
2008-01-18 2:33 ` [PATCH 10 of 12] random: simplify add_ptr logic Matt Mackall
2008-01-18 2:33 ` [PATCH 11 of 12] random: make mixing interface byte-oriented Matt Mackall
2008-01-18 2:33 ` [PATCH 12 of 12] random: simplify and rename credit_entropy_store Matt Mackall
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=bc31fa097d34c5c2470b.1200623631@cinder.waste.org \
--to=mpm@selenic.com \
--cc=akpm@linux-foundation.org \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®