• Nickolai Zeldovich's avatar
    Re-enable lazy TLB shootdowns; they are somewhat useful after all. · 96b3c5e7
    Nickolai Zeldovich 提交于
    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.
    96b3c5e7
mapbench.cc 1.6 KB