On Fri, Jan 18, 2008 at 02:47:30PM -0800, Stephen Hemminger wrote: > SFQ doesn't need true random numbers, it is only using them to salt > a hash. Therefore it is better to use net_random() and avoid any possible > problems with depleting the entropy pool.
The random-number algorithm used by net_random() certainly does appear to be considerably stronger than the one I used to generate the results in the 1990 paper. ;-) Acked-by: Paul E. McKenney <[EMAIL PROTECTED]> > Signed-off-by: Stephen Hemminger <[EMAIL PROTECTED]> > > > --- a/net/sched/sch_sfq.c 2008-01-17 09:00:58.000000000 -0800 > +++ b/net/sched/sch_sfq.c 2008-01-17 09:03:26.000000000 -0800 > @@ -386,7 +386,7 @@ static void sfq_perturbation(unsigned lo > struct Qdisc *sch = (struct Qdisc*)arg; > struct sfq_sched_data *q = qdisc_priv(sch); > > - get_random_bytes(&q->perturbation, 4); > + q->perturbation = net_random(); > > if (q->perturb_period) > mod_timer(&q->perturb_timer, jiffies + q->perturb_period); > @@ -415,7 +415,7 @@ static int sfq_change(struct Qdisc *sch, > del_timer(&q->perturb_timer); > if (q->perturb_period) { > mod_timer(&q->perturb_timer, jiffies + q->perturb_period); > - get_random_bytes(&q->perturbation, 4); > + q->perturbation = net_random(); > } > sch_tree_unlock(sch); > return 0; > @@ -443,7 +443,7 @@ static int sfq_init(struct Qdisc *sch, s > if (opt == NULL) { > q->quantum = psched_mtu(sch->dev); > q->perturb_period = 0; > - get_random_bytes(&q->perturbation, 4); > + q->perturbation = net_random(); > } else { > int err = sfq_change(sch, opt); > if (err) -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html