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

From: Peter Zijlstra
Date: Tue Aug 14 2007 - 16:06:39 EST


On Tue, 2007-08-14 at 12:12 -0700, Christoph Lameter wrote:
> On Tue, 14 Aug 2007, Andi Kleen wrote:
>
> > Christoph Lameter <clameter@xxxxxxx> 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.

-
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/