Skip to content
  • Jason Evans's avatar
    2fac3416
    Implement cache index randomization for large allocations. · 2fac3416
    Jason Evans authored
    Extract szad size quantization into {extent,run}_quantize(), and .
    quantize szad run sizes to the union of valid small region run sizes and
    large run sizes.
    
    Refactor iteration in arena_run_first_fit() to use
    run_quantize{,_first,_next(), and add support for padded large runs.
    
    For large allocations that have no specified alignment constraints,
    compute a pseudo-random offset from the beginning of the first backing
    page that is a multiple of the cache line size.  Under typical
    configurations with 4-KiB pages and 64-byte cache lines this results in
    a uniform distribution among 64 page boundary offsets.
    
    Add the --disable-cache-oblivious option, primarily intended for
    performance testing.
    
    This resolves #13.
    
    Bug: 21326736
    (cherry picked from commit 57c788a2)
    
    Change-Id: Ia3ed37bc0eee9c866860f3608c30f44657f94f4c
    2fac3416
    Implement cache index randomization for large allocations.
    Jason Evans authored
    Extract szad size quantization into {extent,run}_quantize(), and .
    quantize szad run sizes to the union of valid small region run sizes and
    large run sizes.
    
    Refactor iteration in arena_run_first_fit() to use
    run_quantize{,_first,_next(), and add support for padded large runs.
    
    For large allocations that have no specified alignment constraints,
    compute a pseudo-random offset from the beginning of the first backing
    page that is a multiple of the cache line size.  Under typical
    configurations with 4-KiB pages and 64-byte cache lines this results in
    a uniform distribution among 64 page boundary offsets.
    
    Add the --disable-cache-oblivious option, primarily intended for
    performance testing.
    
    This resolves #13.
    
    Bug: 21326736
    (cherry picked from commit 57c788a2)
    
    Change-Id: Ia3ed37bc0eee9c866860f3608c30f44657f94f4c
Loading