Re: [patch] remove put_cpu_no_resched()

From: Trond Myklebust
Date: Tue Feb 03 2009 - 19:35:14 EST


On Wed, 2009-02-04 at 00:27 +0000, Thomas Gleixner wrote:
> plain text document attachment (remove-put-cpu-no-resched.patch)
> Impact: remove a high latency source
>
> put_cpu_no_resched() is an optimization of put_cpu() which
> unfortunately can cause high latencies.
>
> The nfs iostats code uses put_cpu_no_resched() in a code sequence
> where a reschedule request caused by an interrupt between the
> get_cpu() and the put_cpu_no_resched() can delay the reschedule for at
> least HZ.
>
> The other users of put_cpu_no_resched() optimize correctly in
> interrupt code, but there is no real harm in using the put_cpu()
> function which is an alias for preempt_enable(). The extra check of the
> preemmpt count is not as critical as the potential source of missing a
> reschedule.
>
> Debugged in the preempt-rt tree and verified in mainline.
>
> Signed-off-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
> Reviewed-by: Ingo Molnar <mingo@xxxxxxx>
> Cc: Tony Luck <tony.luck@xxxxxxxxx>
> Cc: Trond Myklebust <Trond.Myklebust@xxxxxxxxxx>

Acked-by: Trond Myklebust <Trond.Myklebust@xxxxxxxxxx>
--
Trond Myklebust
Linux NFS client maintainer

NetApp
Trond.Myklebust@xxxxxxxxxx
www.netapp.com
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/