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

Christoph Lameter
2007-08-14T19:13:12Z

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.