andrew
|
ed67486077
|
Reordering seems to improve codegen
|
2024-09-23 15:28:51 -07:00 |
|
andrew
|
b376f6fdd5
|
WIP
|
2024-09-23 15:11:48 -07:00 |
|
andrew
|
6de63dd3fe
|
Use preserve_none and put continuation array in CheckAll
|
2024-09-23 14:53:16 -07:00 |
|
andrew
|
3e5f13bf54
|
WIP - tests pass
|
2024-09-23 13:32:56 -07:00 |
|
andrew
|
e7e1d1f7f5
|
Add tail-call based interleaving approach
|
2024-09-23 12:52:30 -07:00 |
|
andrew
|
442658e983
|
Target ~1GB memory usage in server bench
|
2024-09-21 14:28:15 -07:00 |
|
andrew
|
26f602215e
|
Accentuate cache misses for point reads in server_bench
|
2024-09-14 22:42:40 -07:00 |
|
andrew
|
98236f81cb
|
Add missing __builtin_prefetch
|
2024-09-14 22:41:58 -07:00 |
|
andrew
|
3593b72880
|
Disallow checking SIM_CACHE_MISSES=1
|
2024-09-10 22:23:37 -07:00 |
|
andrew
|
814aac4ea7
|
Experiment with causing cache misses
|
2024-09-10 22:06:00 -07:00 |
|
andrew
|
0550fa0016
|
Add "iter" state
|
2024-09-10 17:22:10 -07:00 |
|
andrew
|
fe5cfb0336
|
Remove redundant cast
|
2024-09-10 17:06:45 -07:00 |
|
andrew
|
82203515a0
|
check_point_read_state_machine::down_left_spine
|
2024-09-10 17:05:09 -07:00 |
|
andrew
|
465372c734
|
Scaffolding to prepare for interleaving checks
|
2024-09-10 16:10:57 -07:00 |
|
andrew
|
867136ff1b
|
Return pointer to next function
|
2024-09-09 21:59:49 -07:00 |
|
andrew
|
4b8f7320d3
|
Call function pointer in job
|
2024-09-09 21:00:31 -07:00 |
|
andrew
|
6628092384
|
Tinker with interleaveBoundedCyclicList
|
2024-09-09 20:25:40 -07:00 |
|
andrew
|
a0a4f1afea
|
Only compile nanobench once
|
2024-09-09 20:10:55 -07:00 |
|
andrew
|
ca479c03ce
|
Induce a cache miss in interleaving test
|
2024-09-09 17:55:35 -07:00 |
|
andrew
|
0a2e133ab9
|
Add InterleavingTest to explore #5
|
2024-09-09 17:27:58 -07:00 |
|
andrew
|
b0b31419b0
|
Remove vestigial emscripten from cmake
|
2024-09-06 20:29:59 -07:00 |
|
andrew
|
5c0cc1edf5
|
Add longestCommonPrefix bench
|
2024-09-05 16:30:58 -07:00 |
|
andrew
|
de47aa53b0
|
Add to corpus
|
2024-09-05 16:24:41 -07:00 |
|
andrew
|
56893f9702
|
Update stale comments
|
2024-09-05 10:06:02 -07:00 |
|
andrew
|
e2234be10f
|
Update README.md
|
2024-09-04 13:08:20 -07:00 |
|
andrew
|
ce853680f2
|
Finish checkRangeRightSide conversion
|
2024-09-04 12:36:43 -07:00 |
|
andrew
|
5c39c1d64f
|
CheckRangeRightSide conversion WIP
|
2024-09-04 12:25:16 -07:00 |
|
andrew
|
55b73c8ddb
|
Convert CheckRangeRightSide WIP
|
2024-09-04 12:22:36 -07:00 |
|
andrew
|
b9503f8258
|
Converting CheckRangeRightSide WIP
|
2024-09-04 12:19:53 -07:00 |
|
andrew
|
c4c4531bd3
|
Simplify
|
2024-09-04 12:12:54 -07:00 |
|
andrew
|
2037d37c66
|
checkRangeLeftSide
|
2024-09-04 12:11:16 -07:00 |
|
andrew
|
6fe6a244af
|
Get CheckRangeLeftSide closer, WIP
|
2024-09-04 12:08:16 -07:00 |
|
andrew
|
8a4b370e2a
|
Make CheckRange{Left,Right}Side into normal functions, WIP
|
2024-09-04 12:04:58 -07:00 |
|
andrew
|
394f09f9fb
|
WIP adding metrics to skiplist
|
2024-08-30 16:06:43 -07:00 |
|
andrew
|
5e06a30357
|
Add optional microbenchmarks for rezero/scan avx512
|
2024-08-29 12:12:24 -07:00 |
|
andrew
|
cb6e4292f2
|
Add to corpus
|
2024-08-26 14:33:16 -07:00 |
|
andrew
|
154a48ded0
|
Bump version
|
2024-08-26 14:25:13 -07:00 |
|
andrew
|
c11b4714b5
|
Check more preconditions in Debug mode
|
2024-08-26 12:43:07 -07:00 |
|
andrew
|
bc13094406
|
Don't violate precondition in test_conflict_set.py
|
2024-08-26 11:13:16 -07:00 |
|
andrew
|
c9d742b696
|
Make explicit the precondition that versions must be <= latest version
|
2024-08-24 13:43:39 -07:00 |
|
andrew
|
795ae7cb01
|
Internal.h doesn't need to include <vector>
|
2024-08-24 10:38:07 -07:00 |
|
andrew
|
849e2d3e5c
|
Remove unused code
|
2024-08-22 22:31:36 -07:00 |
|
andrew
|
1560037680
|
Remove unused struct
|
2024-08-22 17:55:54 -07:00 |
|
andrew
|
764c31bbc8
|
Run skip list gc at 200% entry insertion rate
|
2024-08-22 17:26:08 -07:00 |
|
andrew
|
ee3361952a
|
Use better rng in skip list
low bits of lcg have low periods
|
2024-08-22 17:00:15 -07:00 |
|
andrew
|
8a04e57353
|
Add to corpus
|
2024-08-22 16:52:33 -07:00 |
|
andrew
|
7f86fdee66
|
Test 64 bit versions
Keep 32 bit versions the default though
|
2024-08-21 14:00:00 -07:00 |
|
andrew
|
442755d0a6
|
Update implementation notes
This doesn't really capture the complexity, but at least it's more
accurate
|
2024-08-21 14:00:00 -07:00 |
|
andrew
|
e15b3bb137
|
Bump version
|
2024-08-20 16:58:39 -07:00 |
|
andrew
|
311794c37e
|
Update GCOVR annotations now that jenkins agent has avx512
|
2024-08-20 16:34:27 -07:00 |
|
andrew
|
dfa178ba19
|
Add to corpus (from fuzzing on macos)
|
2024-08-20 13:32:04 -07:00 |
|
andrew
|
a16d18edfe
|
Update README.md
|
2024-08-20 12:03:27 -07:00 |
|
andrew
|
2b60287448
|
Partition valgrind into tests of size at most 100
|
2024-08-20 11:35:20 -07:00 |
|
andrew
|
0a9ac59676
|
Commit to non-simd Node3 implementations
|
2024-08-20 10:36:04 -07:00 |
|
andrew
|
e3a77ed773
|
Remove unnecessary casts
|
2024-08-20 10:30:27 -07:00 |
|
andrew
|
cdf9a8a7b0
|
Save 8 bytes in Node3
|
2024-08-20 10:30:07 -07:00 |
|
andrew
|
305dfdd52f
|
Change whitespace in node structs for consistency
|
2024-08-20 09:57:44 -07:00 |
|
andrew
|
7261c91492
|
Remove Node48::nextFree, and improve padding to save 8 bytes
|
2024-08-20 09:51:29 -07:00 |
|
andrew
|
f11720f5ae
|
Add to corpus
|
2024-08-19 21:52:47 -07:00 |
|
andrew
|
e2b7298af5
|
Instrument setOldestVersion for callgrind too
|
2024-08-19 21:32:04 -07:00 |
|
andrew
|
8e1e344f4b
|
Fix clang-18 warning about std::basic_string<uint8_t>
|
2024-08-17 16:40:32 -07:00 |
|
andrew
|
3634b6a59b
|
Simplify slightly in checkMaxBetweenExclusive
|
2024-08-17 14:34:13 -07:00 |
|
andrew
|
a3cc14c807
|
Fix double counting of remove node in showMemory mode
|
2024-08-17 13:43:47 -07:00 |
|
andrew
|
55b3275434
|
ifdef linux specific stuff
|
2024-08-16 16:23:46 -07:00 |
|
andrew
|
3a5b86ed9e
|
Ignore itlb in grafana instead
|
2024-08-16 16:02:01 -07:00 |
|
andrew
|
159f2eef74
|
Use group leader fd
Events in the same group should be associated with the same set of
instructions
|
2024-08-16 15:35:35 -07:00 |
|
andrew
|
2952abe811
|
Reorg headers and only print unexpected errno's
|
2024-08-16 14:25:41 -07:00 |
|
andrew
|
ce54746a4a
|
Add several new cache events to metrics
|
2024-08-16 12:48:22 -07:00 |
|
andrew
|
b15959d62c
|
Add more perf counters
|
2024-08-16 10:57:00 -07:00 |
|
andrew
|
b009de1c2b
|
Avoid branching on type twice in erase
|
2024-08-16 09:29:22 -07:00 |
|
andrew
|
55a230c75e
|
Remove dontInvalidate arg from erase
Use a new node member "endOfRange" instead
|
2024-08-16 09:08:56 -07:00 |
|
andrew
|
0711ec3831
|
Remove dead code
|
2024-08-15 20:19:00 -07:00 |
|
andrew
|
0280bd77e5
|
Skip "dontInvalidate" check in erase from gc
|
2024-08-15 19:07:53 -07:00 |
|
andrew
|
359f6f0042
|
Update README benchmarks
|
2024-08-15 18:53:42 -07:00 |
|
andrew
|
aa8504ddba
|
Add to corpus
|
2024-08-15 18:47:47 -07:00 |
|
andrew
|
fb7cf18f9b
|
Add some comments about safety of calling maxVersion
|
2024-08-15 17:35:55 -07:00 |
|
andrew
|
b808b97940
|
Remove a bunch of impl plumbing
By making it a precondition that nodes aren't the root for certain
functions
|
2024-08-15 17:15:37 -07:00 |
|
andrew
|
e480f66846
|
Have caller ensure root max version for insert
|
2024-08-15 17:05:10 -07:00 |
|
andrew
|
d5bc9221a0
|
Simplify addWriteRange slightly
|
2024-08-15 16:59:28 -07:00 |
|
andrew
|
9d23b81d6f
|
Bring in some of the changes from erase-between branch
|
2024-08-15 16:55:26 -07:00 |
|
andrew
|
0740dcad43
|
Strengthen checkMemoryBoundInvariants check for Node0
I think this is probably checked elsewhere, but let's check here too for
consistency
|
2024-08-14 14:28:28 -07:00 |
|
andrew
|
176df61321
|
Simplify handling of beginNode invalidation if begin is prefix of end
|
2024-08-14 14:26:13 -07:00 |
|
andrew
|
0a850f22e9
|
Update README benchmarks
|
2024-08-12 17:33:45 -07:00 |
|
andrew
|
479b39d055
|
Add to corpus
|
2024-08-12 17:28:19 -07:00 |
|
andrew
|
482408d725
|
Add GCOVR_EXCL_LINE to __builtin_unreachable
|
2024-08-12 17:07:55 -07:00 |
|
andrew
|
45995e3307
|
Update comments
|
2024-08-12 17:05:21 -07:00 |
|
andrew
|
359b0b29ff
|
Avoid function call if no partial key
|
2024-08-12 16:33:03 -07:00 |
|
andrew
|
54e47ebd40
|
Simplify insert loop
|
2024-08-12 16:25:12 -07:00 |
|
andrew
|
1c9dda68a6
|
Call consumePartialKey from getOrCreateChild
|
2024-08-12 16:24:05 -07:00 |
|
andrew
|
142455dd28
|
Move consumePartialKey, and allow empty partial key
|
2024-08-12 16:18:58 -07:00 |
|
andrew
|
567d385fbd
|
WIP create child in getOrCreateChild
|
2024-08-12 16:11:16 -07:00 |
|
andrew
|
8a44055533
|
Consume first byte in insert iteration
|
2024-08-12 15:39:09 -07:00 |
|
andrew
|
62516825d1
|
Try specifying filter multiple times
|
2024-08-12 15:26:36 -07:00 |
|
andrew
|
3d592bd6a9
|
Move longestCommonPrefix to its own file
|
2024-08-12 15:10:05 -07:00 |
|
andrew
|
f5f5fb620b
|
Run gc at 200%
150% pessimized the "real data" benchmark
|
2024-08-12 10:48:24 -07:00 |
|
andrew
|
e3d1b2e842
|
Add to corpus
After a bunch of fuzzing on "udon" (my new zen4 machine)
|
2024-08-09 19:48:22 -07:00 |
|
andrew
|
9f8800af16
|
Add more to corpus (from fuzzing on osx)
Maybe we should just accumulate the corpus instead of replacing it? That
should be easier on git right?
|
2024-08-09 18:06:54 -07:00 |
|
andrew
|
182c065c8e
|
Insert common prefix in addWriteRange
This allows us to use our optimized implementation for setting max
version along the search path instead of a one-off loop
|
2024-08-09 14:57:04 -07:00 |
|
andrew
|
2dba0d5be3
|
Have insert return a pointer to the in-tree pointer
|
2024-08-09 13:58:31 -07:00 |
|
andrew
|
a1dfdf355c
|
Use metrics to count change in entry count
This lets us run gc slower safely
|
2024-08-09 13:44:49 -07:00 |
|