rocksdb/port
Peter Dillinger e67ee46642 Suppress TSAN reports on AutoHyperClockTable::Lookup (#11806)
Summary:
This function uses racing reads for heuristic performance improvement. My change in https://github.com/facebook/rocksdb/issues/11792 only worked for clang, not gcc, and gcc does not accurately handle TSAN suppressions. I would have to mark much more code as suppressed than I want to.

So I've taken a different approach: TSAN build does not use the racing reads but substitutes random results, as an extra test that a "correct" value is not needed for correct overall behavior.

Pull Request resolved: https://github.com/facebook/rocksdb/pull/11806

Test Plan: manual TSAN builds & tests with cache_bench

Reviewed By: ajkr

Differential Revision: D49100115

Pulled By: pdillinger

fbshipit-source-id: d6d0dfb796d710b953212dd3fc171b6e88fadea1
2023-09-08 10:50:47 -07:00
..
win Add SystemClock::TimedWait() function (#11753) 2023-08-29 18:39:10 -07:00
README reverting disastrous MOE commit, returning to r21 2011-04-19 23:11:15 +00:00
jemalloc_helper.h Fix FreeBSD building (#10575) 2022-08-28 00:05:51 -07:00
lang.h Suppress TSAN reports on AutoHyperClockTable::Lookup (#11806) 2023-09-08 10:50:47 -07:00
likely.h clang format files under port/ (#10849) 2022-10-24 16:56:01 -07:00
malloc.h Charge block cache for cache internal usage (#5797) 2019-09-16 15:26:21 -07:00
mmap.cc Improve / refactor anonymous mmap capabilities (#10810) 2022-10-17 17:10:16 -07:00
mmap.h More minor HCC refactoring + typed mmap (#11670) 2023-08-07 12:20:23 -07:00
port.h Change RocksDB License 2017-07-15 16:11:23 -07:00
port_dirent.h clang format files under port/ (#10849) 2022-10-24 16:56:01 -07:00
port_example.h Replace most typedef with using= (#8751) 2021-09-07 11:31:59 -07:00
port_posix.cc clang format files under port/ (#10849) 2022-10-24 16:56:01 -07:00
port_posix.h Add SystemClock::TimedWait() function (#11753) 2023-08-29 18:39:10 -07:00
stack_trace.cc Add OpenBSD Support (#11255) 2023-06-27 11:58:29 -07:00
stack_trace.h Print stack traces on frozen tests in CI (#10828) 2022-10-18 00:35:35 -07:00
sys_time.h clang format files under port/ (#10849) 2022-10-24 16:56:01 -07:00
util_logger.h Use EnvLogger instead of PosixLogger (#10436) 2022-08-01 14:37:18 -07:00
xpress.h Change RocksDB License 2017-07-15 16:11:23 -07:00

README

This directory contains interfaces and implementations that isolate the
rest of the package from platform details.

Code in the rest of the package includes "port.h" from this directory.
"port.h" in turn includes a platform specific "port_<platform>.h" file
that provides the platform specific implementation.

See port_posix.h for an example of what must be provided in a platform
specific header file.