A.J. Beamon
7324f28441
Add the ability for StringRef.eat to return whether a separator was found. Add a serialize function and equality operators to ClusterConnectionString. Remove unused variable.
2022-07-19 11:55:58 -07:00
Markus Pilman
03d913a1de
Flow compiling
2022-06-27 17:05:55 -06:00
Andrew Noyes
38db712e7a
Make ASAN arena aware ( #7336 )
2022-06-13 13:24:02 -07:00
Andrew Noyes
966402a7a2
Allocate at least sizeof(ArenaBlock) for an ArenaBlock ( #6770 )
...
* Allocate at least sizeof(ArenaBlock) for an ArenaBlock
* Fix message pack unit test
Previously we were using only the 4 least significan bits as the length
of a message pack string, but it should be 5 according to https://github.com/msgpack/msgpack/blob/master/spec.md#str-format-family
2022-04-05 18:14:10 -07:00
Andrew Noyes
3b7389fbc5
Use malloc for > 256 in FastAllocated, allocateFast, Arena
2022-03-22 11:01:33 -07:00
sfc-gh-tclinkenbeard
a71099471b
Update copyright header dates
2022-03-21 13:36:23 -07:00
sfc-gh-tclinkenbeard
44b0e05538
Merge remote-tracking branch 'origin/main' into arena-get-size-boolean-param
2022-03-16 22:53:30 -07:00
Steve Atherton
6cef85e268
Change assertions to not rely on the first argument being evaluated before the second.
2022-03-16 19:00:26 -07:00
sfc-gh-tclinkenbeard
0ae9ba5fd0
Add FastInaccurateEstimate boolean parameter for Arena::getSize
2022-03-16 16:54:27 -07:00
Steve Atherton
6f16702042
Merge branch 'main' of https://github.com/apple/foundationdb into redwood-bug-fixes-and-memory-leak
2022-02-26 18:00:18 -08:00
Andrew Noyes
7a9217a392
Add contrib/debug_determinism ( #6389 )
...
* Add contrib/debug_determinism
Add an instrumentation-based technique for debugging unseen mismatches. Also guard a few existing sources of nondeterminism that don't affect unseen with the DEBUG_DETERMINISM macro.
Also change the simulated run loop to not run as the only task inside the real run loop, since that was a source of nondeterminism.
Also fix nondeterminism from calling timer_int
* Add StorageMetadataType::currentTime
Basically a deterministic-in-simulation version of timer_int that we can
use instead of timer_int for StorageMetadataType::createdTime
2022-02-25 12:54:31 -08:00
Steve Atherton
735c5697d0
Added fast size estimates to Arena which are O(1) and are usually accurate. When inaccurate, a full size scan will update all estimates in the tree.
2022-02-18 03:25:28 -08:00
A.J. Beamon
39a7dc7a2d
Add two unit tests for the new hashing functionality
2022-01-28 15:56:58 -08:00
Andrew Noyes
eb15746e41
Dereference to get result before marking "no access"
2021-06-02 16:07:04 -07:00
Steve Atherton
a31e4f622f
Changed ArenaBlockRef to use 32 bit aligned4kBuffer size.
2021-05-16 03:58:05 -07:00
Steve Atherton
2298567c2b
Use of aligned_alloc() for 4k pages causes too much wasted virtual memory. Added new 4k-aligned fast allocator, and changed Arena::allocatedAlignedBuffer() to be 4k-specific, now called Arena::allocate4kAlignedBuffer().
2021-05-14 23:12:00 -07:00
Steve Atherton
16f9f6e75c
Added a test of Arena dependencies and destruction when using the new aligned buffer feature.
2021-05-06 02:05:09 -07:00
Steve Atherton
f8a8bf315b
Added Arena::allocateAlignedBuffer() to get an aligned memory block owned by an Arena, and ArenaPage uses this.
2021-05-05 15:00:12 -07:00
Andrew Noyes
a63dc3cfd6
Inform LSAN that we have unaligned pointers
2021-03-13 00:33:47 +00:00
FDB Formatster
df90cc89de
apply clang-format to *.c, *.cpp, *.h, *.hpp files
2021-03-10 10:18:07 -08:00
Andrew Noyes
f91079dbe7
Use camelCase
2020-10-22 21:51:00 +00:00
Andrew Noyes
dc5e09ba62
Fix normal build
2020-10-22 16:34:37 +00:00
Andrew Noyes
ab4eb627c2
Replace with environment variable
...
We need to change the behavior of the allocator before main is called,
so a knob won't work.
2020-10-22 16:31:48 +00:00
Andrew Noyes
79163947a6
Add FLOW_KNOBS->VALGRIND_PRECISE
2020-10-22 16:31:48 +00:00
sfc-gh-tclinkenbeard
0ac08f6a9b
Replace NULL with nullptr in flow
2020-09-20 11:31:49 -07:00
Jingyu Zhou
cb582e58c9
Avoid iterator+2 or -2 passes over the boundary
2020-07-30 13:42:36 -07:00
Jingyu Zhou
9a63882cd4
Fix unit test failure
2020-07-30 11:01:52 -07:00
Andrew Noyes
d6d374818c
Actually test copy
2020-07-22 19:57:47 +00:00
Andrew Noyes
4195d3ab3b
Fix compilation, test copies
2020-07-22 19:57:47 +00:00
Andrew Noyes
a25689e6e5
Add append tests, fix append
2020-07-22 19:57:47 +00:00
Andrew Noyes
82b70a0fa3
Fix test bug
2020-07-22 19:57:47 +00:00
Andrew Noyes
03a45e979d
Add unit tests for VectorRef and SmallVectorRef
2020-07-22 19:57:47 +00:00
Andrew Noyes
6caa3e470c
Fix valgrind build
2020-07-09 22:05:48 +00:00
Russell Sears
4ce51c4cce
Merge pull request #2768 from atn34/atn34/arena-cpp
...
Check for memory errors in arena-allocated memory
2020-07-06 09:43:28 -07:00
Andrew Noyes
10e094c6d7
Address review comments
2020-06-11 15:43:31 +00:00
Andrew Noyes
e772f3a3f1
Separate knob to control valgrind arena instrumentation
2020-05-07 22:07:33 +00:00
A.J. Beamon
96187618a0
Fix condition to check whether allocation tracing is enabled
2020-03-16 15:12:50 -07:00
A.J. Beamon
d8cfabe73b
Extend the allocation tracing disabling flag to cover more parts of trace logging as a precaution. Make it possible to disable via knob.
2020-03-16 13:59:31 -07:00
A.J. Beamon
2466749648
Don't disallow allocation tracking when a trace event is open because we now have state trace events. Instead, only block allocation tracking while we are in the middle of allocation tracking already to prevent recursion.
2020-03-12 11:17:49 -07:00
Andrew Noyes
facc15d5e4
Only poison second ArenaBlock if it's different
2020-03-04 08:34:29 -08:00
Andrew Noyes
41cf0745a4
Make FastAllocator responsible for marking its internal state addressable
2020-03-03 13:40:54 -08:00
Andrew Noyes
9a87a19fc8
Add reference to valgrind docs
2020-03-03 13:40:25 -08:00
Andrew Noyes
32cd90cf05
Use VALGRIND annotations instead of ASAN
...
Since we actually run valgrind
2020-03-02 14:14:00 -08:00
Andrew Noyes
b9dfb43667
WIP, poisoning memory
2020-03-02 14:14:00 -08:00
Andrew Noyes
87ec36dc4c
Poison arena-internal buffers
2020-03-02 14:14:00 -08:00
Andrew Noyes
f29d6c3f67
Move implementation of ArenaBlock members to Arena.cpp
2020-02-28 12:33:57 -08:00