> 1) The main kernel is contiguous in physical memory and is mapped with
> large (4 MB) pages. This reduces pressure on the TLB. Modules are
> loaded in vmalloc memory, which uses small pages, and therefore
> competes for TLB space. This is a performance penalty, especially
> as most current machines have undersized TLBs already. (A 64-entry
> TLB with 4K pages maps 256K at a time. On-chip L2 caches are this
> large or larger. Thus, as a crude approximation, every L2 miss also
> causes a TLB miss.)
-aa tries to load modules into the linear mapping when possible.
That usually works when you load the modules early when the memory
isn't that fragmented yet.
I agree on that trying to put everything into modules isn't a good idea,
especially because of your second point.
-Andi
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/