Avi Kivity
f05ddf0967
Merge "Improve LSA descriptor encoding" from Pavel
...
"
The LSA small objects allocation latency is greatly affected by
the way this allocator encodes the object descriptor in front of
each allocated slot.
Nowadays it's one of VLE variants implemented with the help of a
loop. Re-implementing this piece with less instructions and without
a loop allows greatly reducing the allocation latency.
The speed-up mostly comes from loop-less code that doesn't confuse
branch predictor. Also the express encoder seems to benefit from
writing 8 bytes of the encoded value in one go, rather than byte-
-by-byte.
Perf measurements:
1. (new) logallog test shows ~40% smaller times
2. perf_mutation in release mode shows ~2% increase in tps
3. the encoder itself is 2 - 4 times faster on x86_64 and
1.05 - 3 times faster on aarch64. The speed-up depends on
the 'encoded length', old encoder has linear time, the
new one is constant
tests: unit(dev), perf(release), just encoder on Aarch64
"
* 'br-lsa-alloc-latency-4' of https://github.com/xemul/scylla :
lsa: Use express encoder
uleb64: Add express encoding
lsa: Extract uleb64 code into header
test: LSA allocation perf test
2021-06-16 18:07:13 +03:00
..
2021-06-06 19:18:49 +03:00
2021-06-06 19:18:49 +03:00
2021-06-06 19:18:49 +03:00
2021-06-06 19:18:49 +03:00
2021-06-06 19:18:49 +03:00
2021-06-06 19:18:49 +03:00
2021-06-06 19:18:49 +03:00
2021-06-06 19:18:49 +03:00
2021-06-06 19:18:49 +03:00
2021-06-06 19:18:49 +03:00
2021-06-06 19:18:49 +03:00
2021-06-06 19:18:49 +03:00
2021-06-06 19:18:49 +03:00
2021-06-06 19:18:49 +03:00
2021-06-06 19:18:49 +03:00
2021-06-06 19:18:49 +03:00
2021-06-06 19:18:49 +03:00
2021-06-06 19:18:49 +03:00
2021-06-06 19:18:49 +03:00
2021-06-06 19:18:49 +03:00
2021-06-06 19:18:49 +03:00
2021-06-06 19:18:49 +03:00
2021-06-06 19:18:49 +03:00
2021-06-08 11:40:55 +03:00
2021-06-06 19:18:49 +03:00
2021-06-06 19:18:49 +03:00
2021-06-06 19:18:49 +03:00
2021-06-06 19:18:49 +03:00
2021-06-06 19:18:49 +03:00
2021-06-06 19:18:49 +03:00
2021-06-06 19:18:49 +03:00
2021-06-06 19:18:49 +03:00
2021-06-06 19:18:49 +03:00
2021-06-06 19:18:49 +03:00
2021-06-06 19:18:49 +03:00
2021-06-06 19:18:49 +03:00
2021-06-06 19:18:49 +03:00
2021-06-06 19:18:49 +03:00
2021-06-06 19:18:49 +03:00
2021-06-13 13:18:49 +03:00
2021-06-06 19:18:49 +03:00
2021-06-06 19:18:49 +03:00
2021-06-06 19:18:49 +03:00
2021-06-06 19:18:49 +03:00
2021-06-06 19:18:49 +03:00
2021-06-06 19:18:49 +03:00
2021-06-06 19:18:49 +03:00
2021-06-06 19:18:49 +03:00
2021-06-06 19:18:49 +03:00
2021-06-06 19:18:49 +03:00
2021-06-06 19:18:49 +03:00
2021-06-06 19:18:49 +03:00
2021-06-06 19:18:49 +03:00
2021-06-06 19:18:49 +03:00
2021-06-06 19:18:49 +03:00
2021-06-06 19:18:49 +03:00
2021-06-06 19:18:49 +03:00
2021-06-06 19:18:49 +03:00
2021-06-06 19:18:49 +03:00
2021-06-06 19:18:49 +03:00
2021-06-06 19:18:49 +03:00
2021-06-06 19:18:49 +03:00
2021-06-06 19:18:49 +03:00
2021-06-06 19:18:49 +03:00
2021-06-06 19:18:49 +03:00
2021-06-06 19:18:49 +03:00
2021-06-06 19:18:49 +03:00
2021-06-06 19:18:49 +03:00
2021-06-06 19:18:49 +03:00
2021-06-07 15:58:35 +03:00
2021-06-06 19:18:49 +03:00
2021-06-06 19:18:49 +03:00
2021-06-06 19:18:49 +03:00
2021-06-06 19:18:49 +03:00
2021-06-06 19:18:49 +03:00
2021-06-06 19:18:49 +03:00
2021-06-06 19:18:49 +03:00
2021-06-06 19:18:49 +03:00
2021-06-06 19:18:49 +03:00
2021-06-16 17:47:12 +03:00
2021-06-07 15:58:35 +03:00
2021-06-06 19:18:49 +03:00
2021-06-06 19:18:49 +03:00
2021-06-06 19:18:49 +03:00
2021-06-06 19:18:49 +03:00
2021-06-06 19:18:49 +03:00
2021-06-06 19:18:49 +03:00
2021-06-06 19:18:49 +03:00
2021-06-06 19:18:49 +03:00
2021-06-06 19:18:49 +03:00
2021-06-06 19:18:49 +03:00
2021-06-06 19:18:49 +03:00
2021-06-06 19:18:49 +03:00
2021-06-06 19:18:49 +03:00
2021-06-06 19:18:49 +03:00
2021-06-07 15:58:35 +03:00
2021-06-06 19:18:49 +03:00
2021-06-06 19:18:49 +03:00
2021-06-06 19:18:49 +03:00
2021-06-06 19:18:49 +03:00
2021-06-06 19:18:49 +03:00
2021-06-06 19:18:49 +03:00
2021-06-06 19:18:49 +03:00
2021-06-06 19:18:49 +03:00
2021-06-06 19:18:49 +03:00
2021-06-06 19:18:49 +03:00
2021-06-06 19:18:49 +03:00
2021-06-06 19:18:49 +03:00
2021-06-06 19:18:49 +03:00
2021-06-06 19:18:49 +03:00
2021-06-06 19:18:49 +03:00
2021-06-06 19:18:49 +03:00
2021-06-06 19:18:49 +03:00
2021-06-06 19:18:49 +03:00
2021-05-30 23:23:20 +03:00
2021-01-15 14:05:44 +01:00
2021-06-06 19:18:49 +03:00
2021-06-06 19:18:49 +03:00
2021-06-06 19:18:49 +03:00
2021-06-06 19:18:49 +03:00
2021-06-16 17:47:10 +03:00