Re: [RFC 4/9] Atomic reclaim: Save irq flags in vmscan.c

Peter Zijlstra
2007-08-14T20:06:25Z

On Tue, 2007-08-14 at 12:12 -0700, Christoph Lameter wrote:
> On Tue, 14 Aug 2007, Andi Kleen wrote:
>
> > Christoph Lameter <clameter@sgi.com> writes:
> >
> > > Reclaim can be called with interrupts disabled in atomic reclaim.
> > > vmscan.c is currently using spinlock_irq(). Switch to spin_lock_irqsave().
> >
> > I like the idea in principle. If this fully works out we could
> > potentially keep less memory free by default which would be a good
> > thing in general: free memory is bad memory.
>
> Right.
>
> > But would be interesting to measure what the lock
> > changes do to interrupt latency. Probably nothing good.
>
> Yup.
>
> > A more benign alternative might be to just set a per CPU flag during
> > these critical sections and then only do atomic reclaim on a local
> > interrupt when the flag is not set. That would make it a little less
> > reliable, but much less intrusive and with some luck still give many
> > of the benefits.
>
> There are other lock interactions that may cause problems. If we do not
> switch to the saving of irq flags then all involved spinlocks must become
> trylocks because the interrupt could have happened while the spinlock is
> held. So interrupts must be disabled on locks acquired during an
> interrupt.

A much simpler approach to this seems to use threaded interrupts like
-rt does.