Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • libcfa/src/concurrency/stats.hfa

    rd2fadeb r73f4d08  
    1616        static inline void __print_stats( struct __stats_t *, int, const char *, const char *, void * ) {}
    1717#else
    18         struct __stats_readyQ_pop_t {
    19                 // number of attemps at poping something
    20                 volatile uint64_t attempt;
    2118
    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 {
    3720                struct {
     21                        // Push statistic
    3822                        struct {
    39                                 // number of attemps at pushing something to preferred queues
     23                                // number of attemps at pushing something
    4024                                volatile uint64_t attempt;
    4125
     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
    4232                                // 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
    4341                                volatile uint64_t success;
    44                         }
    45                         // Stats for local queue within cluster
    46                         local,
    4742
    48                         // Stats for non-local queues within cluster
    49                         share,
     43                                // number of attemps at pushing something to preferred queues
     44                                volatile uint64_t local;
    5045
    51                         // Stats from outside cluster
    52                         extrn;
    53                 } push;
     46                                // number of successes at pushing to preferred queues
     47                                volatile uint64_t lsuccess;
     48                        } ext;
    5449
    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;
    5956
    60                         // pop before looking at local queue
    61                         __stats_readyQ_pop_t help;
     57                                // number of attemps at poping something
     58                                volatile uint64_t attempt;
    6259
    63                         // pop from some other queue
    64                         __stats_readyQ_pop_t steal;
     60                                // number of successes at poping
     61                                volatile uint64_t success;
    6562
    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;
    6965
     66                                // number of successes at poping to preferred queues
     67                                volatile uint64_t lsuccess;
     68                        } pop;
     69                } pick;
    7070                struct {
    7171                        volatile uint64_t migration;
     
    119119
    120120        struct __attribute__((aligned(128))) __stats_t {
    121                 __stats_readyQ_t ready;
     121                __stats_readQ_t ready;
    122122                #if defined(CFA_HAVE_LINUX_IO_URING_H)
    123123                        __stats_io_t    io;
Note: See TracChangeset for help on using the changeset viewer.