From owner-freebsd-hackers Mon Oct 16 12:02:46 1995 Return-Path: owner-hackers Received: (from root@localhost) by freefall.freebsd.org (8.6.12/8.6.6) id MAA17468 for hackers-outgoing; Mon, 16 Oct 1995 12:02:46 -0700 Received: from grunt.grondar.za (grunt.grondar.za [196.7.18.129]) by freefall.freebsd.org (8.6.12/8.6.6) with ESMTP id MAA17461 for ; Mon, 16 Oct 1995 12:02:31 -0700 Received: from grumble.grondar.za (grumble.grondar.za [196.7.18.130]) by grunt.grondar.za (8.6.12/8.6.9) with ESMTP id VAA24005; Mon, 16 Oct 1995 21:02:14 +0200 Received: from localhost (localhost [127.0.0.1]) by grumble.grondar.za (8.6.12/8.6.9) with SMTP id VAA27145; Mon, 16 Oct 1995 21:02:13 +0200 Message-Id: <199510161902.VAA27145@grumble.grondar.za> X-Authentication-Warning: grumble.grondar.za: Host localhost didn't use HELO protocol To: Bruce Evans cc: hackers@FreeBSD.org Subject: Re: Creating a /dev/random Date: Mon, 16 Oct 1995 21:02:12 +0200 From: Mark Murray Sender: owner-hackers@FreeBSD.org Precedence: bulk > To avoid this, use the existing buffer `zbuf', which is freed correctly. > There is no need for another variable - local variables are per process. > Perhaps `zbuf' should be renamed `buf'. I don't understand something here - what happens if the one process is reading both /dev/zero and /dev/random? will the two not then try to share buf/zbuf and screw up? > Hmm, now I know why /dev/zero is so slow. The buffer is bzeroed for > every call. The buffer size is 4K, so reads of about 4K are about > twice as slow as they could by and reads of 1 byte are very slow > because 4K is bzeroed for each byte read. Reserving a page for the > zero buffer would be a bit wasteful and the copyout to move the data > is inelegant anyway. Perhaps there should be a zeroout() function to > optimize this important (;-) device. ...or only c bytes should be zero'ed out? M -- Mark Murray 46 Harvey Rd, Claremont, Cape Town 7700, South Africa +27 21 61-3768 GMT+0200 Finger mark@grumble.grondar.za for PGP key