LLFIO v2.00
Loading...
Searching...
No Matches
llfio_v2_xxx::storage_profile::storage_profile Struct Reference

A (possibly incomplet) profile of storage. More...

#include "storage_profile.hpp"

Public Types

using size_type = size_t
 The size type.
 
using value_type = item_erased &
 Value type.
 
using reference = item_erased &
 Reference type.
 
using const_reference = const item_erased &
 Const reference type.
 
using iterator = item_erased *
 Iterator type.
 
using const_iterator = const item_erased *
 Const iterator type.
 
using handle_type = item_base::handle_type
 The type of handle used for testing.
 

Public Member Functions

bool empty () const noexcept
 True if this storage profile is empty.
 
size_type size () const noexcept
 Items in this storage profile.
 
size_type max_size () const noexcept
 Potential items in this storage profile.
 
iterator begin () noexcept
 Returns an iterator to the first item.
 
iterator end () noexcept
 Returns an iterator to the last item.
 
const_iterator begin () const noexcept
 Returns an iterator to the first item.
 
const_iterator end () const noexcept
 Returns an iterator to the last item.
 
void read (std::istream &in, std::regex which=std::regex(".*"))
 Read the matching items in the storage profile from in as YAML.
 
void write (std::ostream &out, const std::regex &which=std::regex(".*"), size_t _indent=0, bool invert_match=false) const
 Write the matching items from storage profile as YAML to out with the given indentation.
 

Public Attributes

item< std::string > os_name = {"system:os:name", &system::os}
 
item< std::string > os_ver = {"system:os:ver", &system::os}
 
item< std::string > cpu_name = {"system:cpu:name", &system::cpu}
 
item< std::string > cpu_architecture = {"system:cpu:architecture", &system::cpu}
 
item< unsigned > cpu_physical_cores = {"system:cpu:physical_cores", &system::cpu}
 
item< unsigned long long > mem_max_bandwidth = {"system:mem:max_bandwidth", system::mem, "Main memory bandwidth when accessed sequentially (1 CPU core)"}
 
item< unsigned long long > mem_min_bandwidth = {"system:mem:min_bandwidth", system::mem, "Main memory bandwidth when 4Kb pages are accessed randomly (1 CPU core)"}
 
item< unsigned long long > mem_quantity = {"system:mem:quantity", &system::mem}
 
item< float > mem_in_use = {"system:mem:in_use", &system::mem}
 
item< unsigned > clock_granularity = {"system:timer:ns_per_tick", &system::clock_granularity}
 
item< unsigned > clock_overhead = {"system:timer:ns_overhead", &system::clock_granularity}
 
item< unsigned > yield_overhead = {"system:scheduler:ns_yield", &system::yield_overhead, "Nanoseconds to context switch a thread"}
 
item< unsigned > sleep_wake_overhead = {"system:scheduler:ns_sleep_wake", &system::sleep_wake_overhead, "Nanoseconds to sleep and wake a thread"}
 
item< unsigned > drop_filesystem_cache_support = {"system:drop_filesystem_cache_support", &system::drop_filesystem_cache_support}
 
item< std::string > controller_type = {"storage:controller:kind", &storage::device}
 
item< unsigned > controller_max_transfer = {"storage:controller:max_transfer", storage::device, "The maximum number of bytes the disk controller can transfer at once"}
 
item< unsigned > controller_max_buffers = {"storage:controller:max_buffers", storage::device, "The maximum number of scatter-gather buffers the disk controller can handle"}
 
item< std::string > device_name = {"storage:device:name", &storage::device}
 
item< unsigned > device_min_io_size = {"storage:device:min_io_size", &storage::device}
 
item< byte_io_handle::extent_type > device_size = {"storage:device:size", &storage::device}
 
item< std::string > fs_name = {"storage:fs:name", &storage::fs}
 
item< std::string > fs_config = {"storage:fs:config", &storage::fs}
 
item< byte_io_handle::extent_type > fs_size = {"storage:fs:size", &storage::fs}
 
item< float > fs_in_use = {"storage:fs:in_use", &storage::fs}
 
item< byte_io_handle::extent_type > atomic_rewrite_quantum = {"concurrency:atomic_rewrite_quantum", concurrency::atomic_rewrite_quantum, "The i/o modify quantum guaranteed to be atomically visible to readers irrespective of rewrite quantity"}
 
item< byte_io_handle::extent_type > max_aligned_atomic_rewrite
 
item< byte_io_handle::extent_type > atomic_rewrite_offset_boundary
 
item< unsigned > read_nothing = {"latency:read:nothing", latency::read_nothing, "The nanoseconds to read zero bytes"}
 
item< unsigned long long > read_qd1_min = {"latency:read:qd1:min", latency::read_qd1, "The nanoseconds to read 4Kb at a queue depth of 1 (min)"}
 
item< unsigned long long > read_qd1_mean = {"latency:read:qd1:mean", latency::read_qd1, "The nanoseconds to read 4Kb at a queue depth of 1 (arithmetic mean)"}
 
item< unsigned long long > read_qd1_max = {"latency:read:qd1:max", latency::read_qd1, "The nanoseconds to read 4Kb at a queue depth of 1 (max)"}
 
item< unsigned long long > read_qd1_50 = {"latency:read:qd1:50%", latency::read_qd1, "The nanoseconds to read 4Kb at a queue depth of 1 (50% of the time)"}
 
item< unsigned long long > read_qd1_95 = {"latency:read:qd1:95%", latency::read_qd1, "The nanoseconds to read 4Kb at a queue depth of 1 (95% of the time)"}
 
item< unsigned long long > read_qd1_99 = {"latency:read:qd1:99%", latency::read_qd1, "The nanoseconds to read 4Kb at a queue depth of 1 (99% of the time)"}
 
item< unsigned long long > read_qd1_99999 = {"latency:read:qd1:99.999%", latency::read_qd1, "The nanoseconds to read 4Kb at a queue depth of 1 (99.999% of the time)"}
 
item< unsigned long long > read_qd16_min = {"latency:read:qd16:min", latency::read_qd16, "The nanoseconds to read 4Kb at a queue depth of 16 (min)"}
 
item< unsigned long long > read_qd16_mean = {"latency:read:qd16:mean", latency::read_qd16, "The nanoseconds to read 4Kb at a queue depth of 16 (arithmetic mean)"}
 
item< unsigned long long > read_qd16_max = {"latency:read:qd16:max", latency::read_qd16, "The nanoseconds to read 4Kb at a queue depth of 16 (max)"}
 
item< unsigned long long > read_qd16_50 = {"latency:read:qd16:50%", latency::read_qd16, "The nanoseconds to read 4Kb at a queue depth of 16 (50% of the time)"}
 
item< unsigned long long > read_qd16_95 = {"latency:read:qd16:95%", latency::read_qd16, "The nanoseconds to read 4Kb at a queue depth of 16 (95% of the time)"}
 
item< unsigned long long > read_qd16_99 = {"latency:read:qd16:99%", latency::read_qd16, "The nanoseconds to read 4Kb at a queue depth of 16 (99% of the time)"}
 
item< unsigned long long > read_qd16_99999 = {"latency:read:qd16:99.999%", latency::read_qd16, "The nanoseconds to read 4Kb at a queue depth of 16 (99.999% of the time)"}
 
item< unsigned > write_nothing = {"latency:write:nothing", latency::write_nothing, "The nanoseconds to write zero bytes"}
 
item< unsigned long long > write_qd1_min = {"latency:write:qd1:min", latency::write_qd1, "The nanoseconds to write 4Kb at a queue depth of 1 (min)"}
 
item< unsigned long long > write_qd1_mean = {"latency:write:qd1:mean", latency::write_qd1, "The nanoseconds to write 4Kb at a queue depth of 1 (arithmetic mean)"}
 
item< unsigned long long > write_qd1_max = {"latency:write:qd1:max", latency::write_qd1, "The nanoseconds to write 4Kb at a queue depth of 1 (max)"}
 
item< unsigned long long > write_qd1_50 = {"latency:write:qd1:50%", latency::write_qd1, "The nanoseconds to write 4Kb at a queue depth of 1 (50% of the time)"}
 
item< unsigned long long > write_qd1_95 = {"latency:write:qd1:95%", latency::write_qd1, "The nanoseconds to write 4Kb at a queue depth of 1 (95% of the time)"}
 
item< unsigned long long > write_qd1_99 = {"latency:write:qd1:99%", latency::write_qd1, "The nanoseconds to write 4Kb at a queue depth of 1 (99% of the time)"}
 
item< unsigned long long > write_qd1_99999 = {"latency:write:qd1:99.999%", latency::write_qd1, "The nanoseconds to write 4Kb at a queue depth of 1 (99.999% of the time)"}
 
item< unsigned long long > write_qd16_min = {"latency:write:qd16:min", latency::write_qd16, "The nanoseconds to write 4Kb at a queue depth of 16 (min)"}
 
item< unsigned long long > write_qd16_mean = {"latency:write:qd16:mean", latency::write_qd16, "The nanoseconds to write 4Kb at a queue depth of 16 (arithmetic mean)"}
 
item< unsigned long long > write_qd16_max = {"latency:write:qd16:max", latency::write_qd16, "The nanoseconds to write 4Kb at a queue depth of 16 (max)"}
 
item< unsigned long long > write_qd16_50 = {"latency:write:qd16:50%", latency::write_qd16, "The nanoseconds to write 4Kb at a queue depth of 16 (50% of the time)"}
 
item< unsigned long long > write_qd16_95 = {"latency:write:qd16:95%", latency::write_qd16, "The nanoseconds to write 4Kb at a queue depth of 16 (95% of the time)"}
 
item< unsigned long long > write_qd16_99 = {"latency:write:qd16:99%", latency::write_qd16, "The nanoseconds to write 4Kb at a queue depth of 16 (99% of the time)"}
 
item< unsigned long long > write_qd16_99999 = {"latency:write:qd16:99.999%", latency::write_qd16, "The nanoseconds to write 4Kb at a queue depth of 16 (99.999% of the time)"}
 
item< unsigned long long > readwrite_qd4_min = {"latency:readwrite:qd4:min", latency::readwrite_qd4, "The nanoseconds to 75% read 25% write 4Kb at a total queue depth of 4 (min)"}
 
item< unsigned long long > readwrite_qd4_mean = {"latency:readwrite:qd4:mean", latency::readwrite_qd4, "The nanoseconds to 75% read 25% write 4Kb at a total queue depth of 4 (arithmetic mean)"}
 
item< unsigned long long > readwrite_qd4_max = {"latency:readwrite:qd4:max", latency::readwrite_qd4, "The nanoseconds to 75% read 25% write 4Kb at a total queue depth of 4 (max)"}
 
item< unsigned long long > readwrite_qd4_50 = {"latency:readwrite:qd4:50%", latency::readwrite_qd4, "The nanoseconds to 75% read 25% write 4Kb at a total queue depth of 4 (50% of the time)"}
 
item< unsigned long long > readwrite_qd4_95 = {"latency:readwrite:qd4:95%", latency::readwrite_qd4, "The nanoseconds to 75% read 25% write 4Kb at a total queue depth of 4 (95% of the time)"}
 
item< unsigned long long > readwrite_qd4_99 = {"latency:readwrite:qd4:99%", latency::readwrite_qd4, "The nanoseconds to 75% read 25% write 4Kb at a total queue depth of 4 (99% of the time)"}
 
item< unsigned long long > readwrite_qd4_99999 = {"latency:readwrite:qd4:99.999%", latency::readwrite_qd4, "The nanoseconds to 75% read 25% write 4Kb at a total queue depth of 4 (99.999% of the time)"}
 
item< unsigned long long > create_file_warm_racefree_0b = {"response_time:race_free:warm_cache:create_file:0b", response_time::traversal_warm_racefree_0b, "The average nanoseconds to create a 0 byte file (warm cache, race free)"}
 
item< unsigned long long > enumerate_file_warm_racefree_0b = {"response_time:race_free:warm_cache:enumerate_file:0b", response_time::traversal_warm_racefree_0b, "The average nanoseconds to enumerate a 0 byte file (warm cache, race free)"}
 
item< unsigned long long > open_file_read_warm_racefree_0b = {"response_time:race_free:warm_cache:open_file_read:0b", response_time::traversal_warm_racefree_0b, "The average nanoseconds to open a 0 byte file for reading (warm cache, race free)"}
 
item< unsigned long long > open_file_write_warm_racefree_0b = {"response_time:race_free:warm_cache:open_file_write:0b", response_time::traversal_warm_racefree_0b, "The average nanoseconds to open a 0 byte file for writing (warm cache, race free)"}
 
item< unsigned long long > delete_file_warm_racefree_0b = {"response_time:race_free:warm_cache:delete_file:0b", response_time::traversal_warm_racefree_0b, "The average nanoseconds to delete a 0 byte file (warm cache, race free)"}
 
item< unsigned long long > create_file_warm_nonracefree_0b = {"response_time:non_race_free:warm_cache:create_file:0b", response_time::traversal_warm_nonracefree_0b, "The average nanoseconds to create a 0 byte file (warm cache, non race free)"}
 
item< unsigned long long > enumerate_file_warm_nonracefree_0b = {"response_time:non_race_free:warm_cache:enumerate_file:0b", response_time::traversal_warm_nonracefree_0b, "The average nanoseconds to enumerate a 0 byte file (warm cache, non race free)"}
 
item< unsigned long long > open_file_read_warm_nonracefree_0b = {"response_time:non_race_free:warm_cache:open_file_read:0b", response_time::traversal_warm_nonracefree_0b, "The average nanoseconds to open a 0 byte file for reading (warm cache, non race free)"}
 
item< unsigned long long > open_file_write_warm_nonracefree_0b = {"response_time:non_race_free:warm_cache:open_file_write:0b", response_time::traversal_warm_nonracefree_0b, "The average nanoseconds to open a 0 byte file for writing (warm cache, non race free)"}
 
item< unsigned long long > delete_file_warm_nonracefree_0b = {"response_time:non_race_free:warm_cache:delete_file:0b", response_time::traversal_warm_nonracefree_0b, "The average nanoseconds to delete a 0 byte file (warm cache, non race free)"}
 
item< unsigned long long > create_file_cold_racefree_0b = {"response_time:race_free:cold_cache:create_file:0b", response_time::traversal_cold_racefree_0b, "The average nanoseconds to create a 0 byte file (cold cache, race free)"}
 
item< unsigned long long > enumerate_file_cold_racefree_0b = {"response_time:race_free:cold_cache:enumerate_file:0b", response_time::traversal_cold_racefree_0b, "The average nanoseconds to enumerate a 0 byte file (cold cache, race free)"}
 
item< unsigned long long > open_file_read_cold_racefree_0b = {"response_time:race_free:cold_cache:open_file_read:0b", response_time::traversal_cold_racefree_0b, "The average nanoseconds to open a 0 byte file for reading (cold cache, race free)"}
 
item< unsigned long long > open_file_write_cold_racefree_0b = {"response_time:race_free:cold_cache:open_file_write:0b", response_time::traversal_cold_racefree_0b, "The average nanoseconds to open a 0 byte file for writing (cold cache, race free)"}
 
item< unsigned long long > delete_file_cold_racefree_0b = {"response_time:race_free:cold_cache:delete_file:0b", response_time::traversal_cold_racefree_0b, "The average nanoseconds to delete a 0 byte file (cold cache, race free)"}
 

Detailed Description

A (possibly incomplet) profile of storage.

Member Function Documentation

◆ begin() [1/2]

const_iterator llfio_v2_xxx::storage_profile::storage_profile::begin ( ) const
inlinenoexcept

Returns an iterator to the first item.

279{ return reinterpret_cast<const item_erased *>(static_cast<const item_base *>(&os_name)); }

◆ begin() [2/2]

iterator llfio_v2_xxx::storage_profile::storage_profile::begin ( )
inlinenoexcept

Returns an iterator to the first item.

275{ return reinterpret_cast<item_erased *>(static_cast<item_base *>(&os_name)); }

◆ empty()

bool llfio_v2_xxx::storage_profile::storage_profile::empty ( ) const
inlinenoexcept

True if this storage profile is empty.

269{ return _size == 0; }

◆ end() [1/2]

const_iterator llfio_v2_xxx::storage_profile::storage_profile::end ( ) const
inlinenoexcept

Returns an iterator to the last item.

281{ return begin() + max_size(); }
size_type max_size() const noexcept
Potential items in this storage profile.
Definition storage_profile.hpp:273
iterator begin() noexcept
Returns an iterator to the first item.
Definition storage_profile.hpp:275

◆ end() [2/2]

iterator llfio_v2_xxx::storage_profile::storage_profile::end ( )
inlinenoexcept

Returns an iterator to the last item.

277{ return begin() + max_size(); }

◆ max_size()

size_type llfio_v2_xxx::storage_profile::storage_profile::max_size ( ) const
inlinenoexcept

Potential items in this storage profile.

273{ return (sizeof(*this) - sizeof(_size)) / item_base::item_size; }

◆ size()

size_type llfio_v2_xxx::storage_profile::storage_profile::size ( ) const
inlinenoexcept

Items in this storage profile.

271{ return _size; }

Member Data Documentation

◆ atomic_rewrite_offset_boundary

item<byte_io_handle::extent_type> llfio_v2_xxx::storage_profile::storage_profile::atomic_rewrite_offset_boundary
Initial value:
= {"concurrency:atomic_rewrite_offset_boundary", concurrency::atomic_rewrite_offset_boundary, "The multiple of offset in a file where update atomicity breaks, so if you wrote 4096 bytes at a 512 offset and "
"this value was 4096, your write would tear at 3584 because all writes would tear on a 4096 offset multiple. "
"Linux has a famously broken kernel i/o design which causes this value to be a page multiple, except on "
"filing systems which take special measures to work around it. Windows NT appears to lose all atomicity as soon as "
"an i/o straddles a 4096 file offset multiple and DMA suddenly goes into many 64 byte cache lines :(, so if "
"this value is less than max_aligned_atomic_rewrite and some multiple of the CPU cache line size then this is "
"what has happened."}
326 {"concurrency:atomic_rewrite_offset_boundary", concurrency::atomic_rewrite_offset_boundary, "The multiple of offset in a file where update atomicity breaks, so if you wrote 4096 bytes at a 512 offset and "
327 "this value was 4096, your write would tear at 3584 because all writes would tear on a 4096 offset multiple. "
328 "Linux has a famously broken kernel i/o design which causes this value to be a page multiple, except on "
329 "filing systems which take special measures to work around it. Windows NT appears to lose all atomicity as soon as "
330 "an i/o straddles a 4096 file offset multiple and DMA suddenly goes into many 64 byte cache lines :(, so if "
331 "this value is less than max_aligned_atomic_rewrite and some multiple of the CPU cache line size then this is "
332 "what has happened."};

◆ atomic_rewrite_quantum

item<byte_io_handle::extent_type> llfio_v2_xxx::storage_profile::storage_profile::atomic_rewrite_quantum = {"concurrency:atomic_rewrite_quantum", concurrency::atomic_rewrite_quantum, "The i/o modify quantum guaranteed to be atomically visible to readers irrespective of rewrite quantity"}
322{"concurrency:atomic_rewrite_quantum", concurrency::atomic_rewrite_quantum, "The i/o modify quantum guaranteed to be atomically visible to readers irrespective of rewrite quantity"};

◆ clock_granularity

item<unsigned> llfio_v2_xxx::storage_profile::storage_profile::clock_granularity = {"system:timer:ns_per_tick", &system::clock_granularity}
298{"system:timer:ns_per_tick", &system::clock_granularity};

◆ clock_overhead

item<unsigned> llfio_v2_xxx::storage_profile::storage_profile::clock_overhead = {"system:timer:ns_overhead", &system::clock_granularity}
299{"system:timer:ns_overhead", &system::clock_granularity};

◆ controller_max_buffers

item<unsigned> llfio_v2_xxx::storage_profile::storage_profile::controller_max_buffers = {"storage:controller:max_buffers", storage::device, "The maximum number of scatter-gather buffers the disk controller can handle"}
307{"storage:controller:max_buffers", storage::device, "The maximum number of scatter-gather buffers the disk controller can handle"};

◆ controller_max_transfer

item<unsigned> llfio_v2_xxx::storage_profile::storage_profile::controller_max_transfer = {"storage:controller:max_transfer", storage::device, "The maximum number of bytes the disk controller can transfer at once"}
306{"storage:controller:max_transfer", storage::device, "The maximum number of bytes the disk controller can transfer at once"};

◆ controller_type

item<std::string> llfio_v2_xxx::storage_profile::storage_profile::controller_type = {"storage:controller:kind", &storage::device}
305{"storage:controller:kind", &storage::device}; // e.g. SATA

◆ cpu_architecture

item<std::string> llfio_v2_xxx::storage_profile::storage_profile::cpu_architecture = {"system:cpu:architecture", &system::cpu}
292{"system:cpu:architecture", &system::cpu}; // e.g. x64

◆ cpu_name

item<std::string> llfio_v2_xxx::storage_profile::storage_profile::cpu_name = {"system:cpu:name", &system::cpu}
291{"system:cpu:name", &system::cpu}; // e.g. Intel Haswell

◆ cpu_physical_cores

item<unsigned> llfio_v2_xxx::storage_profile::storage_profile::cpu_physical_cores = {"system:cpu:physical_cores", &system::cpu}
293{"system:cpu:physical_cores", &system::cpu};

◆ create_file_cold_racefree_0b

item<unsigned long long> llfio_v2_xxx::storage_profile::storage_profile::create_file_cold_racefree_0b = {"response_time:race_free:cold_cache:create_file:0b", response_time::traversal_cold_racefree_0b, "The average nanoseconds to create a 0 byte file (cold cache, race free)"}
389{"response_time:race_free:cold_cache:create_file:0b", response_time::traversal_cold_racefree_0b, "The average nanoseconds to create a 0 byte file (cold cache, race free)"};

◆ create_file_warm_nonracefree_0b

item<unsigned long long> llfio_v2_xxx::storage_profile::storage_profile::create_file_warm_nonracefree_0b = {"response_time:non_race_free:warm_cache:create_file:0b", response_time::traversal_warm_nonracefree_0b, "The average nanoseconds to create a 0 byte file (warm cache, non race free)"}
383{"response_time:non_race_free:warm_cache:create_file:0b", response_time::traversal_warm_nonracefree_0b, "The average nanoseconds to create a 0 byte file (warm cache, non race free)"};

◆ create_file_warm_racefree_0b

item<unsigned long long> llfio_v2_xxx::storage_profile::storage_profile::create_file_warm_racefree_0b = {"response_time:race_free:warm_cache:create_file:0b", response_time::traversal_warm_racefree_0b, "The average nanoseconds to create a 0 byte file (warm cache, race free)"}
377{"response_time:race_free:warm_cache:create_file:0b", response_time::traversal_warm_racefree_0b, "The average nanoseconds to create a 0 byte file (warm cache, race free)"};

◆ delete_file_cold_racefree_0b

item<unsigned long long> llfio_v2_xxx::storage_profile::storage_profile::delete_file_cold_racefree_0b = {"response_time:race_free:cold_cache:delete_file:0b", response_time::traversal_cold_racefree_0b, "The average nanoseconds to delete a 0 byte file (cold cache, race free)"}
393{"response_time:race_free:cold_cache:delete_file:0b", response_time::traversal_cold_racefree_0b, "The average nanoseconds to delete a 0 byte file (cold cache, race free)"};

◆ delete_file_warm_nonracefree_0b

item<unsigned long long> llfio_v2_xxx::storage_profile::storage_profile::delete_file_warm_nonracefree_0b = {"response_time:non_race_free:warm_cache:delete_file:0b", response_time::traversal_warm_nonracefree_0b, "The average nanoseconds to delete a 0 byte file (warm cache, non race free)"}
387{"response_time:non_race_free:warm_cache:delete_file:0b", response_time::traversal_warm_nonracefree_0b, "The average nanoseconds to delete a 0 byte file (warm cache, non race free)"};

◆ delete_file_warm_racefree_0b

item<unsigned long long> llfio_v2_xxx::storage_profile::storage_profile::delete_file_warm_racefree_0b = {"response_time:race_free:warm_cache:delete_file:0b", response_time::traversal_warm_racefree_0b, "The average nanoseconds to delete a 0 byte file (warm cache, race free)"}
381{"response_time:race_free:warm_cache:delete_file:0b", response_time::traversal_warm_racefree_0b, "The average nanoseconds to delete a 0 byte file (warm cache, race free)"};

◆ device_min_io_size

item<unsigned> llfio_v2_xxx::storage_profile::storage_profile::device_min_io_size = {"storage:device:min_io_size", &storage::device}
311{"storage:device:min_io_size", &storage::device}; // e.g. 4096

◆ device_name

item<std::string> llfio_v2_xxx::storage_profile::storage_profile::device_name = {"storage:device:name", &storage::device}
310{"storage:device:name", &storage::device}; // e.g. WDC WD30EFRX-68EUZN0

◆ device_size

item<byte_io_handle::extent_type> llfio_v2_xxx::storage_profile::storage_profile::device_size = {"storage:device:size", &storage::device}
312{"storage:device:size", &storage::device};

◆ drop_filesystem_cache_support

item<unsigned> llfio_v2_xxx::storage_profile::storage_profile::drop_filesystem_cache_support = {"system:drop_filesystem_cache_support", &system::drop_filesystem_cache_support}
302{"system:drop_filesystem_cache_support", &system::drop_filesystem_cache_support};

◆ enumerate_file_cold_racefree_0b

item<unsigned long long> llfio_v2_xxx::storage_profile::storage_profile::enumerate_file_cold_racefree_0b = {"response_time:race_free:cold_cache:enumerate_file:0b", response_time::traversal_cold_racefree_0b, "The average nanoseconds to enumerate a 0 byte file (cold cache, race free)"}
390{"response_time:race_free:cold_cache:enumerate_file:0b", response_time::traversal_cold_racefree_0b, "The average nanoseconds to enumerate a 0 byte file (cold cache, race free)"};

◆ enumerate_file_warm_nonracefree_0b

item<unsigned long long> llfio_v2_xxx::storage_profile::storage_profile::enumerate_file_warm_nonracefree_0b = {"response_time:non_race_free:warm_cache:enumerate_file:0b", response_time::traversal_warm_nonracefree_0b, "The average nanoseconds to enumerate a 0 byte file (warm cache, non race free)"}
384{"response_time:non_race_free:warm_cache:enumerate_file:0b", response_time::traversal_warm_nonracefree_0b, "The average nanoseconds to enumerate a 0 byte file (warm cache, non race free)"};

◆ enumerate_file_warm_racefree_0b

item<unsigned long long> llfio_v2_xxx::storage_profile::storage_profile::enumerate_file_warm_racefree_0b = {"response_time:race_free:warm_cache:enumerate_file:0b", response_time::traversal_warm_racefree_0b, "The average nanoseconds to enumerate a 0 byte file (warm cache, race free)"}
378{"response_time:race_free:warm_cache:enumerate_file:0b", response_time::traversal_warm_racefree_0b, "The average nanoseconds to enumerate a 0 byte file (warm cache, race free)"};

◆ fs_config

item<std::string> llfio_v2_xxx::storage_profile::storage_profile::fs_config = {"storage:fs:config", &storage::fs}
316{"storage:fs:config", &storage::fs}; // POSIX mount options, ZFS pool properties etc

◆ fs_in_use

item<float> llfio_v2_xxx::storage_profile::storage_profile::fs_in_use = {"storage:fs:in_use", &storage::fs}
319{"storage:fs:in_use", &storage::fs};

◆ fs_name

item<std::string> llfio_v2_xxx::storage_profile::storage_profile::fs_name = {"storage:fs:name", &storage::fs}
315{"storage:fs:name", &storage::fs};

◆ fs_size

item<byte_io_handle::extent_type> llfio_v2_xxx::storage_profile::storage_profile::fs_size = {"storage:fs:size", &storage::fs}
318{"storage:fs:size", &storage::fs};

◆ max_aligned_atomic_rewrite

item<byte_io_handle::extent_type> llfio_v2_xxx::storage_profile::storage_profile::max_aligned_atomic_rewrite
Initial value:
= {"concurrency:max_aligned_atomic_rewrite", concurrency::atomic_rewrite_quantum,
"The maximum single aligned i/o modify quantity atomically visible to readers (can be [potentially unreliably] much larger than atomic_rewrite_quantum). "
"A very common value on modern hardware with direct i/o thanks to PCIe DMA is 4096, don't trust values higher than this because of potentially discontiguous memory page mapping."}
323 {"concurrency:max_aligned_atomic_rewrite", concurrency::atomic_rewrite_quantum,
324 "The maximum single aligned i/o modify quantity atomically visible to readers (can be [potentially unreliably] much larger than atomic_rewrite_quantum). "
325 "A very common value on modern hardware with direct i/o thanks to PCIe DMA is 4096, don't trust values higher than this because of potentially discontiguous memory page mapping."};

◆ mem_in_use

item<float> llfio_v2_xxx::storage_profile::storage_profile::mem_in_use = {"system:mem:in_use", &system::mem}
297{"system:mem:in_use", &system::mem}; // not including caches etc.

◆ mem_max_bandwidth

item<unsigned long long> llfio_v2_xxx::storage_profile::storage_profile::mem_max_bandwidth = {"system:mem:max_bandwidth", system::mem, "Main memory bandwidth when accessed sequentially (1 CPU core)"}
294{"system:mem:max_bandwidth", system::mem, "Main memory bandwidth when accessed sequentially (1 CPU core)"};

◆ mem_min_bandwidth

item<unsigned long long> llfio_v2_xxx::storage_profile::storage_profile::mem_min_bandwidth = {"system:mem:min_bandwidth", system::mem, "Main memory bandwidth when 4Kb pages are accessed randomly (1 CPU core)"}
295{"system:mem:min_bandwidth", system::mem, "Main memory bandwidth when 4Kb pages are accessed randomly (1 CPU core)"};

◆ mem_quantity

item<unsigned long long> llfio_v2_xxx::storage_profile::storage_profile::mem_quantity = {"system:mem:quantity", &system::mem}
296{"system:mem:quantity", &system::mem};

◆ open_file_read_cold_racefree_0b

item<unsigned long long> llfio_v2_xxx::storage_profile::storage_profile::open_file_read_cold_racefree_0b = {"response_time:race_free:cold_cache:open_file_read:0b", response_time::traversal_cold_racefree_0b, "The average nanoseconds to open a 0 byte file for reading (cold cache, race free)"}
391{"response_time:race_free:cold_cache:open_file_read:0b", response_time::traversal_cold_racefree_0b, "The average nanoseconds to open a 0 byte file for reading (cold cache, race free)"};

◆ open_file_read_warm_nonracefree_0b

item<unsigned long long> llfio_v2_xxx::storage_profile::storage_profile::open_file_read_warm_nonracefree_0b = {"response_time:non_race_free:warm_cache:open_file_read:0b", response_time::traversal_warm_nonracefree_0b, "The average nanoseconds to open a 0 byte file for reading (warm cache, non race free)"}
385{"response_time:non_race_free:warm_cache:open_file_read:0b", response_time::traversal_warm_nonracefree_0b, "The average nanoseconds to open a 0 byte file for reading (warm cache, non race free)"};

◆ open_file_read_warm_racefree_0b

item<unsigned long long> llfio_v2_xxx::storage_profile::storage_profile::open_file_read_warm_racefree_0b = {"response_time:race_free:warm_cache:open_file_read:0b", response_time::traversal_warm_racefree_0b, "The average nanoseconds to open a 0 byte file for reading (warm cache, race free)"}
379{"response_time:race_free:warm_cache:open_file_read:0b", response_time::traversal_warm_racefree_0b, "The average nanoseconds to open a 0 byte file for reading (warm cache, race free)"};

◆ open_file_write_cold_racefree_0b

item<unsigned long long> llfio_v2_xxx::storage_profile::storage_profile::open_file_write_cold_racefree_0b = {"response_time:race_free:cold_cache:open_file_write:0b", response_time::traversal_cold_racefree_0b, "The average nanoseconds to open a 0 byte file for writing (cold cache, race free)"}
392{"response_time:race_free:cold_cache:open_file_write:0b", response_time::traversal_cold_racefree_0b, "The average nanoseconds to open a 0 byte file for writing (cold cache, race free)"};

◆ open_file_write_warm_nonracefree_0b

item<unsigned long long> llfio_v2_xxx::storage_profile::storage_profile::open_file_write_warm_nonracefree_0b = {"response_time:non_race_free:warm_cache:open_file_write:0b", response_time::traversal_warm_nonracefree_0b, "The average nanoseconds to open a 0 byte file for writing (warm cache, non race free)"}
386{"response_time:non_race_free:warm_cache:open_file_write:0b", response_time::traversal_warm_nonracefree_0b, "The average nanoseconds to open a 0 byte file for writing (warm cache, non race free)"};

◆ open_file_write_warm_racefree_0b

item<unsigned long long> llfio_v2_xxx::storage_profile::storage_profile::open_file_write_warm_racefree_0b = {"response_time:race_free:warm_cache:open_file_write:0b", response_time::traversal_warm_racefree_0b, "The average nanoseconds to open a 0 byte file for writing (warm cache, race free)"}
380{"response_time:race_free:warm_cache:open_file_write:0b", response_time::traversal_warm_racefree_0b, "The average nanoseconds to open a 0 byte file for writing (warm cache, race free)"};

◆ os_name

item<std::string> llfio_v2_xxx::storage_profile::storage_profile::os_name = {"system:os:name", &system::os}
289{"system:os:name", &system::os}; // e.g. Microsoft Windows NT

◆ os_ver

item<std::string> llfio_v2_xxx::storage_profile::storage_profile::os_ver = {"system:os:ver", &system::os}
290{"system:os:ver", &system::os}; // e.g. 10.0.10240

◆ read_nothing

item<unsigned> llfio_v2_xxx::storage_profile::storage_profile::read_nothing = {"latency:read:nothing", latency::read_nothing, "The nanoseconds to read zero bytes"}
333{"latency:read:nothing", latency::read_nothing, "The nanoseconds to read zero bytes"};

◆ read_qd16_50

item<unsigned long long> llfio_v2_xxx::storage_profile::storage_profile::read_qd16_50 = {"latency:read:qd16:50%", latency::read_qd16, "The nanoseconds to read 4Kb at a queue depth of 16 (50% of the time)"}
346{"latency:read:qd16:50%", latency::read_qd16, "The nanoseconds to read 4Kb at a queue depth of 16 (50% of the time)"};

◆ read_qd16_95

item<unsigned long long> llfio_v2_xxx::storage_profile::storage_profile::read_qd16_95 = {"latency:read:qd16:95%", latency::read_qd16, "The nanoseconds to read 4Kb at a queue depth of 16 (95% of the time)"}
347{"latency:read:qd16:95%", latency::read_qd16, "The nanoseconds to read 4Kb at a queue depth of 16 (95% of the time)"};

◆ read_qd16_99

item<unsigned long long> llfio_v2_xxx::storage_profile::storage_profile::read_qd16_99 = {"latency:read:qd16:99%", latency::read_qd16, "The nanoseconds to read 4Kb at a queue depth of 16 (99% of the time)"}
348{"latency:read:qd16:99%", latency::read_qd16, "The nanoseconds to read 4Kb at a queue depth of 16 (99% of the time)"};

◆ read_qd16_99999

item<unsigned long long> llfio_v2_xxx::storage_profile::storage_profile::read_qd16_99999 = {"latency:read:qd16:99.999%", latency::read_qd16, "The nanoseconds to read 4Kb at a queue depth of 16 (99.999% of the time)"}
349{"latency:read:qd16:99.999%", latency::read_qd16, "The nanoseconds to read 4Kb at a queue depth of 16 (99.999% of the time)"};

◆ read_qd16_max

item<unsigned long long> llfio_v2_xxx::storage_profile::storage_profile::read_qd16_max = {"latency:read:qd16:max", latency::read_qd16, "The nanoseconds to read 4Kb at a queue depth of 16 (max)"}
345{"latency:read:qd16:max", latency::read_qd16, "The nanoseconds to read 4Kb at a queue depth of 16 (max)"};

◆ read_qd16_mean

item<unsigned long long> llfio_v2_xxx::storage_profile::storage_profile::read_qd16_mean = {"latency:read:qd16:mean", latency::read_qd16, "The nanoseconds to read 4Kb at a queue depth of 16 (arithmetic mean)"}
344{"latency:read:qd16:mean", latency::read_qd16, "The nanoseconds to read 4Kb at a queue depth of 16 (arithmetic mean)"};

◆ read_qd16_min

item<unsigned long long> llfio_v2_xxx::storage_profile::storage_profile::read_qd16_min = {"latency:read:qd16:min", latency::read_qd16, "The nanoseconds to read 4Kb at a queue depth of 16 (min)"}
343{"latency:read:qd16:min", latency::read_qd16, "The nanoseconds to read 4Kb at a queue depth of 16 (min)"};

◆ read_qd1_50

item<unsigned long long> llfio_v2_xxx::storage_profile::storage_profile::read_qd1_50 = {"latency:read:qd1:50%", latency::read_qd1, "The nanoseconds to read 4Kb at a queue depth of 1 (50% of the time)"}
338{"latency:read:qd1:50%", latency::read_qd1, "The nanoseconds to read 4Kb at a queue depth of 1 (50% of the time)"};

◆ read_qd1_95

item<unsigned long long> llfio_v2_xxx::storage_profile::storage_profile::read_qd1_95 = {"latency:read:qd1:95%", latency::read_qd1, "The nanoseconds to read 4Kb at a queue depth of 1 (95% of the time)"}
339{"latency:read:qd1:95%", latency::read_qd1, "The nanoseconds to read 4Kb at a queue depth of 1 (95% of the time)"};

◆ read_qd1_99

item<unsigned long long> llfio_v2_xxx::storage_profile::storage_profile::read_qd1_99 = {"latency:read:qd1:99%", latency::read_qd1, "The nanoseconds to read 4Kb at a queue depth of 1 (99% of the time)"}
340{"latency:read:qd1:99%", latency::read_qd1, "The nanoseconds to read 4Kb at a queue depth of 1 (99% of the time)"};

◆ read_qd1_99999

item<unsigned long long> llfio_v2_xxx::storage_profile::storage_profile::read_qd1_99999 = {"latency:read:qd1:99.999%", latency::read_qd1, "The nanoseconds to read 4Kb at a queue depth of 1 (99.999% of the time)"}
341{"latency:read:qd1:99.999%", latency::read_qd1, "The nanoseconds to read 4Kb at a queue depth of 1 (99.999% of the time)"};

◆ read_qd1_max

item<unsigned long long> llfio_v2_xxx::storage_profile::storage_profile::read_qd1_max = {"latency:read:qd1:max", latency::read_qd1, "The nanoseconds to read 4Kb at a queue depth of 1 (max)"}
337{"latency:read:qd1:max", latency::read_qd1, "The nanoseconds to read 4Kb at a queue depth of 1 (max)"};

◆ read_qd1_mean

item<unsigned long long> llfio_v2_xxx::storage_profile::storage_profile::read_qd1_mean = {"latency:read:qd1:mean", latency::read_qd1, "The nanoseconds to read 4Kb at a queue depth of 1 (arithmetic mean)"}
336{"latency:read:qd1:mean", latency::read_qd1, "The nanoseconds to read 4Kb at a queue depth of 1 (arithmetic mean)"};

◆ read_qd1_min

item<unsigned long long> llfio_v2_xxx::storage_profile::storage_profile::read_qd1_min = {"latency:read:qd1:min", latency::read_qd1, "The nanoseconds to read 4Kb at a queue depth of 1 (min)"}
335{"latency:read:qd1:min", latency::read_qd1, "The nanoseconds to read 4Kb at a queue depth of 1 (min)"};

◆ readwrite_qd4_50

item<unsigned long long> llfio_v2_xxx::storage_profile::storage_profile::readwrite_qd4_50 = {"latency:readwrite:qd4:50%", latency::readwrite_qd4, "The nanoseconds to 75% read 25% write 4Kb at a total queue depth of 4 (50% of the time)"}
372{"latency:readwrite:qd4:50%", latency::readwrite_qd4, "The nanoseconds to 75% read 25% write 4Kb at a total queue depth of 4 (50% of the time)"};

◆ readwrite_qd4_95

item<unsigned long long> llfio_v2_xxx::storage_profile::storage_profile::readwrite_qd4_95 = {"latency:readwrite:qd4:95%", latency::readwrite_qd4, "The nanoseconds to 75% read 25% write 4Kb at a total queue depth of 4 (95% of the time)"}
373{"latency:readwrite:qd4:95%", latency::readwrite_qd4, "The nanoseconds to 75% read 25% write 4Kb at a total queue depth of 4 (95% of the time)"};

◆ readwrite_qd4_99

item<unsigned long long> llfio_v2_xxx::storage_profile::storage_profile::readwrite_qd4_99 = {"latency:readwrite:qd4:99%", latency::readwrite_qd4, "The nanoseconds to 75% read 25% write 4Kb at a total queue depth of 4 (99% of the time)"}
374{"latency:readwrite:qd4:99%", latency::readwrite_qd4, "The nanoseconds to 75% read 25% write 4Kb at a total queue depth of 4 (99% of the time)"};

◆ readwrite_qd4_99999

item<unsigned long long> llfio_v2_xxx::storage_profile::storage_profile::readwrite_qd4_99999 = {"latency:readwrite:qd4:99.999%", latency::readwrite_qd4, "The nanoseconds to 75% read 25% write 4Kb at a total queue depth of 4 (99.999% of the time)"}
375{"latency:readwrite:qd4:99.999%", latency::readwrite_qd4, "The nanoseconds to 75% read 25% write 4Kb at a total queue depth of 4 (99.999% of the time)"};

◆ readwrite_qd4_max

item<unsigned long long> llfio_v2_xxx::storage_profile::storage_profile::readwrite_qd4_max = {"latency:readwrite:qd4:max", latency::readwrite_qd4, "The nanoseconds to 75% read 25% write 4Kb at a total queue depth of 4 (max)"}
371{"latency:readwrite:qd4:max", latency::readwrite_qd4, "The nanoseconds to 75% read 25% write 4Kb at a total queue depth of 4 (max)"};

◆ readwrite_qd4_mean

item<unsigned long long> llfio_v2_xxx::storage_profile::storage_profile::readwrite_qd4_mean = {"latency:readwrite:qd4:mean", latency::readwrite_qd4, "The nanoseconds to 75% read 25% write 4Kb at a total queue depth of 4 (arithmetic mean)"}
370{"latency:readwrite:qd4:mean", latency::readwrite_qd4, "The nanoseconds to 75% read 25% write 4Kb at a total queue depth of 4 (arithmetic mean)"};

◆ readwrite_qd4_min

item<unsigned long long> llfio_v2_xxx::storage_profile::storage_profile::readwrite_qd4_min = {"latency:readwrite:qd4:min", latency::readwrite_qd4, "The nanoseconds to 75% read 25% write 4Kb at a total queue depth of 4 (min)"}
369{"latency:readwrite:qd4:min", latency::readwrite_qd4, "The nanoseconds to 75% read 25% write 4Kb at a total queue depth of 4 (min)"};

◆ sleep_wake_overhead

item<unsigned> llfio_v2_xxx::storage_profile::storage_profile::sleep_wake_overhead = {"system:scheduler:ns_sleep_wake", &system::sleep_wake_overhead, "Nanoseconds to sleep and wake a thread"}
301{"system:scheduler:ns_sleep_wake", &system::sleep_wake_overhead, "Nanoseconds to sleep and wake a thread"};

◆ write_nothing

item<unsigned> llfio_v2_xxx::storage_profile::storage_profile::write_nothing = {"latency:write:nothing", latency::write_nothing, "The nanoseconds to write zero bytes"}
351{"latency:write:nothing", latency::write_nothing, "The nanoseconds to write zero bytes"};

◆ write_qd16_50

item<unsigned long long> llfio_v2_xxx::storage_profile::storage_profile::write_qd16_50 = {"latency:write:qd16:50%", latency::write_qd16, "The nanoseconds to write 4Kb at a queue depth of 16 (50% of the time)"}
364{"latency:write:qd16:50%", latency::write_qd16, "The nanoseconds to write 4Kb at a queue depth of 16 (50% of the time)"};

◆ write_qd16_95

item<unsigned long long> llfio_v2_xxx::storage_profile::storage_profile::write_qd16_95 = {"latency:write:qd16:95%", latency::write_qd16, "The nanoseconds to write 4Kb at a queue depth of 16 (95% of the time)"}
365{"latency:write:qd16:95%", latency::write_qd16, "The nanoseconds to write 4Kb at a queue depth of 16 (95% of the time)"};

◆ write_qd16_99

item<unsigned long long> llfio_v2_xxx::storage_profile::storage_profile::write_qd16_99 = {"latency:write:qd16:99%", latency::write_qd16, "The nanoseconds to write 4Kb at a queue depth of 16 (99% of the time)"}
366{"latency:write:qd16:99%", latency::write_qd16, "The nanoseconds to write 4Kb at a queue depth of 16 (99% of the time)"};

◆ write_qd16_99999

item<unsigned long long> llfio_v2_xxx::storage_profile::storage_profile::write_qd16_99999 = {"latency:write:qd16:99.999%", latency::write_qd16, "The nanoseconds to write 4Kb at a queue depth of 16 (99.999% of the time)"}
367{"latency:write:qd16:99.999%", latency::write_qd16, "The nanoseconds to write 4Kb at a queue depth of 16 (99.999% of the time)"};

◆ write_qd16_max

item<unsigned long long> llfio_v2_xxx::storage_profile::storage_profile::write_qd16_max = {"latency:write:qd16:max", latency::write_qd16, "The nanoseconds to write 4Kb at a queue depth of 16 (max)"}
363{"latency:write:qd16:max", latency::write_qd16, "The nanoseconds to write 4Kb at a queue depth of 16 (max)"};

◆ write_qd16_mean

item<unsigned long long> llfio_v2_xxx::storage_profile::storage_profile::write_qd16_mean = {"latency:write:qd16:mean", latency::write_qd16, "The nanoseconds to write 4Kb at a queue depth of 16 (arithmetic mean)"}
362{"latency:write:qd16:mean", latency::write_qd16, "The nanoseconds to write 4Kb at a queue depth of 16 (arithmetic mean)"};

◆ write_qd16_min

item<unsigned long long> llfio_v2_xxx::storage_profile::storage_profile::write_qd16_min = {"latency:write:qd16:min", latency::write_qd16, "The nanoseconds to write 4Kb at a queue depth of 16 (min)"}
361{"latency:write:qd16:min", latency::write_qd16, "The nanoseconds to write 4Kb at a queue depth of 16 (min)"};

◆ write_qd1_50

item<unsigned long long> llfio_v2_xxx::storage_profile::storage_profile::write_qd1_50 = {"latency:write:qd1:50%", latency::write_qd1, "The nanoseconds to write 4Kb at a queue depth of 1 (50% of the time)"}
356{"latency:write:qd1:50%", latency::write_qd1, "The nanoseconds to write 4Kb at a queue depth of 1 (50% of the time)"};

◆ write_qd1_95

item<unsigned long long> llfio_v2_xxx::storage_profile::storage_profile::write_qd1_95 = {"latency:write:qd1:95%", latency::write_qd1, "The nanoseconds to write 4Kb at a queue depth of 1 (95% of the time)"}
357{"latency:write:qd1:95%", latency::write_qd1, "The nanoseconds to write 4Kb at a queue depth of 1 (95% of the time)"};

◆ write_qd1_99

item<unsigned long long> llfio_v2_xxx::storage_profile::storage_profile::write_qd1_99 = {"latency:write:qd1:99%", latency::write_qd1, "The nanoseconds to write 4Kb at a queue depth of 1 (99% of the time)"}
358{"latency:write:qd1:99%", latency::write_qd1, "The nanoseconds to write 4Kb at a queue depth of 1 (99% of the time)"};

◆ write_qd1_99999

item<unsigned long long> llfio_v2_xxx::storage_profile::storage_profile::write_qd1_99999 = {"latency:write:qd1:99.999%", latency::write_qd1, "The nanoseconds to write 4Kb at a queue depth of 1 (99.999% of the time)"}
359{"latency:write:qd1:99.999%", latency::write_qd1, "The nanoseconds to write 4Kb at a queue depth of 1 (99.999% of the time)"};

◆ write_qd1_max

item<unsigned long long> llfio_v2_xxx::storage_profile::storage_profile::write_qd1_max = {"latency:write:qd1:max", latency::write_qd1, "The nanoseconds to write 4Kb at a queue depth of 1 (max)"}
355{"latency:write:qd1:max", latency::write_qd1, "The nanoseconds to write 4Kb at a queue depth of 1 (max)"};

◆ write_qd1_mean

item<unsigned long long> llfio_v2_xxx::storage_profile::storage_profile::write_qd1_mean = {"latency:write:qd1:mean", latency::write_qd1, "The nanoseconds to write 4Kb at a queue depth of 1 (arithmetic mean)"}
354{"latency:write:qd1:mean", latency::write_qd1, "The nanoseconds to write 4Kb at a queue depth of 1 (arithmetic mean)"};

◆ write_qd1_min

item<unsigned long long> llfio_v2_xxx::storage_profile::storage_profile::write_qd1_min = {"latency:write:qd1:min", latency::write_qd1, "The nanoseconds to write 4Kb at a queue depth of 1 (min)"}
353{"latency:write:qd1:min", latency::write_qd1, "The nanoseconds to write 4Kb at a queue depth of 1 (min)"};

◆ yield_overhead

item<unsigned> llfio_v2_xxx::storage_profile::storage_profile::yield_overhead = {"system:scheduler:ns_yield", &system::yield_overhead, "Nanoseconds to context switch a thread"}
300{"system:scheduler:ns_yield", &system::yield_overhead, "Nanoseconds to context switch a thread"};

The documentation for this struct was generated from the following file: