NetBSD/sys/arch/xen
maxv ac670b3099 Instead of using a global array with per-cpu indexes, embed the tmp VAs
into cpu_info directly. This concerns only {i386, Xen-i386, Xen-amd64},
because amd64 already has a direct map that is way faster than that.

There are two major issues with the global array: maxcpus entries are
allocated while it is unlikely that common i386 machines have so many
cpus, and the base VA of these entries is not cache-line-aligned, which
mostly guarantees cache-line-thrashing each time the VAs are entered.

Now the number of tmp VAs allocated is proportionate to the number of CPUs
attached (which therefore reduces memory consumption), and the base is
properly aligned.

On my 3-core AMD, the number of DC_refills_L2 events triggered when
performing 5x10^6 calls to pmap_zero_page on two dedicated cores is on
average divided by two with this patch.

Discussed on tech-kern a little.
2017-02-11 14:11:24 +00:00
..
compile
conf Increase KERNTEXTOFF from 1MB to 2MB on amd64. [1MB; 2MB[ is now handled 2017-02-02 19:09:08 +00:00
include provide stub intr xname establish for xen 2016-10-17 18:23:49 +00:00
x86 Instead of using a global array with per-cpu indexes, embed the tmp VAs 2017-02-11 14:11:24 +00:00
xen Hold the interlock before cv_broadcast as per condvar(9) 2016-12-26 08:16:28 +00:00
xenbus KNF. Remove extra spaces. No functional change. 2016-07-07 06:55:38 +00:00
Makefile