proxygen
|
#include <folly/SharedMutex.h>
#include <stdlib.h>
#include <thread>
#include <vector>
#include <boost/optional.hpp>
#include <boost/thread/shared_mutex.hpp>
#include <folly/Benchmark.h>
#include <folly/MPMCQueue.h>
#include <folly/portability/GFlags.h>
#include <folly/portability/GTest.h>
#include <folly/synchronization/RWSpinLock.h>
#include <folly/test/DeterministicSchedule.h>
#include <folly/test/TestUtils.h>
Go to the source code of this file.
Classes | |
struct | TokenLocker |
struct | Locker |
struct | EnterLocker |
struct | PosixRWLock |
struct | PosixMutex |
Macros | |
#define | BENCH_BASE(...) FB_VA_GLUE(BENCHMARK_NAMED_PARAM, (__VA_ARGS__)) |
#define | BENCH_REL(...) FB_VA_GLUE(BENCHMARK_RELATIVE_NAMED_PARAM, (__VA_ARGS__)) |
Typedefs | |
typedef DeterministicSchedule | DSched |
typedef SharedMutexImpl< true, void, DeterministicAtomic, true > | DSharedMutexReadPriority |
typedef SharedMutexImpl< false, void, DeterministicAtomic, true > | DSharedMutexWritePriority |
Functions | |
template<typename Lock > | |
void | runBasicTest () |
TEST (SharedMutex, basic) | |
template<typename Lock > | |
void | runBasicHoldersTest () |
TEST (SharedMutex, basic_holders) | |
template<typename Lock > | |
void | runManyReadLocksTestWithTokens () |
TEST (SharedMutex, many_read_locks_with_tokens) | |
template<typename Lock > | |
void | runManyReadLocksTestWithoutTokens () |
TEST (SharedMutex, many_read_locks_without_tokens) | |
template<typename Lock > | |
void | runTimeoutInPastTest () |
TEST (SharedMutex, timeout_in_past) | |
template<class Func > | |
bool | funcHasDuration (milliseconds expectedDuration, Func func) |
template<typename Lock > | |
void | runFailingTryTimeoutTest () |
TEST (SharedMutex, failing_try_timeout) | |
template<typename Lock > | |
void | runBasicUpgradeTest () |
TEST (SharedMutex, basic_upgrade_tests) | |
TEST (SharedMutex, read_has_prio) | |
TEST (SharedMutex, write_has_prio) | |
template<template< typename > class Atom, typename Lock , typename Locker > | |
static void | runContendedReaders (size_t numOps, size_t numThreads, bool useSeparateLocks) |
static void | folly_rwspin_reads (uint32_t numOps, size_t numThreads, bool useSeparateLocks) |
static void | shmtx_wr_pri_reads (uint32_t numOps, size_t numThreads, bool useSeparateLocks) |
static void | shmtx_w_bare_reads (uint32_t numOps, size_t numThreads, bool useSeparateLocks) |
static void | shmtx_rd_pri_reads (uint32_t numOps, size_t numThreads, bool useSeparateLocks) |
static void | shmtx_r_bare_reads (uint32_t numOps, size_t numThreads, bool useSeparateLocks) |
static void | folly_ticket_reads (uint32_t numOps, size_t numThreads, bool useSeparateLocks) |
static void | boost_shared_reads (uint32_t numOps, size_t numThreads, bool useSeparateLocks) |
static void | pthrd_rwlock_reads (uint32_t numOps, size_t numThreads, bool useSeparateLocks) |
template<template< typename > class Atom, typename Lock , typename Locker > | |
static void | runMixed (size_t numOps, size_t numThreads, double writeFraction, bool useSeparateLocks) |
static void | folly_rwspin (size_t numOps, size_t numThreads, double writeFraction, bool useSeparateLocks) |
static void | shmtx_wr_pri (uint32_t numOps, size_t numThreads, double writeFraction, bool useSeparateLocks) |
static void | shmtx_w_bare (uint32_t numOps, size_t numThreads, double writeFraction, bool useSeparateLocks) |
static void | shmtx_rd_pri (uint32_t numOps, size_t numThreads, double writeFraction, bool useSeparateLocks) |
static void | shmtx_r_bare (uint32_t numOps, size_t numThreads, double writeFraction, bool useSeparateLocks) |
static void | folly_ticket (size_t numOps, size_t numThreads, double writeFraction, bool useSeparateLocks) |
static void | boost_shared (size_t numOps, size_t numThreads, double writeFraction, bool useSeparateLocks) |
static void | pthrd_rwlock (size_t numOps, size_t numThreads, double writeFraction, bool useSeparateLocks) |
static void | pthrd_mutex_ (size_t numOps, size_t numThreads, double writeFraction, bool useSeparateLocks) |
template<typename Lock , template< typename > class Atom> | |
static void | runAllAndValidate (size_t numOps, size_t numThreads) |
TEST (SharedMutex, deterministic_concurrent_readers_of_one_lock_read_prio) | |
TEST (SharedMutex, deterministic_concurrent_readers_of_one_lock_write_prio) | |
TEST (SharedMutex, concurrent_readers_of_one_lock_read_prio) | |
TEST (SharedMutex, concurrent_readers_of_one_lock_write_prio) | |
TEST (SharedMutex, deterministic_readers_of_concurrent_locks_read_prio) | |
TEST (SharedMutex, deterministic_readers_of_concurrent_locks_write_prio) | |
TEST (SharedMutex, readers_of_concurrent_locks_read_prio) | |
TEST (SharedMutex, readers_of_concurrent_locks_write_prio) | |
TEST (SharedMutex, deterministic_mixed_mostly_read_read_prio) | |
TEST (SharedMutex, deterministic_mixed_mostly_read_write_prio) | |
TEST (SharedMutex, mixed_mostly_read_read_prio) | |
TEST (SharedMutex, mixed_mostly_read_write_prio) | |
TEST (SharedMutex, deterministic_mixed_mostly_write_read_prio) | |
TEST (SharedMutex, deterministic_mixed_mostly_write_write_prio) | |
TEST (SharedMutex, deterministic_lost_wakeup_write_prio) | |
static std::size_t | adjustReps (std::size_t reps) |
TEST (SharedMutex, mixed_mostly_write_read_prio) | |
TEST (SharedMutex, mixed_mostly_write_write_prio) | |
TEST (SharedMutex, deterministic_all_ops_read_prio) | |
TEST (SharedMutex, deterministic_all_ops_write_prio) | |
TEST (SharedMutex, all_ops_read_prio) | |
TEST (SharedMutex, all_ops_write_prio) | |
FOLLY_ASSUME_FBVECTOR_COMPATIBLE (boost::optional< boost::optional< SharedMutexToken >>) template< typename Lock | |
template<typename > | |
class Atom static void | runRemoteUnlock (size_t numOps, double preWriteFraction, double preUpgradeFraction, size_t numSendingThreads, size_t numReceivingThreads) |
TEST (SharedMutex, deterministic_remote_write_prio) | |
TEST (SharedMutex, deterministic_remote_read_prio) | |
TEST (SharedMutex, remote_write_prio) | |
TEST (SharedMutex, remote_read_prio) | |
static void | burn (size_t n) |
template<typename Lock , template< typename > class Atom = atomic> | |
static void | runPingPong (size_t numRounds, size_t burnCount) |
static void | folly_rwspin_ping_pong (size_t n, size_t scale, size_t burnCount) |
static void | shmtx_w_bare_ping_pong (size_t n, size_t scale, size_t burnCount) |
static void | shmtx_r_bare_ping_pong (size_t n, size_t scale, size_t burnCount) |
static void | folly_ticket_ping_pong (size_t n, size_t scale, size_t burnCount) |
static void | boost_shared_ping_pong (size_t n, size_t scale, size_t burnCount) |
static void | pthrd_rwlock_ping_pong (size_t n, size_t scale, size_t burnCount) |
TEST (SharedMutex, deterministic_ping_pong_write_prio) | |
TEST (SharedMutex, deterministic_ping_pong_read_prio) | |
TEST (SharedMutex, ping_pong_write_prio) | |
TEST (SharedMutex, ping_pong_read_prio) | |
BENCHMARK (single_thread_lock_shared_unlock_shared, iters) | |
BENCHMARK (single_thread_lock_unlock, iters) | |
BENCHMARK_DRAW_LINE () | |
FB_VA_GLUE (BENCHMARK_NAMED_PARAM,(folly_rwspin_reads, 1thread, 1, false)) FB_VA_GLUE(BENCHMARK_RELATIVE_NAMED_PARAM | |
false | FB_VA_GLUE (BENCHMARK_RELATIVE_NAMED_PARAM,(shmtx_w_bare_reads, 1thread, 1, false)) FB_VA_GLUE(BENCHMARK_RELATIVE_NAMED_PARAM |
false false | FB_VA_GLUE (BENCHMARK_RELATIVE_NAMED_PARAM,(shmtx_r_bare_reads, 1thread, 1, false)) FB_VA_GLUE(BENCHMARK_RELATIVE_NAMED_PARAM |
false false false | FB_VA_GLUE (BENCHMARK_RELATIVE_NAMED_PARAM,(boost_shared_reads, 1thread, 1, false)) FB_VA_GLUE(BENCHMARK_RELATIVE_NAMED_PARAM |
FB_VA_GLUE (BENCHMARK_NAMED_PARAM,(folly_rwspin_reads, 2thread, 2, false)) FB_VA_GLUE(BENCHMARK_RELATIVE_NAMED_PARAM | |
false | FB_VA_GLUE (BENCHMARK_RELATIVE_NAMED_PARAM,(shmtx_w_bare_reads, 2thread, 2, false)) FB_VA_GLUE(BENCHMARK_RELATIVE_NAMED_PARAM |
false false | FB_VA_GLUE (BENCHMARK_RELATIVE_NAMED_PARAM,(shmtx_r_bare_reads, 2thread, 2, false)) FB_VA_GLUE(BENCHMARK_RELATIVE_NAMED_PARAM |
false false false | FB_VA_GLUE (BENCHMARK_RELATIVE_NAMED_PARAM,(boost_shared_reads, 2thread, 2, false)) FB_VA_GLUE(BENCHMARK_RELATIVE_NAMED_PARAM |
FB_VA_GLUE (BENCHMARK_NAMED_PARAM,(folly_rwspin_reads, 4thread, 4, false)) FB_VA_GLUE(BENCHMARK_RELATIVE_NAMED_PARAM | |
false | FB_VA_GLUE (BENCHMARK_RELATIVE_NAMED_PARAM,(shmtx_w_bare_reads, 4thread, 4, false)) FB_VA_GLUE(BENCHMARK_RELATIVE_NAMED_PARAM |
false false | FB_VA_GLUE (BENCHMARK_RELATIVE_NAMED_PARAM,(shmtx_r_bare_reads, 4thread, 4, false)) FB_VA_GLUE(BENCHMARK_RELATIVE_NAMED_PARAM |
false false false | FB_VA_GLUE (BENCHMARK_RELATIVE_NAMED_PARAM,(boost_shared_reads, 4thread, 4, false)) FB_VA_GLUE(BENCHMARK_RELATIVE_NAMED_PARAM |
FB_VA_GLUE (BENCHMARK_NAMED_PARAM,(folly_rwspin_reads, 8thread, 8, false)) FB_VA_GLUE(BENCHMARK_RELATIVE_NAMED_PARAM | |
false | FB_VA_GLUE (BENCHMARK_RELATIVE_NAMED_PARAM,(shmtx_w_bare_reads, 8thread, 8, false)) FB_VA_GLUE(BENCHMARK_RELATIVE_NAMED_PARAM |
false false | FB_VA_GLUE (BENCHMARK_RELATIVE_NAMED_PARAM,(shmtx_r_bare_reads, 8thread, 8, false)) FB_VA_GLUE(BENCHMARK_RELATIVE_NAMED_PARAM |
false false false | FB_VA_GLUE (BENCHMARK_RELATIVE_NAMED_PARAM,(boost_shared_reads, 8thread, 8, false)) FB_VA_GLUE(BENCHMARK_RELATIVE_NAMED_PARAM |
FB_VA_GLUE (BENCHMARK_NAMED_PARAM,(folly_rwspin_reads, 16thread, 16, false)) FB_VA_GLUE(BENCHMARK_RELATIVE_NAMED_PARAM | |
false | FB_VA_GLUE (BENCHMARK_RELATIVE_NAMED_PARAM,(shmtx_w_bare_reads, 16thread, 16, false)) FB_VA_GLUE(BENCHMARK_RELATIVE_NAMED_PARAM |
false false | FB_VA_GLUE (BENCHMARK_RELATIVE_NAMED_PARAM,(shmtx_r_bare_reads, 16thread, 16, false)) FB_VA_GLUE(BENCHMARK_RELATIVE_NAMED_PARAM |
false false false | FB_VA_GLUE (BENCHMARK_RELATIVE_NAMED_PARAM,(boost_shared_reads, 16thread, 16, false)) FB_VA_GLUE(BENCHMARK_RELATIVE_NAMED_PARAM |
FB_VA_GLUE (BENCHMARK_NAMED_PARAM,(folly_rwspin_reads, 32thread, 32, false)) FB_VA_GLUE(BENCHMARK_RELATIVE_NAMED_PARAM | |
false | FB_VA_GLUE (BENCHMARK_RELATIVE_NAMED_PARAM,(shmtx_w_bare_reads, 32thread, 32, false)) FB_VA_GLUE(BENCHMARK_RELATIVE_NAMED_PARAM |
false false | FB_VA_GLUE (BENCHMARK_RELATIVE_NAMED_PARAM,(shmtx_r_bare_reads, 32thread, 32, false)) FB_VA_GLUE(BENCHMARK_RELATIVE_NAMED_PARAM |
false false false | FB_VA_GLUE (BENCHMARK_RELATIVE_NAMED_PARAM,(boost_shared_reads, 32thread, 32, false)) FB_VA_GLUE(BENCHMARK_RELATIVE_NAMED_PARAM |
FB_VA_GLUE (BENCHMARK_NAMED_PARAM,(folly_rwspin_reads, 64thread, 64, false)) FB_VA_GLUE(BENCHMARK_RELATIVE_NAMED_PARAM | |
false | FB_VA_GLUE (BENCHMARK_RELATIVE_NAMED_PARAM,(shmtx_w_bare_reads, 64thread, 64, false)) FB_VA_GLUE(BENCHMARK_RELATIVE_NAMED_PARAM |
false false | FB_VA_GLUE (BENCHMARK_RELATIVE_NAMED_PARAM,(shmtx_r_bare_reads, 64thread, 64, false)) FB_VA_GLUE(BENCHMARK_RELATIVE_NAMED_PARAM |
false false false | FB_VA_GLUE (BENCHMARK_RELATIVE_NAMED_PARAM,(boost_shared_reads, 64thread, 64, false)) FB_VA_GLUE(BENCHMARK_RELATIVE_NAMED_PARAM |
FB_VA_GLUE (BENCHMARK_NAMED_PARAM,(folly_rwspin, 1thread_all_write, 1, 1.0, false)) FB_VA_GLUE(BENCHMARK_RELATIVE_NAMED_PARAM | |
false | FB_VA_GLUE (BENCHMARK_RELATIVE_NAMED_PARAM,(shmtx_rd_pri, 1thread_all_write, 1, 1.0, false)) FB_VA_GLUE(BENCHMARK_RELATIVE_NAMED_PARAM |
false false | FB_VA_GLUE (BENCHMARK_RELATIVE_NAMED_PARAM,(boost_shared, 1thread_all_write, 1, 1.0, false)) FB_VA_GLUE(BENCHMARK_RELATIVE_NAMED_PARAM |
false false false | FB_VA_GLUE (BENCHMARK_RELATIVE_NAMED_PARAM,(pthrd_mutex_, 1thread_all_write, 1, 1.0, false)) BENCHMARK_DRAW_LINE() |
FB_VA_GLUE (BENCHMARK_NAMED_PARAM,(folly_rwspin, 2thread_all_write, 2, 1.0, false)) FB_VA_GLUE(BENCHMARK_RELATIVE_NAMED_PARAM | |
false | FB_VA_GLUE (BENCHMARK_RELATIVE_NAMED_PARAM,(shmtx_rd_pri, 2thread_all_write, 2, 1.0, false)) FB_VA_GLUE(BENCHMARK_RELATIVE_NAMED_PARAM |
false false | FB_VA_GLUE (BENCHMARK_RELATIVE_NAMED_PARAM,(boost_shared, 2thread_all_write, 2, 1.0, false)) FB_VA_GLUE(BENCHMARK_RELATIVE_NAMED_PARAM |
false false false | FB_VA_GLUE (BENCHMARK_RELATIVE_NAMED_PARAM,(pthrd_mutex_, 2thread_all_write, 2, 1.0, false)) BENCHMARK_DRAW_LINE() |
FB_VA_GLUE (BENCHMARK_NAMED_PARAM,(folly_rwspin, 4thread_all_write, 4, 1.0, false)) FB_VA_GLUE(BENCHMARK_RELATIVE_NAMED_PARAM | |
false | FB_VA_GLUE (BENCHMARK_RELATIVE_NAMED_PARAM,(shmtx_rd_pri, 4thread_all_write, 4, 1.0, false)) FB_VA_GLUE(BENCHMARK_RELATIVE_NAMED_PARAM |
false false | FB_VA_GLUE (BENCHMARK_RELATIVE_NAMED_PARAM,(boost_shared, 4thread_all_write, 4, 1.0, false)) FB_VA_GLUE(BENCHMARK_RELATIVE_NAMED_PARAM |
false false false | FB_VA_GLUE (BENCHMARK_RELATIVE_NAMED_PARAM,(pthrd_mutex_, 4thread_all_write, 4, 1.0, false)) BENCHMARK_DRAW_LINE() |
FB_VA_GLUE (BENCHMARK_NAMED_PARAM,(folly_rwspin, 8thread_all_write, 8, 1.0, false)) FB_VA_GLUE(BENCHMARK_RELATIVE_NAMED_PARAM | |
false | FB_VA_GLUE (BENCHMARK_RELATIVE_NAMED_PARAM,(shmtx_rd_pri, 8thread_all_write, 8, 1.0, false)) FB_VA_GLUE(BENCHMARK_RELATIVE_NAMED_PARAM |
false false | FB_VA_GLUE (BENCHMARK_RELATIVE_NAMED_PARAM,(boost_shared, 8thread_all_write, 8, 1.0, false)) FB_VA_GLUE(BENCHMARK_RELATIVE_NAMED_PARAM |
false false false | FB_VA_GLUE (BENCHMARK_RELATIVE_NAMED_PARAM,(pthrd_mutex_, 8thread_all_write, 8, 1.0, false)) BENCHMARK_DRAW_LINE() |
FB_VA_GLUE (BENCHMARK_NAMED_PARAM,(folly_rwspin, 16thread_all_write, 16, 1.0, false)) FB_VA_GLUE(BENCHMARK_RELATIVE_NAMED_PARAM | |
false | FB_VA_GLUE (BENCHMARK_RELATIVE_NAMED_PARAM,(shmtx_rd_pri, 16thread_all_write, 16, 1.0, false)) FB_VA_GLUE(BENCHMARK_RELATIVE_NAMED_PARAM |
false false | FB_VA_GLUE (BENCHMARK_RELATIVE_NAMED_PARAM,(boost_shared, 16thread_all_write, 16, 1.0, false)) FB_VA_GLUE(BENCHMARK_RELATIVE_NAMED_PARAM |
false false false | FB_VA_GLUE (BENCHMARK_RELATIVE_NAMED_PARAM,(pthrd_mutex_, 16thread_all_write, 16, 1.0, false)) BENCHMARK_DRAW_LINE() |
FB_VA_GLUE (BENCHMARK_NAMED_PARAM,(folly_rwspin, 32thread_all_write, 32, 1.0, false)) FB_VA_GLUE(BENCHMARK_RELATIVE_NAMED_PARAM | |
false | FB_VA_GLUE (BENCHMARK_RELATIVE_NAMED_PARAM,(shmtx_rd_pri, 32thread_all_write, 32, 1.0, false)) FB_VA_GLUE(BENCHMARK_RELATIVE_NAMED_PARAM |
false false | FB_VA_GLUE (BENCHMARK_RELATIVE_NAMED_PARAM,(boost_shared, 32thread_all_write, 32, 1.0, false)) FB_VA_GLUE(BENCHMARK_RELATIVE_NAMED_PARAM |
false false false | FB_VA_GLUE (BENCHMARK_RELATIVE_NAMED_PARAM,(pthrd_mutex_, 32thread_all_write, 32, 1.0, false)) BENCHMARK_DRAW_LINE() |
FB_VA_GLUE (BENCHMARK_NAMED_PARAM,(folly_rwspin, 64thread_all_write, 64, 1.0, false)) FB_VA_GLUE(BENCHMARK_RELATIVE_NAMED_PARAM | |
false | FB_VA_GLUE (BENCHMARK_RELATIVE_NAMED_PARAM,(shmtx_rd_pri, 64thread_all_write, 64, 1.0, false)) FB_VA_GLUE(BENCHMARK_RELATIVE_NAMED_PARAM |
false false | FB_VA_GLUE (BENCHMARK_RELATIVE_NAMED_PARAM,(boost_shared, 64thread_all_write, 64, 1.0, false)) FB_VA_GLUE(BENCHMARK_RELATIVE_NAMED_PARAM |
false false false | FB_VA_GLUE (BENCHMARK_RELATIVE_NAMED_PARAM,(pthrd_mutex_, 64thread_all_write, 64, 1.0, false)) BENCHMARK_DRAW_LINE() |
FB_VA_GLUE (BENCHMARK_NAMED_PARAM,(folly_rwspin, 1thread_10pct_write, 1, 0.10, false)) FB_VA_GLUE(BENCHMARK_RELATIVE_NAMED_PARAM | |
false | FB_VA_GLUE (BENCHMARK_RELATIVE_NAMED_PARAM,(shmtx_rd_pri, 1thread_10pct_write, 1, 0.10, false)) FB_VA_GLUE(BENCHMARK_RELATIVE_NAMED_PARAM |
false false | FB_VA_GLUE (BENCHMARK_RELATIVE_NAMED_PARAM,(boost_shared, 1thread_10pct_write, 1, 0.10, false)) FB_VA_GLUE(BENCHMARK_RELATIVE_NAMED_PARAM |
FB_VA_GLUE (BENCHMARK_NAMED_PARAM,(folly_rwspin, 2thread_10pct_write, 2, 0.10, false)) FB_VA_GLUE(BENCHMARK_RELATIVE_NAMED_PARAM | |
false | FB_VA_GLUE (BENCHMARK_RELATIVE_NAMED_PARAM,(shmtx_rd_pri, 2thread_10pct_write, 2, 0.10, false)) FB_VA_GLUE(BENCHMARK_RELATIVE_NAMED_PARAM |
false false | FB_VA_GLUE (BENCHMARK_RELATIVE_NAMED_PARAM,(boost_shared, 2thread_10pct_write, 2, 0.10, false)) FB_VA_GLUE(BENCHMARK_RELATIVE_NAMED_PARAM |
FB_VA_GLUE (BENCHMARK_NAMED_PARAM,(folly_rwspin, 4thread_10pct_write, 4, 0.10, false)) FB_VA_GLUE(BENCHMARK_RELATIVE_NAMED_PARAM | |
false | FB_VA_GLUE (BENCHMARK_RELATIVE_NAMED_PARAM,(shmtx_rd_pri, 4thread_10pct_write, 4, 0.10, false)) FB_VA_GLUE(BENCHMARK_RELATIVE_NAMED_PARAM |
false false | FB_VA_GLUE (BENCHMARK_RELATIVE_NAMED_PARAM,(boost_shared, 4thread_10pct_write, 4, 0.10, false)) FB_VA_GLUE(BENCHMARK_RELATIVE_NAMED_PARAM |
FB_VA_GLUE (BENCHMARK_NAMED_PARAM,(folly_rwspin, 8thread_10pct_write, 8, 0.10, false)) FB_VA_GLUE(BENCHMARK_RELATIVE_NAMED_PARAM | |
false | FB_VA_GLUE (BENCHMARK_RELATIVE_NAMED_PARAM,(shmtx_rd_pri, 8thread_10pct_write, 8, 0.10, false)) FB_VA_GLUE(BENCHMARK_RELATIVE_NAMED_PARAM |
false false | FB_VA_GLUE (BENCHMARK_RELATIVE_NAMED_PARAM,(boost_shared, 8thread_10pct_write, 8, 0.10, false)) FB_VA_GLUE(BENCHMARK_RELATIVE_NAMED_PARAM |
FB_VA_GLUE (BENCHMARK_NAMED_PARAM,(folly_rwspin, 16thread_10pct_write, 16, 0.10, false)) FB_VA_GLUE(BENCHMARK_RELATIVE_NAMED_PARAM | |
false | FB_VA_GLUE (BENCHMARK_RELATIVE_NAMED_PARAM,(shmtx_rd_pri, 16thread_10pct_write, 16, 0.10, false)) FB_VA_GLUE(BENCHMARK_RELATIVE_NAMED_PARAM |
false false | FB_VA_GLUE (BENCHMARK_RELATIVE_NAMED_PARAM,(boost_shared, 16thread_10pct_write, 16, 0.10, false)) FB_VA_GLUE(BENCHMARK_RELATIVE_NAMED_PARAM |
FB_VA_GLUE (BENCHMARK_NAMED_PARAM,(folly_rwspin, 32thread_10pct_write, 32, 0.10, false)) FB_VA_GLUE(BENCHMARK_RELATIVE_NAMED_PARAM | |
false | FB_VA_GLUE (BENCHMARK_RELATIVE_NAMED_PARAM,(shmtx_rd_pri, 32thread_10pct_write, 32, 0.10, false)) FB_VA_GLUE(BENCHMARK_RELATIVE_NAMED_PARAM |
false false | FB_VA_GLUE (BENCHMARK_RELATIVE_NAMED_PARAM,(boost_shared, 32thread_10pct_write, 32, 0.10, false)) FB_VA_GLUE(BENCHMARK_RELATIVE_NAMED_PARAM |
FB_VA_GLUE (BENCHMARK_NAMED_PARAM,(folly_rwspin, 64thread_10pct_write, 64, 0.10, false)) FB_VA_GLUE(BENCHMARK_RELATIVE_NAMED_PARAM | |
false | FB_VA_GLUE (BENCHMARK_RELATIVE_NAMED_PARAM,(shmtx_rd_pri, 64thread_10pct_write, 64, 0.10, false)) FB_VA_GLUE(BENCHMARK_RELATIVE_NAMED_PARAM |
false false | FB_VA_GLUE (BENCHMARK_RELATIVE_NAMED_PARAM,(boost_shared, 64thread_10pct_write, 64, 0.10, false)) FB_VA_GLUE(BENCHMARK_RELATIVE_NAMED_PARAM |
FB_VA_GLUE (BENCHMARK_NAMED_PARAM,(folly_rwspin, 1thread_1pct_write, 1, 0.01, false)) FB_VA_GLUE(BENCHMARK_RELATIVE_NAMED_PARAM | |
false | FB_VA_GLUE (BENCHMARK_RELATIVE_NAMED_PARAM,(shmtx_w_bare, 1thread_1pct_write, 1, 0.01, false)) FB_VA_GLUE(BENCHMARK_RELATIVE_NAMED_PARAM |
false false | FB_VA_GLUE (BENCHMARK_RELATIVE_NAMED_PARAM,(shmtx_r_bare, 1thread_1pct_write, 1, 0.01, false)) FB_VA_GLUE(BENCHMARK_RELATIVE_NAMED_PARAM |
false false false | FB_VA_GLUE (BENCHMARK_RELATIVE_NAMED_PARAM,(boost_shared, 1thread_1pct_write, 1, 0.01, false)) FB_VA_GLUE(BENCHMARK_RELATIVE_NAMED_PARAM |
FB_VA_GLUE (BENCHMARK_NAMED_PARAM,(folly_rwspin, 2thread_1pct_write, 2, 0.01, false)) FB_VA_GLUE(BENCHMARK_RELATIVE_NAMED_PARAM | |
false | FB_VA_GLUE (BENCHMARK_RELATIVE_NAMED_PARAM,(shmtx_w_bare, 2thread_1pct_write, 2, 0.01, false)) FB_VA_GLUE(BENCHMARK_RELATIVE_NAMED_PARAM |
false false | FB_VA_GLUE (BENCHMARK_RELATIVE_NAMED_PARAM,(shmtx_r_bare, 2thread_1pct_write, 2, 0.01, false)) FB_VA_GLUE(BENCHMARK_RELATIVE_NAMED_PARAM |
false false false | FB_VA_GLUE (BENCHMARK_RELATIVE_NAMED_PARAM,(boost_shared, 2thread_1pct_write, 2, 0.01, false)) FB_VA_GLUE(BENCHMARK_RELATIVE_NAMED_PARAM |
FB_VA_GLUE (BENCHMARK_NAMED_PARAM,(folly_rwspin, 4thread_1pct_write, 4, 0.01, false)) FB_VA_GLUE(BENCHMARK_RELATIVE_NAMED_PARAM | |
false | FB_VA_GLUE (BENCHMARK_RELATIVE_NAMED_PARAM,(shmtx_w_bare, 4thread_1pct_write, 4, 0.01, false)) FB_VA_GLUE(BENCHMARK_RELATIVE_NAMED_PARAM |
false false | FB_VA_GLUE (BENCHMARK_RELATIVE_NAMED_PARAM,(shmtx_r_bare, 4thread_1pct_write, 4, 0.01, false)) FB_VA_GLUE(BENCHMARK_RELATIVE_NAMED_PARAM |
false false false | FB_VA_GLUE (BENCHMARK_RELATIVE_NAMED_PARAM,(boost_shared, 4thread_1pct_write, 4, 0.01, false)) FB_VA_GLUE(BENCHMARK_RELATIVE_NAMED_PARAM |
FB_VA_GLUE (BENCHMARK_NAMED_PARAM,(folly_rwspin, 8thread_1pct_write, 8, 0.01, false)) FB_VA_GLUE(BENCHMARK_RELATIVE_NAMED_PARAM | |
false | FB_VA_GLUE (BENCHMARK_RELATIVE_NAMED_PARAM,(shmtx_w_bare, 8thread_1pct_write, 8, 0.01, false)) FB_VA_GLUE(BENCHMARK_RELATIVE_NAMED_PARAM |
false false | FB_VA_GLUE (BENCHMARK_RELATIVE_NAMED_PARAM,(shmtx_r_bare, 8thread_1pct_write, 8, 0.01, false)) FB_VA_GLUE(BENCHMARK_RELATIVE_NAMED_PARAM |
false false false | FB_VA_GLUE (BENCHMARK_RELATIVE_NAMED_PARAM,(boost_shared, 8thread_1pct_write, 8, 0.01, false)) FB_VA_GLUE(BENCHMARK_RELATIVE_NAMED_PARAM |
FB_VA_GLUE (BENCHMARK_NAMED_PARAM,(folly_rwspin, 16thread_1pct_write, 16, 0.01, false)) FB_VA_GLUE(BENCHMARK_RELATIVE_NAMED_PARAM | |
false | FB_VA_GLUE (BENCHMARK_RELATIVE_NAMED_PARAM,(shmtx_w_bare, 16thread_1pct_write, 16, 0.01, false)) FB_VA_GLUE(BENCHMARK_RELATIVE_NAMED_PARAM |
false false | FB_VA_GLUE (BENCHMARK_RELATIVE_NAMED_PARAM,(shmtx_r_bare, 16thread_1pct_write, 16, 0.01, false)) FB_VA_GLUE(BENCHMARK_RELATIVE_NAMED_PARAM |
false false false | FB_VA_GLUE (BENCHMARK_RELATIVE_NAMED_PARAM,(boost_shared, 16thread_1pct_write, 16, 0.01, false)) FB_VA_GLUE(BENCHMARK_RELATIVE_NAMED_PARAM |
FB_VA_GLUE (BENCHMARK_NAMED_PARAM,(folly_rwspin, 32thread_1pct_write, 32, 0.01, false)) FB_VA_GLUE(BENCHMARK_RELATIVE_NAMED_PARAM | |
false | FB_VA_GLUE (BENCHMARK_RELATIVE_NAMED_PARAM,(shmtx_w_bare, 32thread_1pct_write, 32, 0.01, false)) FB_VA_GLUE(BENCHMARK_RELATIVE_NAMED_PARAM |
false false | FB_VA_GLUE (BENCHMARK_RELATIVE_NAMED_PARAM,(shmtx_r_bare, 32thread_1pct_write, 32, 0.01, false)) FB_VA_GLUE(BENCHMARK_RELATIVE_NAMED_PARAM |
false false false | FB_VA_GLUE (BENCHMARK_RELATIVE_NAMED_PARAM,(boost_shared, 32thread_1pct_write, 32, 0.01, false)) FB_VA_GLUE(BENCHMARK_RELATIVE_NAMED_PARAM |
FB_VA_GLUE (BENCHMARK_NAMED_PARAM,(folly_rwspin, 64thread_1pct_write, 64, 0.01, false)) FB_VA_GLUE(BENCHMARK_RELATIVE_NAMED_PARAM | |
false | FB_VA_GLUE (BENCHMARK_RELATIVE_NAMED_PARAM,(shmtx_w_bare, 64thread_1pct_write, 64, 0.01, false)) FB_VA_GLUE(BENCHMARK_RELATIVE_NAMED_PARAM |
false false | FB_VA_GLUE (BENCHMARK_RELATIVE_NAMED_PARAM,(shmtx_r_bare, 64thread_1pct_write, 64, 0.01, false)) FB_VA_GLUE(BENCHMARK_RELATIVE_NAMED_PARAM |
false false false | FB_VA_GLUE (BENCHMARK_RELATIVE_NAMED_PARAM,(boost_shared, 64thread_1pct_write, 64, 0.01, false)) FB_VA_GLUE(BENCHMARK_RELATIVE_NAMED_PARAM |
FB_VA_GLUE (BENCHMARK_NAMED_PARAM,(folly_rwspin, 2thr_2lock_50pct_write, 2, 0.50, true)) FB_VA_GLUE(BENCHMARK_RELATIVE_NAMED_PARAM | |
true | FB_VA_GLUE (BENCHMARK_RELATIVE_NAMED_PARAM,(shmtx_rd_pri, 2thr_2lock_50pct_write, 2, 0.50, true)) FB_VA_GLUE(BENCHMARK_NAMED_PARAM |
true true | FB_VA_GLUE (BENCHMARK_RELATIVE_NAMED_PARAM,(shmtx_wr_pri, 4thr_4lock_50pct_write, 4, 0.50, true)) FB_VA_GLUE(BENCHMARK_RELATIVE_NAMED_PARAM |
true true true | FB_VA_GLUE (BENCHMARK_NAMED_PARAM,(folly_rwspin, 8thr_8lock_50pct_write, 8, 0.50, true)) FB_VA_GLUE(BENCHMARK_RELATIVE_NAMED_PARAM |
true true true true | FB_VA_GLUE (BENCHMARK_RELATIVE_NAMED_PARAM,(shmtx_rd_pri, 8thr_8lock_50pct_write, 8, 0.50, true)) FB_VA_GLUE(BENCHMARK_NAMED_PARAM |
true true true true true | FB_VA_GLUE (BENCHMARK_RELATIVE_NAMED_PARAM,(shmtx_wr_pri, 16thr_16lock_50pct_write, 16, 0.50, true)) FB_VA_GLUE(BENCHMARK_RELATIVE_NAMED_PARAM |
true true true true true true | FB_VA_GLUE (BENCHMARK_NAMED_PARAM,(folly_rwspin, 32thr_32lock_50pct_write, 32, 0.50, true)) FB_VA_GLUE(BENCHMARK_RELATIVE_NAMED_PARAM |
true true true true true true true | FB_VA_GLUE (BENCHMARK_RELATIVE_NAMED_PARAM,(shmtx_rd_pri, 32thr_32lock_50pct_write, 32, 0.50, true)) FB_VA_GLUE(BENCHMARK_NAMED_PARAM |
true true true true true true true true | FB_VA_GLUE (BENCHMARK_RELATIVE_NAMED_PARAM,(shmtx_wr_pri, 64thr_64lock_50pct_write, 64, 0.50, true)) FB_VA_GLUE(BENCHMARK_RELATIVE_NAMED_PARAM |
FB_VA_GLUE (BENCHMARK_NAMED_PARAM,(folly_rwspin, 2thr_2lock_10pct_write, 2, 0.10, true)) FB_VA_GLUE(BENCHMARK_RELATIVE_NAMED_PARAM | |
true | FB_VA_GLUE (BENCHMARK_RELATIVE_NAMED_PARAM,(shmtx_rd_pri, 2thr_2lock_10pct_write, 2, 0.10, true)) FB_VA_GLUE(BENCHMARK_NAMED_PARAM |
true true | FB_VA_GLUE (BENCHMARK_RELATIVE_NAMED_PARAM,(shmtx_wr_pri, 4thr_4lock_10pct_write, 4, 0.10, true)) FB_VA_GLUE(BENCHMARK_RELATIVE_NAMED_PARAM |
true true true | FB_VA_GLUE (BENCHMARK_NAMED_PARAM,(folly_rwspin, 8thr_8lock_10pct_write, 8, 0.10, true)) FB_VA_GLUE(BENCHMARK_RELATIVE_NAMED_PARAM |
true true true true | FB_VA_GLUE (BENCHMARK_RELATIVE_NAMED_PARAM,(shmtx_rd_pri, 8thr_8lock_10pct_write, 8, 0.10, true)) FB_VA_GLUE(BENCHMARK_NAMED_PARAM |
true true true true true | FB_VA_GLUE (BENCHMARK_RELATIVE_NAMED_PARAM,(shmtx_wr_pri, 16thr_16lock_10pct_write, 16, 0.10, true)) FB_VA_GLUE(BENCHMARK_RELATIVE_NAMED_PARAM |
true true true true true true | FB_VA_GLUE (BENCHMARK_NAMED_PARAM,(folly_rwspin, 32thr_32lock_10pct_write, 32, 0.10, true)) FB_VA_GLUE(BENCHMARK_RELATIVE_NAMED_PARAM |
true true true true true true true | FB_VA_GLUE (BENCHMARK_RELATIVE_NAMED_PARAM,(shmtx_rd_pri, 32thr_32lock_10pct_write, 32, 0.10, true)) FB_VA_GLUE(BENCHMARK_NAMED_PARAM |
true true true true true true true true | FB_VA_GLUE (BENCHMARK_RELATIVE_NAMED_PARAM,(shmtx_wr_pri, 64thr_64lock_10pct_write, 64, 0.10, true)) FB_VA_GLUE(BENCHMARK_RELATIVE_NAMED_PARAM |
FB_VA_GLUE (BENCHMARK_NAMED_PARAM,(folly_rwspin, 2thr_2lock_1pct_write, 2, 0.01, true)) FB_VA_GLUE(BENCHMARK_RELATIVE_NAMED_PARAM | |
true | FB_VA_GLUE (BENCHMARK_RELATIVE_NAMED_PARAM,(shmtx_rd_pri, 2thr_2lock_1pct_write, 2, 0.01, true)) FB_VA_GLUE(BENCHMARK_NAMED_PARAM |
true true | FB_VA_GLUE (BENCHMARK_RELATIVE_NAMED_PARAM,(shmtx_wr_pri, 4thr_4lock_1pct_write, 4, 0.01, true)) FB_VA_GLUE(BENCHMARK_RELATIVE_NAMED_PARAM |
true true true | FB_VA_GLUE (BENCHMARK_NAMED_PARAM,(folly_rwspin, 8thr_8lock_1pct_write, 8, 0.01, true)) FB_VA_GLUE(BENCHMARK_RELATIVE_NAMED_PARAM |
true true true true | FB_VA_GLUE (BENCHMARK_RELATIVE_NAMED_PARAM,(shmtx_rd_pri, 8thr_8lock_1pct_write, 8, 0.01, true)) FB_VA_GLUE(BENCHMARK_NAMED_PARAM |
true true true true true | FB_VA_GLUE (BENCHMARK_RELATIVE_NAMED_PARAM,(shmtx_wr_pri, 16thr_16lock_1pct_write, 16, 0.01, true)) FB_VA_GLUE(BENCHMARK_RELATIVE_NAMED_PARAM |
true true true true true true | FB_VA_GLUE (BENCHMARK_NAMED_PARAM,(folly_rwspin, 32thr_32lock_1pct_write, 32, 0.01, true)) FB_VA_GLUE(BENCHMARK_RELATIVE_NAMED_PARAM |
true true true true true true true | FB_VA_GLUE (BENCHMARK_RELATIVE_NAMED_PARAM,(shmtx_rd_pri, 32thr_32lock_1pct_write, 32, 0.01, true)) FB_VA_GLUE(BENCHMARK_NAMED_PARAM |
true true true true true true true true | FB_VA_GLUE (BENCHMARK_RELATIVE_NAMED_PARAM,(shmtx_wr_pri, 64thr_64lock_1pct_write, 64, 0.01, true)) FB_VA_GLUE(BENCHMARK_RELATIVE_NAMED_PARAM |
FB_VA_GLUE (BENCHMARK_NAMED_PARAM,(folly_rwspin_ping_pong, burn0, 1, 0)) FB_VA_GLUE(BENCHMARK_RELATIVE_NAMED_PARAM | |
FB_VA_GLUE (BENCHMARK_RELATIVE_NAMED_PARAM,(shmtx_r_bare_ping_pong, burn0, 1, 0)) FB_VA_GLUE(BENCHMARK_RELATIVE_NAMED_PARAM | |
FB_VA_GLUE (BENCHMARK_RELATIVE_NAMED_PARAM,(boost_shared_ping_pong, burn0, 1, 0)) FB_VA_GLUE(BENCHMARK_RELATIVE_NAMED_PARAM | |
FB_VA_GLUE (BENCHMARK_NAMED_PARAM,(folly_rwspin_ping_pong, burn100k, 100, 100000)) FB_VA_GLUE(BENCHMARK_RELATIVE_NAMED_PARAM | |
FB_VA_GLUE (BENCHMARK_RELATIVE_NAMED_PARAM,(shmtx_r_bare_ping_pong, burn100k, 100, 100000)) FB_VA_GLUE(BENCHMARK_RELATIVE_NAMED_PARAM | |
FB_VA_GLUE (BENCHMARK_RELATIVE_NAMED_PARAM,(boost_shared_ping_pong, burn100k, 100, 100000)) FB_VA_GLUE(BENCHMARK_RELATIVE_NAMED_PARAM | |
FB_VA_GLUE (BENCHMARK_NAMED_PARAM,(folly_rwspin_ping_pong, burn300k, 100, 300000)) FB_VA_GLUE(BENCHMARK_RELATIVE_NAMED_PARAM | |
FB_VA_GLUE (BENCHMARK_RELATIVE_NAMED_PARAM,(shmtx_r_bare_ping_pong, burn300k, 100, 300000)) FB_VA_GLUE(BENCHMARK_RELATIVE_NAMED_PARAM | |
FB_VA_GLUE (BENCHMARK_RELATIVE_NAMED_PARAM,(boost_shared_ping_pong, burn300k, 100, 300000)) FB_VA_GLUE(BENCHMARK_RELATIVE_NAMED_PARAM | |
FB_VA_GLUE (BENCHMARK_NAMED_PARAM,(folly_rwspin_ping_pong, burn1M, 1000, 1000000)) FB_VA_GLUE(BENCHMARK_RELATIVE_NAMED_PARAM | |
FB_VA_GLUE (BENCHMARK_RELATIVE_NAMED_PARAM,(shmtx_r_bare_ping_pong, burn1M, 1000, 1000000)) FB_VA_GLUE(BENCHMARK_RELATIVE_NAMED_PARAM | |
FB_VA_GLUE (BENCHMARK_RELATIVE_NAMED_PARAM,(boost_shared_ping_pong, burn1M, 1000, 1000000)) FB_VA_GLUE(BENCHMARK_RELATIVE_NAMED_PARAM | |
int | main (int argc, char **argv) |
Variables | |
shmtx_wr_pri_reads | |
false | shmtx_rd_pri_reads |
false false | folly_ticket_reads |
false false false | pthrd_rwlock_reads |
shmtx_wr_pri | |
false | folly_ticket |
false false | pthrd_rwlock |
false | shmtx_rd_pri |
true | folly_rwspin |
shmtx_w_bare_ping_pong | |
burn0 | |
folly_ticket_ping_pong | |
pthrd_rwlock_ping_pong | |
burn100k | |
burn300k | |
burn1M | |
#define BENCH_BASE | ( | ... | ) | FB_VA_GLUE(BENCHMARK_NAMED_PARAM, (__VA_ARGS__)) |
Definition at line 1435 of file SharedMutexTest.cpp.
#define BENCH_REL | ( | ... | ) | FB_VA_GLUE(BENCHMARK_RELATIVE_NAMED_PARAM, (__VA_ARGS__)) |
Definition at line 1436 of file SharedMutexTest.cpp.
typedef DeterministicSchedule DSched |
Definition at line 38 of file SharedMutexTest.cpp.
typedef SharedMutexImpl<true, void, DeterministicAtomic, true> DSharedMutexReadPriority |
Definition at line 40 of file SharedMutexTest.cpp.
typedef SharedMutexImpl<false, void, DeterministicAtomic, true> DSharedMutexWritePriority |
Definition at line 42 of file SharedMutexTest.cpp.
|
static |
Definition at line 1090 of file SharedMutexTest.cpp.
References folly::kIsSanitizeThread.
Referenced by TEST().
BENCHMARK | ( | single_thread_lock_shared_unlock_shared | , |
iters | |||
) |
Definition at line 1416 of file SharedMutexTest.cpp.
References folly::doNotOptimizeAway(), folly::lock(), folly::SharedMutexImpl< ReaderPriority, Tag_, Atom, BlockImmediately, AnnotateForThreadSanitizer >::lock_shared(), and folly::SharedMutexImpl< ReaderPriority, Tag_, Atom, BlockImmediately, AnnotateForThreadSanitizer >::unlock_shared().
BENCHMARK | ( | single_thread_lock_unlock | , |
iters | |||
) |
Definition at line 1426 of file SharedMutexTest.cpp.
References folly::doNotOptimizeAway(), folly::SharedMutexImpl< ReaderPriority, Tag_, Atom, BlockImmediately, AnnotateForThreadSanitizer >::lock(), folly::lock(), and folly::SharedMutexImpl< ReaderPriority, Tag_, Atom, BlockImmediately, AnnotateForThreadSanitizer >::unlock().
BENCHMARK_DRAW_LINE | ( | ) |
|
static |
Definition at line 726 of file SharedMutexTest.cpp.
|
static |
Definition at line 1373 of file SharedMutexTest.cpp.
|
static |
Definition at line 606 of file SharedMutexTest.cpp.
|
static |
Definition at line 1293 of file SharedMutexTest.cpp.
References Atom, folly::doNotOptimizeAway(), and i.
Referenced by runPingPong().
FB_VA_GLUE | ( | BENCHMARK_NAMED_PARAM | , |
(folly_rwspin_reads, 1thread, 1, false) | |||
) |
false FB_VA_GLUE | ( | BENCHMARK_RELATIVE_NAMED_PARAM | , |
(shmtx_w_bare_reads, 1thread, 1, false) | |||
) |
false false FB_VA_GLUE | ( | BENCHMARK_RELATIVE_NAMED_PARAM | , |
(shmtx_r_bare_reads, 1thread, 1, false) | |||
) |
false false false FB_VA_GLUE | ( | BENCHMARK_RELATIVE_NAMED_PARAM | , |
(boost_shared_reads, 1thread, 1, false) | |||
) |
FB_VA_GLUE | ( | BENCHMARK_NAMED_PARAM | , |
(folly_rwspin_reads, 2thread, 2, false) | |||
) |
false FB_VA_GLUE | ( | BENCHMARK_RELATIVE_NAMED_PARAM | , |
(shmtx_w_bare_reads, 2thread, 2, false) | |||
) |
false false FB_VA_GLUE | ( | BENCHMARK_RELATIVE_NAMED_PARAM | , |
(shmtx_r_bare_reads, 2thread, 2, false) | |||
) |
false false false FB_VA_GLUE | ( | BENCHMARK_RELATIVE_NAMED_PARAM | , |
(boost_shared_reads, 2thread, 2, false) | |||
) |
FB_VA_GLUE | ( | BENCHMARK_NAMED_PARAM | , |
(folly_rwspin_reads, 4thread, 4, false) | |||
) |
false FB_VA_GLUE | ( | BENCHMARK_RELATIVE_NAMED_PARAM | , |
(shmtx_w_bare_reads, 4thread, 4, false) | |||
) |
false false FB_VA_GLUE | ( | BENCHMARK_RELATIVE_NAMED_PARAM | , |
(shmtx_r_bare_reads, 4thread, 4, false) | |||
) |
false false false FB_VA_GLUE | ( | BENCHMARK_RELATIVE_NAMED_PARAM | , |
(boost_shared_reads, 4thread, 4, false) | |||
) |
FB_VA_GLUE | ( | BENCHMARK_NAMED_PARAM | , |
(folly_rwspin_reads, 8thread, 8, false) | |||
) |
false FB_VA_GLUE | ( | BENCHMARK_RELATIVE_NAMED_PARAM | , |
(shmtx_w_bare_reads, 8thread, 8, false) | |||
) |
false false FB_VA_GLUE | ( | BENCHMARK_RELATIVE_NAMED_PARAM | , |
(shmtx_r_bare_reads, 8thread, 8, false) | |||
) |
false false false FB_VA_GLUE | ( | BENCHMARK_RELATIVE_NAMED_PARAM | , |
(boost_shared_reads, 8thread, 8, false) | |||
) |
FB_VA_GLUE | ( | BENCHMARK_NAMED_PARAM | , |
(folly_rwspin_reads, 16thread, 16, false) | |||
) |
false FB_VA_GLUE | ( | BENCHMARK_RELATIVE_NAMED_PARAM | , |
(shmtx_w_bare_reads, 16thread, 16, false) | |||
) |
false false FB_VA_GLUE | ( | BENCHMARK_RELATIVE_NAMED_PARAM | , |
(shmtx_r_bare_reads, 16thread, 16, false) | |||
) |
false false false FB_VA_GLUE | ( | BENCHMARK_RELATIVE_NAMED_PARAM | , |
(boost_shared_reads, 16thread, 16, false) | |||
) |
FB_VA_GLUE | ( | BENCHMARK_NAMED_PARAM | , |
(folly_rwspin_reads, 32thread, 32, false) | |||
) |
false FB_VA_GLUE | ( | BENCHMARK_RELATIVE_NAMED_PARAM | , |
(shmtx_w_bare_reads, 32thread, 32, false) | |||
) |
false false FB_VA_GLUE | ( | BENCHMARK_RELATIVE_NAMED_PARAM | , |
(shmtx_r_bare_reads, 32thread, 32, false) | |||
) |
false false false FB_VA_GLUE | ( | BENCHMARK_RELATIVE_NAMED_PARAM | , |
(boost_shared_reads, 32thread, 32, false) | |||
) |
FB_VA_GLUE | ( | BENCHMARK_NAMED_PARAM | , |
(folly_rwspin_reads, 64thread, 64, false) | |||
) |
false FB_VA_GLUE | ( | BENCHMARK_RELATIVE_NAMED_PARAM | , |
(shmtx_w_bare_reads, 64thread, 64, false) | |||
) |
false false FB_VA_GLUE | ( | BENCHMARK_RELATIVE_NAMED_PARAM | , |
(shmtx_r_bare_reads, 64thread, 64, false) | |||
) |
false false false FB_VA_GLUE | ( | BENCHMARK_RELATIVE_NAMED_PARAM | , |
(boost_shared_reads, 64thread, 64, false) | |||
) |
FB_VA_GLUE | ( | BENCHMARK_NAMED_PARAM | , |
(folly_rwspin, 1thread_all_write, 1, 1.0, false) | |||
) |
false FB_VA_GLUE | ( | BENCHMARK_RELATIVE_NAMED_PARAM | , |
(shmtx_rd_pri, 1thread_all_write, 1, 1.0, false) | |||
) |
false false FB_VA_GLUE | ( | BENCHMARK_RELATIVE_NAMED_PARAM | , |
(boost_shared, 1thread_all_write, 1, 1.0, false) | |||
) |
false false false FB_VA_GLUE | ( | BENCHMARK_RELATIVE_NAMED_PARAM | , |
(pthrd_mutex_, 1thread_all_write, 1, 1.0, false) | |||
) |
FB_VA_GLUE | ( | BENCHMARK_NAMED_PARAM | , |
(folly_rwspin, 2thread_all_write, 2, 1.0, false) | |||
) |
false FB_VA_GLUE | ( | BENCHMARK_RELATIVE_NAMED_PARAM | , |
(shmtx_rd_pri, 2thread_all_write, 2, 1.0, false) | |||
) |
false false FB_VA_GLUE | ( | BENCHMARK_RELATIVE_NAMED_PARAM | , |
(boost_shared, 2thread_all_write, 2, 1.0, false) | |||
) |
false false false FB_VA_GLUE | ( | BENCHMARK_RELATIVE_NAMED_PARAM | , |
(pthrd_mutex_, 2thread_all_write, 2, 1.0, false) | |||
) |
FB_VA_GLUE | ( | BENCHMARK_NAMED_PARAM | , |
(folly_rwspin, 4thread_all_write, 4, 1.0, false) | |||
) |
false FB_VA_GLUE | ( | BENCHMARK_RELATIVE_NAMED_PARAM | , |
(shmtx_rd_pri, 4thread_all_write, 4, 1.0, false) | |||
) |
false false FB_VA_GLUE | ( | BENCHMARK_RELATIVE_NAMED_PARAM | , |
(boost_shared, 4thread_all_write, 4, 1.0, false) | |||
) |
false false false FB_VA_GLUE | ( | BENCHMARK_RELATIVE_NAMED_PARAM | , |
(pthrd_mutex_, 4thread_all_write, 4, 1.0, false) | |||
) |
FB_VA_GLUE | ( | BENCHMARK_NAMED_PARAM | , |
(folly_rwspin, 8thread_all_write, 8, 1.0, false) | |||
) |
false FB_VA_GLUE | ( | BENCHMARK_RELATIVE_NAMED_PARAM | , |
(shmtx_rd_pri, 8thread_all_write, 8, 1.0, false) | |||
) |
false false FB_VA_GLUE | ( | BENCHMARK_RELATIVE_NAMED_PARAM | , |
(boost_shared, 8thread_all_write, 8, 1.0, false) | |||
) |
false false false FB_VA_GLUE | ( | BENCHMARK_RELATIVE_NAMED_PARAM | , |
(pthrd_mutex_, 8thread_all_write, 8, 1.0, false) | |||
) |
FB_VA_GLUE | ( | BENCHMARK_NAMED_PARAM | , |
(folly_rwspin, 16thread_all_write, 16, 1.0, false) | |||
) |
false FB_VA_GLUE | ( | BENCHMARK_RELATIVE_NAMED_PARAM | , |
(shmtx_rd_pri, 16thread_all_write, 16, 1.0, false) | |||
) |
false false FB_VA_GLUE | ( | BENCHMARK_RELATIVE_NAMED_PARAM | , |
(boost_shared, 16thread_all_write, 16, 1.0, false) | |||
) |
false false false FB_VA_GLUE | ( | BENCHMARK_RELATIVE_NAMED_PARAM | , |
(pthrd_mutex_, 16thread_all_write, 16, 1.0, false) | |||
) |
FB_VA_GLUE | ( | BENCHMARK_NAMED_PARAM | , |
(folly_rwspin, 32thread_all_write, 32, 1.0, false) | |||
) |
false FB_VA_GLUE | ( | BENCHMARK_RELATIVE_NAMED_PARAM | , |
(shmtx_rd_pri, 32thread_all_write, 32, 1.0, false) | |||
) |
false false FB_VA_GLUE | ( | BENCHMARK_RELATIVE_NAMED_PARAM | , |
(boost_shared, 32thread_all_write, 32, 1.0, false) | |||
) |
false false false FB_VA_GLUE | ( | BENCHMARK_RELATIVE_NAMED_PARAM | , |
(pthrd_mutex_, 32thread_all_write, 32, 1.0, false) | |||
) |
FB_VA_GLUE | ( | BENCHMARK_NAMED_PARAM | , |
(folly_rwspin, 64thread_all_write, 64, 1.0, false) | |||
) |
false FB_VA_GLUE | ( | BENCHMARK_RELATIVE_NAMED_PARAM | , |
(shmtx_rd_pri, 64thread_all_write, 64, 1.0, false) | |||
) |
false false FB_VA_GLUE | ( | BENCHMARK_RELATIVE_NAMED_PARAM | , |
(boost_shared, 64thread_all_write, 64, 1.0, false) | |||
) |
false false false FB_VA_GLUE | ( | BENCHMARK_RELATIVE_NAMED_PARAM | , |
(pthrd_mutex_, 64thread_all_write, 64, 1.0, false) | |||
) |
FB_VA_GLUE | ( | BENCHMARK_NAMED_PARAM | , |
(folly_rwspin, 1thread_10pct_write, 1, 0.10, false) | |||
) |
false FB_VA_GLUE | ( | BENCHMARK_RELATIVE_NAMED_PARAM | , |
(shmtx_rd_pri, 1thread_10pct_write, 1, 0.10, false) | |||
) |
false false FB_VA_GLUE | ( | BENCHMARK_RELATIVE_NAMED_PARAM | , |
(boost_shared, 1thread_10pct_write, 1, 0.10, false) | |||
) |
FB_VA_GLUE | ( | BENCHMARK_NAMED_PARAM | , |
(folly_rwspin, 2thread_10pct_write, 2, 0.10, false) | |||
) |
false FB_VA_GLUE | ( | BENCHMARK_RELATIVE_NAMED_PARAM | , |
(shmtx_rd_pri, 2thread_10pct_write, 2, 0.10, false) | |||
) |
false false FB_VA_GLUE | ( | BENCHMARK_RELATIVE_NAMED_PARAM | , |
(boost_shared, 2thread_10pct_write, 2, 0.10, false) | |||
) |
FB_VA_GLUE | ( | BENCHMARK_NAMED_PARAM | , |
(folly_rwspin, 4thread_10pct_write, 4, 0.10, false) | |||
) |
false FB_VA_GLUE | ( | BENCHMARK_RELATIVE_NAMED_PARAM | , |
(shmtx_rd_pri, 4thread_10pct_write, 4, 0.10, false) | |||
) |
false false FB_VA_GLUE | ( | BENCHMARK_RELATIVE_NAMED_PARAM | , |
(boost_shared, 4thread_10pct_write, 4, 0.10, false) | |||
) |
FB_VA_GLUE | ( | BENCHMARK_NAMED_PARAM | , |
(folly_rwspin, 8thread_10pct_write, 8, 0.10, false) | |||
) |
false FB_VA_GLUE | ( | BENCHMARK_RELATIVE_NAMED_PARAM | , |
(shmtx_rd_pri, 8thread_10pct_write, 8, 0.10, false) | |||
) |
false false FB_VA_GLUE | ( | BENCHMARK_RELATIVE_NAMED_PARAM | , |
(boost_shared, 8thread_10pct_write, 8, 0.10, false) | |||
) |
FB_VA_GLUE | ( | BENCHMARK_NAMED_PARAM | , |
(folly_rwspin, 16thread_10pct_write, 16, 0.10, false) | |||
) |
false FB_VA_GLUE | ( | BENCHMARK_RELATIVE_NAMED_PARAM | , |
(shmtx_rd_pri, 16thread_10pct_write, 16, 0.10, false) | |||
) |
false false FB_VA_GLUE | ( | BENCHMARK_RELATIVE_NAMED_PARAM | , |
(boost_shared, 16thread_10pct_write, 16, 0.10, false) | |||
) |
FB_VA_GLUE | ( | BENCHMARK_NAMED_PARAM | , |
(folly_rwspin, 32thread_10pct_write, 32, 0.10, false) | |||
) |
false FB_VA_GLUE | ( | BENCHMARK_RELATIVE_NAMED_PARAM | , |
(shmtx_rd_pri, 32thread_10pct_write, 32, 0.10, false) | |||
) |
false false FB_VA_GLUE | ( | BENCHMARK_RELATIVE_NAMED_PARAM | , |
(boost_shared, 32thread_10pct_write, 32, 0.10, false) | |||
) |
FB_VA_GLUE | ( | BENCHMARK_NAMED_PARAM | , |
(folly_rwspin, 64thread_10pct_write, 64, 0.10, false) | |||
) |
false FB_VA_GLUE | ( | BENCHMARK_RELATIVE_NAMED_PARAM | , |
(shmtx_rd_pri, 64thread_10pct_write, 64, 0.10, false) | |||
) |
false false FB_VA_GLUE | ( | BENCHMARK_RELATIVE_NAMED_PARAM | , |
(boost_shared, 64thread_10pct_write, 64, 0.10, false) | |||
) |
FB_VA_GLUE | ( | BENCHMARK_NAMED_PARAM | , |
(folly_rwspin, 1thread_1pct_write, 1, 0.01, false) | |||
) |
false FB_VA_GLUE | ( | BENCHMARK_RELATIVE_NAMED_PARAM | , |
(shmtx_w_bare, 1thread_1pct_write, 1, 0.01, false) | |||
) |
false false FB_VA_GLUE | ( | BENCHMARK_RELATIVE_NAMED_PARAM | , |
(shmtx_r_bare, 1thread_1pct_write, 1, 0.01, false) | |||
) |
false false false FB_VA_GLUE | ( | BENCHMARK_RELATIVE_NAMED_PARAM | , |
(boost_shared, 1thread_1pct_write, 1, 0.01, false) | |||
) |
FB_VA_GLUE | ( | BENCHMARK_NAMED_PARAM | , |
(folly_rwspin, 2thread_1pct_write, 2, 0.01, false) | |||
) |
false FB_VA_GLUE | ( | BENCHMARK_RELATIVE_NAMED_PARAM | , |
(shmtx_w_bare, 2thread_1pct_write, 2, 0.01, false) | |||
) |
false false FB_VA_GLUE | ( | BENCHMARK_RELATIVE_NAMED_PARAM | , |
(shmtx_r_bare, 2thread_1pct_write, 2, 0.01, false) | |||
) |
false false false FB_VA_GLUE | ( | BENCHMARK_RELATIVE_NAMED_PARAM | , |
(boost_shared, 2thread_1pct_write, 2, 0.01, false) | |||
) |
FB_VA_GLUE | ( | BENCHMARK_NAMED_PARAM | , |
(folly_rwspin, 4thread_1pct_write, 4, 0.01, false) | |||
) |
false FB_VA_GLUE | ( | BENCHMARK_RELATIVE_NAMED_PARAM | , |
(shmtx_w_bare, 4thread_1pct_write, 4, 0.01, false) | |||
) |
false false FB_VA_GLUE | ( | BENCHMARK_RELATIVE_NAMED_PARAM | , |
(shmtx_r_bare, 4thread_1pct_write, 4, 0.01, false) | |||
) |
false false false FB_VA_GLUE | ( | BENCHMARK_RELATIVE_NAMED_PARAM | , |
(boost_shared, 4thread_1pct_write, 4, 0.01, false) | |||
) |
FB_VA_GLUE | ( | BENCHMARK_NAMED_PARAM | , |
(folly_rwspin, 8thread_1pct_write, 8, 0.01, false) | |||
) |
false FB_VA_GLUE | ( | BENCHMARK_RELATIVE_NAMED_PARAM | , |
(shmtx_w_bare, 8thread_1pct_write, 8, 0.01, false) | |||
) |
false false FB_VA_GLUE | ( | BENCHMARK_RELATIVE_NAMED_PARAM | , |
(shmtx_r_bare, 8thread_1pct_write, 8, 0.01, false) | |||
) |
false false false FB_VA_GLUE | ( | BENCHMARK_RELATIVE_NAMED_PARAM | , |
(boost_shared, 8thread_1pct_write, 8, 0.01, false) | |||
) |
FB_VA_GLUE | ( | BENCHMARK_NAMED_PARAM | , |
(folly_rwspin, 16thread_1pct_write, 16, 0.01, false) | |||
) |
false FB_VA_GLUE | ( | BENCHMARK_RELATIVE_NAMED_PARAM | , |
(shmtx_w_bare, 16thread_1pct_write, 16, 0.01, false) | |||
) |
false false FB_VA_GLUE | ( | BENCHMARK_RELATIVE_NAMED_PARAM | , |
(shmtx_r_bare, 16thread_1pct_write, 16, 0.01, false) | |||
) |
false false false FB_VA_GLUE | ( | BENCHMARK_RELATIVE_NAMED_PARAM | , |
(boost_shared, 16thread_1pct_write, 16, 0.01, false) | |||
) |
FB_VA_GLUE | ( | BENCHMARK_NAMED_PARAM | , |
(folly_rwspin, 32thread_1pct_write, 32, 0.01, false) | |||
) |
false FB_VA_GLUE | ( | BENCHMARK_RELATIVE_NAMED_PARAM | , |
(shmtx_w_bare, 32thread_1pct_write, 32, 0.01, false) | |||
) |
false false FB_VA_GLUE | ( | BENCHMARK_RELATIVE_NAMED_PARAM | , |
(shmtx_r_bare, 32thread_1pct_write, 32, 0.01, false) | |||
) |
false false false FB_VA_GLUE | ( | BENCHMARK_RELATIVE_NAMED_PARAM | , |
(boost_shared, 32thread_1pct_write, 32, 0.01, false) | |||
) |
FB_VA_GLUE | ( | BENCHMARK_NAMED_PARAM | , |
(folly_rwspin, 64thread_1pct_write, 64, 0.01, false) | |||
) |
false FB_VA_GLUE | ( | BENCHMARK_RELATIVE_NAMED_PARAM | , |
(shmtx_w_bare, 64thread_1pct_write, 64, 0.01, false) | |||
) |
false false FB_VA_GLUE | ( | BENCHMARK_RELATIVE_NAMED_PARAM | , |
(shmtx_r_bare, 64thread_1pct_write, 64, 0.01, false) | |||
) |
false false false FB_VA_GLUE | ( | BENCHMARK_RELATIVE_NAMED_PARAM | , |
(boost_shared, 64thread_1pct_write, 64, 0.01, false) | |||
) |
FB_VA_GLUE | ( | BENCHMARK_NAMED_PARAM | , |
(folly_rwspin, 2thr_2lock_50pct_write, 2, 0.50, true) | |||
) |
true FB_VA_GLUE | ( | BENCHMARK_RELATIVE_NAMED_PARAM | , |
(shmtx_rd_pri, 2thr_2lock_50pct_write, 2, 0.50, true) | |||
) |
true true FB_VA_GLUE | ( | BENCHMARK_RELATIVE_NAMED_PARAM | , |
(shmtx_wr_pri, 4thr_4lock_50pct_write, 4, 0.50, true) | |||
) |
true true true FB_VA_GLUE | ( | BENCHMARK_NAMED_PARAM | , |
(folly_rwspin, 8thr_8lock_50pct_write, 8, 0.50, true) | |||
) |
true true true true FB_VA_GLUE | ( | BENCHMARK_RELATIVE_NAMED_PARAM | , |
(shmtx_rd_pri, 8thr_8lock_50pct_write, 8, 0.50, true) | |||
) |
true true true true true FB_VA_GLUE | ( | BENCHMARK_RELATIVE_NAMED_PARAM | , |
(shmtx_wr_pri, 16thr_16lock_50pct_write, 16, 0.50, true) | |||
) |
true true true true true true FB_VA_GLUE | ( | BENCHMARK_NAMED_PARAM | , |
(folly_rwspin, 32thr_32lock_50pct_write, 32, 0.50, true) | |||
) |
true true true true true true true FB_VA_GLUE | ( | BENCHMARK_RELATIVE_NAMED_PARAM | , |
(shmtx_rd_pri, 32thr_32lock_50pct_write, 32, 0.50, true) | |||
) |
true true true true true true true true FB_VA_GLUE | ( | BENCHMARK_RELATIVE_NAMED_PARAM | , |
(shmtx_wr_pri, 64thr_64lock_50pct_write, 64, 0.50, true) | |||
) |
FB_VA_GLUE | ( | BENCHMARK_NAMED_PARAM | , |
(folly_rwspin, 2thr_2lock_10pct_write, 2, 0.10, true) | |||
) |
true FB_VA_GLUE | ( | BENCHMARK_RELATIVE_NAMED_PARAM | , |
(shmtx_rd_pri, 2thr_2lock_10pct_write, 2, 0.10, true) | |||
) |
true true FB_VA_GLUE | ( | BENCHMARK_RELATIVE_NAMED_PARAM | , |
(shmtx_wr_pri, 4thr_4lock_10pct_write, 4, 0.10, true) | |||
) |
true true true FB_VA_GLUE | ( | BENCHMARK_NAMED_PARAM | , |
(folly_rwspin, 8thr_8lock_10pct_write, 8, 0.10, true) | |||
) |
true true true true FB_VA_GLUE | ( | BENCHMARK_RELATIVE_NAMED_PARAM | , |
(shmtx_rd_pri, 8thr_8lock_10pct_write, 8, 0.10, true) | |||
) |
true true true true true FB_VA_GLUE | ( | BENCHMARK_RELATIVE_NAMED_PARAM | , |
(shmtx_wr_pri, 16thr_16lock_10pct_write, 16, 0.10, true) | |||
) |
true true true true true true FB_VA_GLUE | ( | BENCHMARK_NAMED_PARAM | , |
(folly_rwspin, 32thr_32lock_10pct_write, 32, 0.10, true) | |||
) |
true true true true true true true FB_VA_GLUE | ( | BENCHMARK_RELATIVE_NAMED_PARAM | , |
(shmtx_rd_pri, 32thr_32lock_10pct_write, 32, 0.10, true) | |||
) |
true true true true true true true true FB_VA_GLUE | ( | BENCHMARK_RELATIVE_NAMED_PARAM | , |
(shmtx_wr_pri, 64thr_64lock_10pct_write, 64, 0.10, true) | |||
) |
FB_VA_GLUE | ( | BENCHMARK_NAMED_PARAM | , |
(folly_rwspin, 2thr_2lock_1pct_write, 2, 0.01, true) | |||
) |
true FB_VA_GLUE | ( | BENCHMARK_RELATIVE_NAMED_PARAM | , |
(shmtx_rd_pri, 2thr_2lock_1pct_write, 2, 0.01, true) | |||
) |
true true FB_VA_GLUE | ( | BENCHMARK_RELATIVE_NAMED_PARAM | , |
(shmtx_wr_pri, 4thr_4lock_1pct_write, 4, 0.01, true) | |||
) |
true true true FB_VA_GLUE | ( | BENCHMARK_NAMED_PARAM | , |
(folly_rwspin, 8thr_8lock_1pct_write, 8, 0.01, true) | |||
) |
true true true true FB_VA_GLUE | ( | BENCHMARK_RELATIVE_NAMED_PARAM | , |
(shmtx_rd_pri, 8thr_8lock_1pct_write, 8, 0.01, true) | |||
) |
true true true true true FB_VA_GLUE | ( | BENCHMARK_RELATIVE_NAMED_PARAM | , |
(shmtx_wr_pri, 16thr_16lock_1pct_write, 16, 0.01, true) | |||
) |
true true true true true true FB_VA_GLUE | ( | BENCHMARK_NAMED_PARAM | , |
(folly_rwspin, 32thr_32lock_1pct_write, 32, 0.01, true) | |||
) |
true true true true true true true FB_VA_GLUE | ( | BENCHMARK_RELATIVE_NAMED_PARAM | , |
(shmtx_rd_pri, 32thr_32lock_1pct_write, 32, 0.01, true) | |||
) |
true true true true true true true true FB_VA_GLUE | ( | BENCHMARK_RELATIVE_NAMED_PARAM | , |
(shmtx_wr_pri, 64thr_64lock_1pct_write, 64, 0.01, true) | |||
) |
FB_VA_GLUE | ( | BENCHMARK_NAMED_PARAM | , |
(folly_rwspin_ping_pong, burn0, 1, 0) | |||
) |
FB_VA_GLUE | ( | BENCHMARK_RELATIVE_NAMED_PARAM | , |
(shmtx_r_bare_ping_pong, burn0, 1, 0) | |||
) |
FB_VA_GLUE | ( | BENCHMARK_RELATIVE_NAMED_PARAM | , |
(boost_shared_ping_pong, burn0, 1, 0) | |||
) |
FB_VA_GLUE | ( | BENCHMARK_NAMED_PARAM | , |
(folly_rwspin_ping_pong, burn100k, 100, 100000) | |||
) |
FB_VA_GLUE | ( | BENCHMARK_RELATIVE_NAMED_PARAM | , |
(shmtx_r_bare_ping_pong, burn100k, 100, 100000) | |||
) |
FB_VA_GLUE | ( | BENCHMARK_RELATIVE_NAMED_PARAM | , |
(boost_shared_ping_pong, burn100k, 100, 100000) | |||
) |
FB_VA_GLUE | ( | BENCHMARK_NAMED_PARAM | , |
(folly_rwspin_ping_pong, burn300k, 100, 300000) | |||
) |
FB_VA_GLUE | ( | BENCHMARK_RELATIVE_NAMED_PARAM | , |
(shmtx_r_bare_ping_pong, burn300k, 100, 300000) | |||
) |
FB_VA_GLUE | ( | BENCHMARK_RELATIVE_NAMED_PARAM | , |
(boost_shared_ping_pong, burn300k, 100, 300000) | |||
) |
FB_VA_GLUE | ( | BENCHMARK_NAMED_PARAM | , |
(folly_rwspin_ping_pong, burn1M, 1000, 1000000) | |||
) |
FB_VA_GLUE | ( | BENCHMARK_RELATIVE_NAMED_PARAM | , |
(shmtx_r_bare_ping_pong, burn1M, 1000, 1000000) | |||
) |
FB_VA_GLUE | ( | BENCHMARK_RELATIVE_NAMED_PARAM | , |
(boost_shared_ping_pong, burn1M, 1000, 1000000) | |||
) |
FOLLY_ASSUME_FBVECTOR_COMPATIBLE | ( | boost::optional< boost::optional< SharedMutexToken >> | ) |
Referenced by TEST().
|
static |
Definition at line 672 of file SharedMutexTest.cpp.
|
static |
Definition at line 1357 of file SharedMutexTest.cpp.
|
static |
Definition at line 570 of file SharedMutexTest.cpp.
|
static |
Definition at line 717 of file SharedMutexTest.cpp.
|
static |
Definition at line 1369 of file SharedMutexTest.cpp.
|
static |
Definition at line 600 of file SharedMutexTest.cpp.
bool funcHasDuration | ( | milliseconds | expectedDuration, |
Func | func | ||
) |
int main | ( | int | argc, |
char ** | argv | ||
) |
Definition at line 2125 of file SharedMutexTest.cpp.
References testing::InitGoogleTest(), RUN_ALL_TESTS(), and folly::runBenchmarksOnFlag().
|
static |
Definition at line 744 of file SharedMutexTest.cpp.
References Atom.
|
static |
Definition at line 735 of file SharedMutexTest.cpp.
|
static |
Definition at line 1377 of file SharedMutexTest.cpp.
|
static |
Definition at line 612 of file SharedMutexTest.cpp.
References Atom.
|
static |
Definition at line 754 of file SharedMutexTest.cpp.
References BENCHMARK_SUSPEND, EXPECT_EQ, EXPECT_FALSE, EXPECT_TRUE, i, folly::test::DeterministicSchedule::join(), now(), folly::pushmi::detail::t, folly::test::DeterministicSchedule::thread(), threads, uint64_t, and folly::fibers::yield().
void runBasicHoldersTest | ( | ) |
Definition at line 86 of file SharedMutexTest.cpp.
References EXPECT_FALSE, EXPECT_TRUE, folly::lock(), and folly::gen::move.
void runBasicTest | ( | ) |
Definition at line 45 of file SharedMutexTest.cpp.
References EXPECT_FALSE, EXPECT_TRUE, and folly::lock().
void runBasicUpgradeTest | ( | ) |
Definition at line 319 of file SharedMutexTest.cpp.
References EXPECT_FALSE, EXPECT_TRUE, and folly::lock().
|
static |
Definition at line 530 of file SharedMutexTest.cpp.
References BENCHMARK_SUSPEND, folly::copy(), folly::doNotOptimizeAway(), folly::test::DeterministicSchedule::join(), folly::lock(), Locker::lock_shared(), folly::pushmi::detail::t, folly::test::DeterministicSchedule::thread(), threads, Locker::unlock_shared(), and folly::fibers::yield().
void runFailingTryTimeoutTest | ( | ) |
Definition at line 247 of file SharedMutexTest.cpp.
References EXPECT_FALSE, EXPECT_TRUE, funcHasDuration(), folly::lock(), and now().
void runManyReadLocksTestWithoutTokens | ( | ) |
Definition at line 179 of file SharedMutexTest.cpp.
References EXPECT_TRUE, i, and folly::lock().
void runManyReadLocksTestWithTokens | ( | ) |
Definition at line 154 of file SharedMutexTest.cpp.
References EXPECT_TRUE, i, folly::lock(), and tokens.
|
static |
Definition at line 618 of file SharedMutexTest.cpp.
References BENCHMARK_SUSPEND, folly::doNotOptimizeAway(), folly::test::DeterministicSchedule::join(), Locker::lock(), folly::lock(), Locker::lock_shared(), folly::pushmi::detail::t, folly::test::DeterministicSchedule::thread(), threads, Locker::unlock(), Locker::unlock_shared(), and folly::fibers::yield().
|
static |
Definition at line 1302 of file SharedMutexTest.cpp.
References BENCHMARK_SUSPEND, burn(), folly::gen::first, i, folly::test::DeterministicSchedule::join(), folly::ssl::detail::locks(), folly::test::DeterministicSchedule::thread(), threads, and folly::fibers::yield().
class Atom static void runRemoteUnlock | ( | size_t | numOps, |
double | preWriteFraction, | ||
double | preUpgradeFraction, | ||
size_t | numSendingThreads, | ||
size_t | numReceivingThreads | ||
) |
Definition at line 1149 of file SharedMutexTest.cpp.
References Atom, BENCHMARK_SUSPEND, folly::test::DeterministicSchedule::join(), folly::gen::move, folly::none, folly::pushmi::detail::t, folly::test::DeterministicSchedule::thread(), threads, and folly::fibers::yield().
void runTimeoutInPastTest | ( | ) |
Definition at line 202 of file SharedMutexTest.cpp.
References EXPECT_TRUE, folly::lock(), and now().
|
static |
Definition at line 708 of file SharedMutexTest.cpp.
|
static |
Definition at line 1365 of file SharedMutexTest.cpp.
|
static |
Definition at line 594 of file SharedMutexTest.cpp.
|
static |
Definition at line 699 of file SharedMutexTest.cpp.
|
static |
Definition at line 588 of file SharedMutexTest.cpp.
|
static |
Definition at line 690 of file SharedMutexTest.cpp.
|
static |
Definition at line 1361 of file SharedMutexTest.cpp.
|
static |
Definition at line 582 of file SharedMutexTest.cpp.
|
static |
Definition at line 681 of file SharedMutexTest.cpp.
|
static |
Definition at line 576 of file SharedMutexTest.cpp.
TEST | ( | SharedMutex | , |
basic | |||
) |
Definition at line 79 of file SharedMutexTest.cpp.
TEST | ( | SharedMutex | , |
basic_holders | |||
) |
Definition at line 147 of file SharedMutexTest.cpp.
TEST | ( | SharedMutex | , |
many_read_locks_with_tokens | |||
) |
Definition at line 169 of file SharedMutexTest.cpp.
References folly::kIsSanitizeThread, and SKIP_IF.
TEST | ( | SharedMutex | , |
many_read_locks_without_tokens | |||
) |
Definition at line 192 of file SharedMutexTest.cpp.
References folly::kIsSanitizeThread, and SKIP_IF.
TEST | ( | SharedMutex | , |
timeout_in_past | |||
) |
Definition at line 225 of file SharedMutexTest.cpp.
TEST | ( | SharedMutex | , |
failing_try_timeout | |||
) |
Definition at line 312 of file SharedMutexTest.cpp.
TEST | ( | SharedMutex | , |
basic_upgrade_tests | |||
) |
Definition at line 349 of file SharedMutexTest.cpp.
TEST | ( | SharedMutex | , |
read_has_prio | |||
) |
Definition at line 355 of file SharedMutexTest.cpp.
References EXPECT_FALSE, EXPECT_TRUE, folly::SharedMutexImpl< ReaderPriority, Tag_, Atom, BlockImmediately, AnnotateForThreadSanitizer >::lock(), folly::lock(), folly::SharedMutexImpl< ReaderPriority, Tag_, Atom, BlockImmediately, AnnotateForThreadSanitizer >::lock_shared(), folly::SharedMutexImpl< ReaderPriority, Tag_, Atom, BlockImmediately, AnnotateForThreadSanitizer >::try_lock_shared(), folly::SharedMutexImpl< ReaderPriority, Tag_, Atom, BlockImmediately, AnnotateForThreadSanitizer >::try_lock_upgrade(), folly::SharedMutexImpl< ReaderPriority, Tag_, Atom, BlockImmediately, AnnotateForThreadSanitizer >::unlock(), folly::SharedMutexImpl< ReaderPriority, Tag_, Atom, BlockImmediately, AnnotateForThreadSanitizer >::unlock_shared(), folly::SharedMutexImpl< ReaderPriority, Tag_, Atom, BlockImmediately, AnnotateForThreadSanitizer >::unlock_upgrade(), and folly::fibers::yield().
TEST | ( | SharedMutex | , |
write_has_prio | |||
) |
Definition at line 384 of file SharedMutexTest.cpp.
References folly::SharedMutexImpl< ReaderPriority, Tag_, Atom, BlockImmediately, AnnotateForThreadSanitizer >::lock(), folly::lock(), folly::SharedMutexImpl< ReaderPriority, Tag_, Atom, BlockImmediately, AnnotateForThreadSanitizer >::lock_shared(), folly::SharedMutexImpl< ReaderPriority, Tag_, Atom, BlockImmediately, AnnotateForThreadSanitizer >::try_lock_shared(), folly::SharedMutexImpl< ReaderPriority, Tag_, Atom, BlockImmediately, AnnotateForThreadSanitizer >::unlock(), folly::SharedMutexImpl< ReaderPriority, Tag_, Atom, BlockImmediately, AnnotateForThreadSanitizer >::unlock_shared(), and folly::fibers::yield().
TEST | ( | SharedMutex | , |
deterministic_concurrent_readers_of_one_lock_read_prio | |||
) |
Definition at line 974 of file SharedMutexTest.cpp.
References folly::test::DeterministicSchedule::uniform().
TEST | ( | SharedMutex | , |
deterministic_concurrent_readers_of_one_lock_write_prio | |||
) |
Definition at line 982 of file SharedMutexTest.cpp.
References folly::test::DeterministicSchedule::uniform().
TEST | ( | SharedMutex | , |
concurrent_readers_of_one_lock_read_prio | |||
) |
Definition at line 990 of file SharedMutexTest.cpp.
TEST | ( | SharedMutex | , |
concurrent_readers_of_one_lock_write_prio | |||
) |
Definition at line 997 of file SharedMutexTest.cpp.
TEST | ( | SharedMutex | , |
deterministic_readers_of_concurrent_locks_read_prio | |||
) |
Definition at line 1004 of file SharedMutexTest.cpp.
References folly::test::DeterministicSchedule::uniform().
TEST | ( | SharedMutex | , |
deterministic_readers_of_concurrent_locks_write_prio | |||
) |
Definition at line 1012 of file SharedMutexTest.cpp.
References folly::test::DeterministicSchedule::uniform().
TEST | ( | SharedMutex | , |
readers_of_concurrent_locks_read_prio | |||
) |
Definition at line 1020 of file SharedMutexTest.cpp.
TEST | ( | SharedMutex | , |
readers_of_concurrent_locks_write_prio | |||
) |
Definition at line 1027 of file SharedMutexTest.cpp.
TEST | ( | SharedMutex | , |
deterministic_mixed_mostly_read_read_prio | |||
) |
Definition at line 1034 of file SharedMutexTest.cpp.
References folly::test::DeterministicSchedule::uniform().
TEST | ( | SharedMutex | , |
deterministic_mixed_mostly_read_write_prio | |||
) |
Definition at line 1042 of file SharedMutexTest.cpp.
References folly::test::DeterministicSchedule::uniform().
TEST | ( | SharedMutex | , |
mixed_mostly_read_read_prio | |||
) |
Definition at line 1050 of file SharedMutexTest.cpp.
TEST | ( | SharedMutex | , |
mixed_mostly_read_write_prio | |||
) |
Definition at line 1057 of file SharedMutexTest.cpp.
TEST | ( | SharedMutex | , |
deterministic_mixed_mostly_write_read_prio | |||
) |
Definition at line 1064 of file SharedMutexTest.cpp.
References folly::test::DeterministicSchedule::uniform().
TEST | ( | SharedMutex | , |
deterministic_mixed_mostly_write_write_prio | |||
) |
Definition at line 1072 of file SharedMutexTest.cpp.
References folly::test::DeterministicSchedule::uniform().
TEST | ( | SharedMutex | , |
deterministic_lost_wakeup_write_prio | |||
) |
Definition at line 1080 of file SharedMutexTest.cpp.
References folly::test::DeterministicSchedule::uniformSubset().
TEST | ( | SharedMutex | , |
mixed_mostly_write_read_prio | |||
) |
Definition at line 1097 of file SharedMutexTest.cpp.
References adjustReps(), and folly::kIsSanitizeAddress.
TEST | ( | SharedMutex | , |
mixed_mostly_write_write_prio | |||
) |
Definition at line 1104 of file SharedMutexTest.cpp.
References adjustReps(), and folly::kIsSanitizeAddress.
TEST | ( | SharedMutex | , |
deterministic_all_ops_read_prio | |||
) |
Definition at line 1111 of file SharedMutexTest.cpp.
References folly::test::DeterministicSchedule::uniform().
TEST | ( | SharedMutex | , |
deterministic_all_ops_write_prio | |||
) |
Definition at line 1118 of file SharedMutexTest.cpp.
References folly::kIsSanitizeThread, SKIP_IF, and folly::test::DeterministicSchedule::uniform().
TEST | ( | SharedMutex | , |
all_ops_read_prio | |||
) |
Definition at line 1127 of file SharedMutexTest.cpp.
TEST | ( | SharedMutex | , |
all_ops_write_prio | |||
) |
Definition at line 1133 of file SharedMutexTest.cpp.
References Atom, FOLLY_ASSUME_FBVECTOR_COMPATIBLE(), folly::kIsSanitizeThread, and SKIP_IF.
TEST | ( | SharedMutex | , |
deterministic_remote_write_prio | |||
) |
Definition at line 1256 of file SharedMutexTest.cpp.
References folly::kIsSanitizeThread, SKIP_IF, and folly::test::DeterministicSchedule::uniform().
TEST | ( | SharedMutex | , |
deterministic_remote_read_prio | |||
) |
Definition at line 1267 of file SharedMutexTest.cpp.
References folly::test::DeterministicSchedule::uniform().
TEST | ( | SharedMutex | , |
remote_write_prio | |||
) |
Definition at line 1275 of file SharedMutexTest.cpp.
References folly::kIsSanitizeThread, and SKIP_IF.
TEST | ( | SharedMutex | , |
remote_read_prio | |||
) |
Definition at line 1284 of file SharedMutexTest.cpp.
References folly::kIsSanitizeAddress, folly::kIsSanitizeThread, and SKIP_IF.
TEST | ( | SharedMutex | , |
deterministic_ping_pong_write_prio | |||
) |
Definition at line 1381 of file SharedMutexTest.cpp.
References folly::kIsSanitizeThread, SKIP_IF, and folly::test::DeterministicSchedule::uniform().
TEST | ( | SharedMutex | , |
deterministic_ping_pong_read_prio | |||
) |
Definition at line 1391 of file SharedMutexTest.cpp.
References folly::test::DeterministicSchedule::uniform().
TEST | ( | SharedMutex | , |
ping_pong_write_prio | |||
) |
Definition at line 1398 of file SharedMutexTest.cpp.
References folly::kIsSanitizeThread, and SKIP_IF.
TEST | ( | SharedMutex | , |
ping_pong_read_prio | |||
) |
Definition at line 1407 of file SharedMutexTest.cpp.
burn0 |
Definition at line 1760 of file SharedMutexTest.cpp.
burn100k |
Definition at line 1767 of file SharedMutexTest.cpp.
burn1M |
Definition at line 1781 of file SharedMutexTest.cpp.
burn300k |
Definition at line 1774 of file SharedMutexTest.cpp.
true true true true true true true folly_rwspin |
Definition at line 1697 of file SharedMutexTest.cpp.
false false folly_ticket |
Definition at line 1516 of file SharedMutexTest.cpp.
folly_ticket_ping_pong |
Definition at line 1762 of file SharedMutexTest.cpp.
false false folly_ticket_reads |
Definition at line 1448 of file SharedMutexTest.cpp.
false false false pthrd_rwlock |
Definition at line 1518 of file SharedMutexTest.cpp.
pthrd_rwlock_ping_pong |
Definition at line 1764 of file SharedMutexTest.cpp.
false false false pthrd_rwlock_reads |
Definition at line 1450 of file SharedMutexTest.cpp.
true true true true true true true true shmtx_rd_pri |
Definition at line 1630 of file SharedMutexTest.cpp.
false shmtx_rd_pri_reads |
Definition at line 1446 of file SharedMutexTest.cpp.
shmtx_w_bare_ping_pong |
Definition at line 1760 of file SharedMutexTest.cpp.
true true true true true true shmtx_wr_pri |
Definition at line 1514 of file SharedMutexTest.cpp.
shmtx_wr_pri_reads |
Definition at line 1444 of file SharedMutexTest.cpp.