Re-enable lazy TLB shootdowns; they are somewhat useful after all.
Some results from mapbench on josmp (with DEBUG 0 and VM_RADIX):
When TLB shootdowns are disabled (comment out tlbflush in vmap::remove),
mapbench is perfectly scalable (perhaps a little slow, but it's hard to
tell, because I didn't used to run with readaccess=1):
$ time mapbench 1
12403435727 cycles
$ time mapbench 2
12439895511 cycles
$ time mapbench 16
12200449501 cycles
With TLB shootdowns, things are slightly less scalable, and significantly
slower:
$ time mapbench 1
40044138778 cycles
$ time mapbench 2
44034668320 cycles
$ time mapbench 16
57569203944 cycles
Lazy TLB shootdowns improve performance on 1 core, and have some but
not nearly perfect scalability:
$ time mapbench 1
12658404885 cycles
$ time mapbench 2
29790759720 cycles
$ time mapbench 16
39160961925 cycles
Next step is to understand why TLB shootdowns are so expensive and how
to make them cheaper/scalable.
正在显示
请
注册
或者
登录
后发表评论