Ignore:
File:
1 edited

Legend:

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

    r941e14a rdb614d0  
    2929                stats->ready.threads.threads   = 0;
    3030                stats->ready.threads.cthreads  = 0;
    31                 stats->ready.threads.preempt.yield  = 0;
    32                 stats->ready.threads.preempt.rllfwd = 0;
    3331                stats->ready.sleep.halts   = 0;
    3432                stats->ready.sleep.cancels = 0;
    35                 stats->ready.sleep.early   = 0;
    3633                stats->ready.sleep.wakes   = 0;
    37                 stats->ready.sleep.seen    = 0;
    3834                stats->ready.sleep.exits   = 0;
    3935
     
    4743                        stats->io.submit.slow       = 0;
    4844                        stats->io.flush.external    = 0;
    49                         stats->io.flush.dirty       = 0;
    50                         stats->io.flush.full        = 0;
    51                         stats->io.flush.idle        = 0;
    52                         stats->io.flush.eager       = 0;
    5345                        stats->io.calls.flush       = 0;
    5446                        stats->io.calls.submitted   = 0;
     
    7971
    8072        void __tally_stats( struct __stats_t * cltr, struct __stats_t * proc ) {
    81                 tally_one( &cltr->ready.push.local.attempt    , &proc->ready.push.local.attempt     );
    82                 tally_one( &cltr->ready.push.local.success    , &proc->ready.push.local.success     );
    83                 tally_one( &cltr->ready.push.share.attempt    , &proc->ready.push.share.attempt     );
    84                 tally_one( &cltr->ready.push.share.success    , &proc->ready.push.share.success     );
    85                 tally_one( &cltr->ready.push.extrn.attempt    , &proc->ready.push.extrn.attempt     );
    86                 tally_one( &cltr->ready.push.extrn.success    , &proc->ready.push.extrn.success     );
    87                 tally_one( &cltr->ready.pop.local .attempt    , &proc->ready.pop.local .attempt     );
    88                 tally_one( &cltr->ready.pop.local .success    , &proc->ready.pop.local .success     );
    89                 tally_one( &cltr->ready.pop.help  .attempt    , &proc->ready.pop.help  .attempt     );
    90                 tally_one( &cltr->ready.pop.help  .success    , &proc->ready.pop.help  .success     );
    91                 tally_one( &cltr->ready.pop.steal .attempt    , &proc->ready.pop.steal .attempt     );
    92                 tally_one( &cltr->ready.pop.steal .success    , &proc->ready.pop.steal .success     );
    93                 tally_one( &cltr->ready.pop.search.attempt    , &proc->ready.pop.search.attempt     );
    94                 tally_one( &cltr->ready.pop.search.success    , &proc->ready.pop.search.success     );
    95                 tally_one( &cltr->ready.threads.migration     , &proc->ready.threads.migration      );
    96                 tally_one( &cltr->ready.threads.extunpark     , &proc->ready.threads.extunpark      );
    97                 tally_one( &cltr->ready.threads.threads       , &proc->ready.threads.threads        );
    98                 tally_one( &cltr->ready.threads.cthreads      , &proc->ready.threads.cthreads       );
    99                 tally_one( &cltr->ready.threads.preempt.yield , &proc->ready.threads.preempt.yield  );
    100                 tally_one( &cltr->ready.threads.preempt.rllfwd, &proc->ready.threads.preempt.rllfwd );
    101                 tally_one( &cltr->ready.sleep.halts           , &proc->ready.sleep.halts            );
    102                 tally_one( &cltr->ready.sleep.cancels         , &proc->ready.sleep.cancels          );
    103                 tally_one( &cltr->ready.sleep.early           , &proc->ready.sleep.early            );
    104                 tally_one( &cltr->ready.sleep.wakes           , &proc->ready.sleep.wakes            );
    105                 tally_one( &cltr->ready.sleep.seen            , &proc->ready.sleep.wakes            );
    106                 tally_one( &cltr->ready.sleep.exits           , &proc->ready.sleep.exits            );
     73                tally_one( &cltr->ready.push.local.attempt, &proc->ready.push.local.attempt );
     74                tally_one( &cltr->ready.push.local.success, &proc->ready.push.local.success );
     75                tally_one( &cltr->ready.push.share.attempt, &proc->ready.push.share.attempt );
     76                tally_one( &cltr->ready.push.share.success, &proc->ready.push.share.success );
     77                tally_one( &cltr->ready.push.extrn.attempt, &proc->ready.push.extrn.attempt );
     78                tally_one( &cltr->ready.push.extrn.success, &proc->ready.push.extrn.success );
     79                tally_one( &cltr->ready.pop.local .attempt, &proc->ready.pop.local .attempt );
     80                tally_one( &cltr->ready.pop.local .success, &proc->ready.pop.local .success );
     81                tally_one( &cltr->ready.pop.help  .attempt, &proc->ready.pop.help  .attempt );
     82                tally_one( &cltr->ready.pop.help  .success, &proc->ready.pop.help  .success );
     83                tally_one( &cltr->ready.pop.steal .attempt, &proc->ready.pop.steal .attempt );
     84                tally_one( &cltr->ready.pop.steal .success, &proc->ready.pop.steal .success );
     85                tally_one( &cltr->ready.pop.search.attempt, &proc->ready.pop.search.attempt );
     86                tally_one( &cltr->ready.pop.search.success, &proc->ready.pop.search.success );
     87                tally_one( &cltr->ready.threads.migration , &proc->ready.threads.migration  );
     88                tally_one( &cltr->ready.threads.extunpark , &proc->ready.threads.extunpark  );
     89                tally_one( &cltr->ready.threads.threads   , &proc->ready.threads.threads    );
     90                tally_one( &cltr->ready.threads.cthreads  , &proc->ready.threads.cthreads   );
     91                tally_one( &cltr->ready.sleep.halts       , &proc->ready.sleep.halts        );
     92                tally_one( &cltr->ready.sleep.cancels     , &proc->ready.sleep.cancels      );
     93                tally_one( &cltr->ready.sleep.wakes       , &proc->ready.sleep.wakes        );
     94                tally_one( &cltr->ready.sleep.exits       , &proc->ready.sleep.exits        );
    10795
    10896                #if defined(CFA_HAVE_LINUX_IO_URING_H)
     
    115103                        tally_one( &cltr->io.submit.slow      , &proc->io.submit.slow       );
    116104                        tally_one( &cltr->io.flush.external   , &proc->io.flush.external    );
    117                         tally_one( &cltr->io.flush.dirty      , &proc->io.flush.dirty       );
    118                         tally_one( &cltr->io.flush.full       , &proc->io.flush.full        );
    119                         tally_one( &cltr->io.flush.idle       , &proc->io.flush.idle        );
    120                         tally_one( &cltr->io.flush.eager      , &proc->io.flush.eager       );
    121105                        tally_one( &cltr->io.calls.flush      , &proc->io.calls.flush       );
    122106                        tally_one( &cltr->io.calls.submitted  , &proc->io.calls.submitted   );
     
    169153                             | " (" | eng3(ready.pop.search.attempt) | " try)";
    170154
    171                         sstr | "- Idle Slp : " | eng3(ready.sleep.halts) | "halt," | eng3(ready.sleep.cancels) | "cancel,"
    172                              | eng3(ready.sleep.wakes + ready.sleep.early) | '(' | eng3(ready.sleep.early) | ',' | eng3(ready.sleep.seen) | ')' | " wake(early, seen),"
    173                              | eng3(ready.sleep.exits) | "exit";
    174                         sstr | "- Preemption : " | eng3(ready.threads.preempt.yield) | "yields," | eng3(ready.threads.preempt.rllfwd) | "delayed";
     155                        sstr | "- Idle Slp : " | eng3(ready.sleep.halts) | "halt," | eng3(ready.sleep.cancels) | "cancel," | eng3(ready.sleep.wakes) | "wake," | eng3(ready.sleep.exits) | "exit";
    175156                        sstr | nl;
    176157                }
     
    197178                                if(io.alloc.fail || io.alloc.revoke || io.alloc.block)
    198179                                        sstr | "-     failures      : " | eng3(io.alloc.fail) | "oom, " | eng3(io.alloc.revoke) | "rvk, " | eng3(io.alloc.block) | "blk";
    199                                 // if(io.flush.external)
    200                                 //      sstr | "- flush external    : " | eng3(io.flush.external);
     180                                if(io.flush.external)
     181                                        sstr | "- flush external    : " | eng3(io.flush.external);
    201182
    202183                                double avgsubs = ((double)io.calls.submitted) / io.calls.flush;
    203184                                double avgcomp = ((double)io.calls.completed) / io.calls.drain;
    204185                                sstr | "- syscll : "
    205                                      |   " sub " | eng3(io.calls.submitted) | "/" | eng3(io.calls.flush) | "(" | ws(3, 3, avgsubs) | "/flush)"
    206                                      | " - cmp " | eng3(io.calls.completed) | "/" | eng3(io.calls.drain) | "(" | ws(3, 3, avgcomp) | "/drain)"
     186                                     |   " sub " | eng3(io.calls.flush) | "/" | eng3(io.calls.submitted) | "(" | ws(3, 3, avgsubs) | "/flush)"
     187                                     | " - cmp " | eng3(io.calls.drain) | "/" | eng3(io.calls.completed) | "(" | ws(3, 3, avgcomp) | "/drain)"
    207188                                     | " - " | eng3(io.calls.errors.busy) | " EBUSY";
    208                                 sstr | " - sub: " | eng3(io.flush.full) | "full, " | eng3(io.flush.dirty) | "drty, " | eng3(io.flush.idle) | "idle, " | eng3(io.flush.eager) | "eagr, " | eng3(io.flush.external) | "ext";
    209189                                sstr | "- ops blk: "
    210190                                     |   " sk rd: " | eng3(io.ops.sockread)  | "epll: " | eng3(io.ops.epllread)
Note: See TracChangeset for help on using the changeset viewer.