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

Jan Stancek jstancek@redhat.com
Mon May 15 12:03:50 CEST 2017



----- Original Message -----
> +
> +/*
> + * The threshold per one syscall is computed as a sum of:
> + *
> + *  250 us                 - accomodates for context switches, etc.
> + *  2*monotonic_resolution - accomodates for granurality of the
> CLOCK_MONOTONIC
> + *  slack_per_scall        - 0.1% of the sleep capped on 100ms
> + *                           which is slack allowed in kernel
> + *
> + * We also allow for outliners, i.e. add some number to the threshold in
> case
> + * that the number of iteration is small. For large enoung number of
> iterations
> + * outliners are averaged out.
> + */
> +static int compute_threshold(long long requested_us, unsigned int
> iterations)
> +{
> +	unsigned int slack_per_scall = MIN(100000, requested_us / 1000);

Hi,

while looking at fs/select.c I noticed that it also takes
current->timer_slack_ns into account and uses that if 
slack is smaller. Would it make sense to add ...?
  slack_per_scall = MAX(slack_per_scall, prctl(PR_GET_TIMERSLACK) / 1000);
The default is 50us, so maybe the 250us in formula covers this already?

v2 looks good to me, and my KVM guest ran test successfully for hours.

Regards,
Jan

> +
> +	return (250 + 2 * monotonic_resolution + slack_per_scall) * iterations
> +		+ (iterations > 1 ? 0 : 1500);
> +}
> +


More information about the ltp mailing list