Re: x86_64: potential critical issue with quicklists and page tablepages

From: Linus Torvalds
Date: Fri Sep 21 2007 - 15:40:15 EST




On Fri, 21 Sep 2007, Christoph Lameter wrote:
> > The only way to fix it would be to integrate the quicklist stuff *with*
> > the mmu_gather stuff, so that these kinds of implementation issues are
> > explicitly shown in the relationship, instead of havign two "independent"
> > pieces of code where one piece very subtly depends on the exact
> > implementation of the other.
>
> Right. But will that not mean that quicklists would have to be used on all
> platforms in a generic way?

No. Each architecture can already choose how it does its own "mmu_gather".

*IF* the architecture uses a per-cpu variable for this, *THEN* the
architecture could also embed a "quicklist" in that per-cpu variable, and
make use of that. If you were to do it that way, it would all work fine.

So for example, if you actually want to use quicklists in the "generic"
TLB-gather implementation, you should replace the

struct page *pages[FREE_PTE_NR];

entry in the "struct mmu_gather" with a set of quicklists instead.

Or, alternatively, you could decide to not use the generic version at all,
and instead do a per-architecture one that uses the quicklists.

The problem with that commit that I just reverted was that it mixed the
two, but not completely. It still kept them separate.

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