Re: drivers/char/random.c:write_pool() -- cond_resched needed?

From: Matt Mackall
Date: Mon Dec 03 2007 - 13:50:29 EST


On Fri, Nov 30, 2007 at 11:58:10PM +0200, Sami Farin wrote:
> In write_pool(), isn't cond_resched() needed after call to
> add_entropy_words() because otherwise there can be large latencies
> (think of command "dd if=/dev/zero of=/dev/random bs=100000000" ) ?

Yes, looks like you're right.

Reduce latency for large writes to /dev/[u]random

Signed-off-by: Matt Mackall <mpm@xxxxxxxxxxx>

diff -r c60016ba6237 drivers/char/random.c
--- a/drivers/char/random.c Tue Nov 13 09:09:36 2007 -0800
+++ b/drivers/char/random.c Mon Dec 03 12:48:30 2007 -0600
@@ -1041,6 +1041,7 @@ write_pool(struct entropy_store *r, cons
p += bytes;

add_entropy_words(r, buf, (bytes + 3) / 4);
+ cond_resched();
}

return 0;


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