Changes in / [8631c84:f5bace8]


Ignore:
Location:
libcfa/src/concurrency
Files:
5 edited

Legend:

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

    r8631c84 rf5bace8  
    111111                // Drain the queue
    112112                if(!__atomic_try_acquire(&ctx->cq.lock)) {
     113                        __STATS__( false, io.calls.locked++; )
    113114                        return false;
    114115                }
     
    191192                                        if(age > cutoff) {
    192193                                                remote = __cfa_do_drain( io.data[target], cltr );
     194                                                if(remote) __STATS__( false, io.calls.helped++; )
    193195                                        }
    194196                                }
  • libcfa/src/concurrency/kernel.cfa

    r8631c84 rf5bace8  
    684684
    685685static void idle_sleep(processor * this, io_future_t & future, iovec & iov) {
     686        /* paranoid */ verify( this->idle_wctx.evfd != 1 );
     687        /* paranoid */ verify( this->idle_wctx.evfd != 2 );
     688
    686689        // Tell everyone we are ready to go do sleep
    687690        for() {
     
    901904        void print_stats_now( cluster & this, int flags ) {
    902905                crawl_cluster_stats( this );
    903                 __print_stats( this.stats, this.print_stats, "Cluster", this.name, (void*)&this );
     906                __print_stats( this.stats, flags, "Cluster", this.name, (void*)&this );
    904907        }
    905908#endif
  • libcfa/src/concurrency/kernel/fwd.hfa

    r8631c84 rf5bace8  
    248248                        // check if the future is available
    249249                        bool available( future_t & this ) {
     250                                while( this.ptr == 2p ) Pause();
    250251                                return this.ptr == 1p;
    251252                        }
  • libcfa/src/concurrency/stats.cfa

    r8631c84 rf5bace8  
    5555                        stats->io.calls.drain       = 0;
    5656                        stats->io.calls.completed   = 0;
     57                        stats->io.calls.locked      = 0;
     58                        stats->io.calls.helped      = 0;
    5759                        stats->io.calls.errors.busy = 0;
    5860                        stats->io.ops.sockread      = 0;
     
    123125                        tally_one( &cltr->io.calls.drain      , &proc->io.calls.drain       );
    124126                        tally_one( &cltr->io.calls.completed  , &proc->io.calls.completed   );
     127                        tally_one( &cltr->io.calls.locked     , &proc->io.calls.locked      );
     128                        tally_one( &cltr->io.calls.helped     , &proc->io.calls.helped      );
    125129                        tally_one( &cltr->io.calls.errors.busy, &proc->io.calls.errors.busy );
    126130                        tally_one( &cltr->io.ops.sockread     , &proc->io.ops.sockread      );
     
    205209                                     |   " sub " | eng3(io.calls.submitted) | "/" | eng3(io.calls.flush) | "(" | ws(3, 3, avgsubs) | "/flush)"
    206210                                     | " - cmp " | eng3(io.calls.completed) | "/" | eng3(io.calls.drain) | "(" | ws(3, 3, avgcomp) | "/drain)"
     211                                     | " - cmp " | eng3(io.calls.locked) | "locked, " | eng3(io.calls.helped) | "helped"
    207212                                     | " - " | eng3(io.calls.errors.busy) | " EBUSY";
    208213                                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";
  • libcfa/src/concurrency/stats.hfa

    r8631c84 rf5bace8  
    103103                                volatile uint64_t drain;
    104104                                volatile uint64_t completed;
     105                                volatile uint64_t locked;
     106                                volatile uint64_t helped;
    105107                                volatile uint64_t flush;
    106108                                volatile uint64_t submitted;
Note: See TracChangeset for help on using the changeset viewer.