Re: 2.6.23-rc2-mm1: rcutorture xtime usage

Paul E. McKenney
2007-08-10T15:12:25Z

On Thu, Aug 09, 2007 at 07:06:23PM -0700, Andrew Morton wrote:
> On Thu, 9 Aug 2007 19:00:40 -0700 "Paul E. McKenney" <paulmck@linux.vnet.ibm.com> wrote:
>
> > On Fri, Aug 10, 2007 at 03:31:46AM +0200, Adrian Bunk wrote:
> > > On Thu, Aug 09, 2007 at 01:51:06AM -0700, Andrew Morton wrote:
> > > >...
> > > > Changes since 2.6.23-rc2-mm1:
> > > >...
> > > > +allow-rcutorture-to-handle-synchronize_sched.patch
> > > >...
> > > > 2.6.23 queue
> > > >...
> > >
> > > All drivers were converted to no longer use xtime directly since it
> > > might be quite outdated, but this patch adds a usage of xtime.tv_nsec
> > > as RNG...
> >
> > This code doesn't care if the time is outdated, as it is simply
> > periodically perturbing an RNG, but OK.
> >
> > So, what interface are we supposed to be using instead? I cannot use
> > get_random_bytes() due to locking issues. This is not a cryptographically
> > secure usage, so the perturbation does not need to be extremely high
> > quality.
> >
> > On x86, I would just grab the low-order bits of the TSC, but all of the
> > world is not an x86. ;-)
>
> One used to use sched_clock() for this, then get frowned at. Now we
> have cpu_clock()...

Hmmm... And cpu_clock() is not in 2.6.22, so must appear in some later
release. Which means that the rate of API change in this area is a
bit high, so I should avoid it like the plague. Therefore, I should
look for some other convenient source of entropy.

One convenient source would the per-CPU statistics that rcutorture
maintains. Of course, a given CPU's RNG is nearly in lock-step with
its own statistics, but not with the adjacent CPU's statistics...

I will send a patch.

Thanx, Paul