Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 07 Sep 2013 20:34:34 +0200
From:      =?utf-8?Q?Dag-Erling_Sm=C3=B8rgrav?= <des@des.no>
To:        Mark Murray <markm@FreeBSD.org>
Cc:        svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org
Subject:   Re: svn commit: r255362 - in head: share/examples/kld share/examples/kld/random_adaptor sys/conf sys/dev/glxsb sys/dev/hifn sys/dev/random sys/dev/rndtest sys/dev/safe sys/dev/ubsec sys/kern sys/mips/c...
Message-ID:  <86bo44iipx.fsf@nine.des.no>
In-Reply-To: <201309071415.r87EFDMv025499@svn.freebsd.org> (Mark Murray's message of "Sat, 7 Sep 2013 14:15:13 %2B0000 (UTC)")
References:  <201309071415.r87EFDMv025499@svn.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
Mark Murray <markm@FreeBSD.org> writes:
> Log:
>   Bring in some behind-the-scenes development, mainly By Arthur Mesh,
>   the rest by me.
>=20=20=20
>   o Namespace cleanup; the Yarrow name is now restricted to where it
>     really applies; this is in anticipation of being augmented or
>     replaced by Fortuna in the future. Fortuna is mentioned, but behind
>     #if logic, and is ignorable for now.
>=20=20=20
>   o The harvest queue is pulled out into its own modules.
>=20=20=20
>   o Entropy harvesting is emproved, both by being made more conservative,
>     and by separating (a bit!) the sources. Available entropy crumbs are
>     marginally improved.
>=20=20=20
>   o Selection of sources is made clearer. With recent revelations,
>     this will receive more work in the weeks and months to come.
>=20=20=20
>   Submitted by:	 Arthur Mesh (partly) <arthurmesh@gmail.com>

The patch is very large, but almost exclusively structural - code that
will be shared between Yarrow and Fortuna and any other entropy mixer we
may implement in the future has been renamed and / or moved away from
Yarrow.

I didn't see anything that deviated from the plan we agreed upon in
Cambridge.

Several random_harvest() calls have been changed to reduce the entropy
estimate - that's a good thing (as long as we don't reduce it to an
unusable level, which I don't think is the case).  I also see that the
network entropy harvesting bug we talked about has been fixed, which is
also a good thing.  As far as I can tell, these are the only changes
which affect the quality of the output.

The renaming part made the patch hard to read - IWBNI it had been
committed separately, but it didn't kill me.  Another factor that
reduces readability is that the patch needlessly unfolds
previously wrapped lines, e.g.

-			if (++random_state.outputblocks >=3D
-				random_state.gengateinterval) {
+			if (++random_state.outputblocks >=3D random_state.gengateinterval) {

which doesn't actually change anything but introduces a style bug and
increases the reviewers' workload.  In fact, the patch introduces quite
a few style bugs (including some that I personally aprove of but bde@
may complain about, such as s/u_char/uint8_t/), but that can be
addressed when we get a fresh batch of round tuits.

(joking aside - barring an overriding reason, we should strive to always
conform to style(9))

In Yarrow, buffer sizes are now consistently referred to by BLOCKSIZE
rather than a mix of BLOCKSIZE and (int)sizeof(whatever), which improves
code readability at the cost of patch readability.  However, it appears
that the *meaning* of BLOCKSIZE has changed from bits to bytes, and if I
read the code correctly, it used to be 256 bits but is now 128.

I dislike the use of "pseudo" in sys/dev/random/pseudo_rng.c since it is
easily confused with the P in PRNG and pseudo_rng.c is actually not a
PRNG but rather a collection of fake or dummy RNGs for testing purposes.
Perhaps s/pseudo/dummy/g would be in order.

So, this is a provisional OK from my part.  *However*, I did not review
the new harvesting queue in detail, and a bug there could, in the worst
case, result in all the harvested entropy being discarded and Yarrow
receiving kilobyte upon kilobyte of zeroes; so I'd like to get a second
opinion.

DES
--=20
Dag-Erling Sm=C3=B8rgrav - des@des.no



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?86bo44iipx.fsf>