[LTP] [RFC] [PATCH] pselect01: Tune thresholds

Jan Stancek jstancek@redhat.com
Fri May 12 09:33:09 CEST 2017


----- Original Message -----
> Hi!
> > > >   requested_us = tst_timespec_to_us(t->tv) * t->iterations;
> > > > 
> > > > If slack_per_run is slack of all iterations, why is it multiplied
> > > > again with number of iterations?
> > > 
> > > That variable is poorly named. It should have been slack_per_call or
> > > slack_per_iteration. It's slack per one syscall computed using the same
> > > formula that is used in kernel...
> > 
> > If it's per iteration, shouldn't this function be passed time per
> > iteration?
> > At the moment, it's time of all iterations:
> >   requested_us = tst_timespec_to_us(t->tv) * t->iterations;
> >   threshold = compute_threshold(requested_us, t->iterations);
> > 
> > Should it be ... ?
> >   threshold = compute_threshold(tst_timespec_to_us(t->tv), t->iterations);
> 
> Good catch, I will fix that, retest and send v2.

OK, if we agree, it's supposed to be time of single iteration,
isn't new function (in some cases) more strict than it used to be?

Before we had:
  threshold = requested_us / 100 + 200 * t->iterations;
which was 1% slack plus small number (200) that scales with iterations.

Now we have 0.1% slack plus small number (40) that scales
with iterations plus big number (20000) that scales inverse
to number number of iterations.

Say for 1000 us and 1000 iterations we used to have slack
10000 + 200*1000 =~ 210000. And now it's
(40 + 1) * 1000 + 20000 / (1000/200+1) = 41000 + 3333 =~ 44333

Regards,
Jan


More information about the ltp mailing list