- File:
-
- 1 edited
-
libcfa/src/concurrency/stats.hfa (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
libcfa/src/concurrency/stats.hfa
rd2fadeb r73f4d08 16 16 static inline void __print_stats( struct __stats_t *, int, const char *, const char *, void * ) {} 17 17 #else 18 struct __stats_readyQ_pop_t {19 // number of attemps at poping something20 volatile uint64_t attempt;21 18 22 // number of successes at poping 23 volatile uint64_t success; 24 25 // number of attempts failed due to the lock being held 26 volatile uint64_t elock; 27 28 // number of attempts failed due to the queue being empty (lock held) 29 volatile uint64_t eempty; 30 31 // number of attempts failed due to the queue looking empty (lock not held) 32 volatile uint64_t espec; 33 }; 34 35 struct __attribute__((aligned(64))) __stats_readyQ_t { 36 // Push statistic 19 struct __attribute__((aligned(64))) __stats_readQ_t { 37 20 struct { 21 // Push statistic 38 22 struct { 39 // number of attemps at pushing something to preferred queues23 // number of attemps at pushing something 40 24 volatile uint64_t attempt; 41 25 26 // number of successes at pushing 27 volatile uint64_t success; 28 29 // number of attemps at pushing something to preferred queues 30 volatile uint64_t local; 31 42 32 // number of successes at pushing to preferred queues 33 volatile uint64_t lsuccess; 34 } push; 35 36 struct { 37 // number of attemps at pushing something 38 volatile uint64_t attempt; 39 40 // number of successes at pushing 43 41 volatile uint64_t success; 44 }45 // Stats for local queue within cluster46 local,47 42 48 // Stats for non-local queues within cluster49 share,43 // number of attemps at pushing something to preferred queues 44 volatile uint64_t local; 50 45 51 // Stats from outside cluster52 extrn;53 } push;46 // number of successes at pushing to preferred queues 47 volatile uint64_t lsuccess; 48 } ext; 54 49 55 // Pop statistic 56 struct { 57 // pop from local queue 58 __stats_readyQ_pop_t local; 50 // Pop statistic 51 struct { 52 // number of reads of the mask 53 // picking an empty __cfa_readyQ_mask_t counts here 54 // but not as an attempt 55 volatile uint64_t probe; 59 56 60 // pop before looking at local queue61 __stats_readyQ_pop_t help;57 // number of attemps at poping something 58 volatile uint64_t attempt; 62 59 63 // pop from some other queue64 __stats_readyQ_pop_t steal;60 // number of successes at poping 61 volatile uint64_t success; 65 62 66 // pop when searching queues sequentially 67 __stats_readyQ_pop_t search; 68 } pop; 63 // number of attemps at poping something to preferred queues 64 volatile uint64_t local; 69 65 66 // number of successes at poping to preferred queues 67 volatile uint64_t lsuccess; 68 } pop; 69 } pick; 70 70 struct { 71 71 volatile uint64_t migration; … … 119 119 120 120 struct __attribute__((aligned(128))) __stats_t { 121 __stats_read yQ_t ready;121 __stats_readQ_t ready; 122 122 #if defined(CFA_HAVE_LINUX_IO_URING_H) 123 123 __stats_io_t io;
Note:
See TracChangeset
for help on using the changeset viewer.