Re: What was the problem with quicklists and x86-64?

Benjamin Herrenschmidt
2007-12-13T21:04:05Z

On Thu, 2007-12-13 at 12:53 -0800, Christoph Lameter wrote:
> On Fri, 14 Dec 2007, Benjamin Herrenschmidt wrote:
>
> > > These issues only exist with NUMA because of the freeing of off node pages
> > > before the TLB flush was done. There was a discussion about this issue and
> > > my fix of simply not freeing the offnode pages early was ignored. Instead
> > > the x86_64 implementation (which has no problems that I know of) was
> > > pulled leaving the issue open in the core. Benjamin Herrrenschmidt
> > > wanted to take a look at these issues (CCing him).
> >
> > I don't know how NUMA gets in the picture there, it's probably very x86
> > specific thing. The issue we have here happens on other platforms
> > unrelated to NUMA. The fact that is tired to NUMA on x86 might be due to
> > the way the HW tablewalk operates on these.
>
> This is a generic NUMA issue here! Quicklist pages that are not on
> the current node are freed without waiting for the TLB flush. The patch
> that I posted fixes that by requiring that all pages be flushed.

Ah ok, so that's a NUMA issue due to how the quicklists are implemented,
I see. Note that the flush isn't necessary a solution on all platforms.
On powerpc, I -still- need to defer with RCU as we don't do anything in
flush tlb. Our TLB invalidations are HW broadcast in the first place,
but what we need to sync with is the SW hash reload code.

So your solution in the quicklists doesn't solve the problem for us.

Ben.