On Wed, Sep 19, 2012 at 08:59:15PM +0100, Ben Laurie wrote: > On Wed, Sep 19, 2012 at 8:29 PM, Pawel Jakub Dawidek <[email protected]> wrote: > > On Wed, Sep 19, 2012 at 07:30:52PM +0100, Jonathan Anderson wrote: > >> > If all the times are more or less equally probable in this range […] > >> > >> They're very unlikely to be equally probable. It would make sense to do > >> some characterization of these times and their statistics: a highly > >> non-uniform distribution would mean that we don't actually get many bits > >> per attach. > > > > I have times for ~2000 device_attach() calls when loading sound card > > driver on totally idle system. If someone could take those and analyse > > the distribution that would be great. > > > >> > […] we have more > >> > than 19 bits of entropy from this one call, but I reduced if to four > >> > bits only, because there are devices that are much faster to attach. > >> > > >> > >> Another reason for doing the above characterization is that, if a > >> particular device_attach() really does provide 12 bits of uncertainty, > >> it's a shame to drop eight of them on the floor. > > > > Rights. That's why I've prepared another patch: > > > > http://people.freebsd.org/~pjd/patches/harvest_device_attach.2.patch > > > > which effectively discards top ten bits, which means we expect 0.1% of > > the attach time to be unpredictable (the attach time in most cases vary > > by few percent, not sure yet how much of this variation is really > > unpredictable). > > This is the wrong thing to do! There's no reason to discard bits on > input (modulo the device throwing away inputs, that is) - just reduce > your entropy estimate. "Extra" bits do no harm.
I 'discard' ten bits from the estimation. I don't discard them by zeroing them out. If the number is a 26 bit value then I feed entire number, but pass estimation of 16 bits. -- Pawel Jakub Dawidek http://www.wheelsystems.com FreeBSD committer http://www.FreeBSD.org Am I Evil? Yes, I Am! http://tupytaj.pl
pgpwbVXI7SWEE.pgp
Description: PGP signature
