Changeset 01c6256


Ignore:
Timestamp:
Aug 11, 2020, 1:54:30 PM (4 years ago)
Author:
Thierry Delisle <tdelisle@…>
Branches:
ADT, arm-eh, ast-experimental, enum, forall-pointer-decay, jacob/cs343-translation, master, new-ast, new-ast-unique-expr, pthread-emulation, qualifiedEnum
Children:
9f1c286
Parents:
e857743
Message:

Adjsuted benchmarks to new io_ctxs

Location:
benchmark
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • benchmark/benchcltr.hfa

    re857743 r01c6256  
    11#pragma once
     2#include <assert.h>
     3#include <stdint.h>
    24
    3 #include <assert.h>
    4 #include <kernel.hfa>
    5 #include <thread.hfa>
    6 #include <stats.hfa>
     5#ifdef __cforall
     6        #include <kernel.hfa>
     7        #include <thread.hfa>
     8        #include <stats.hfa>
     9#else
     10#include <time.h>                                                                               // timespec
     11#include <sys/time.h>                                                                   // timeval
     12
     13enum { TIMEGRAN = 1000000000LL };                                       // nanosecond granularity, except for timeval
     14#endif
    715
    816#define BENCH_OPT_SHORT "d:p:t:SPV"
     
    5563bool procstats = false;
    5664bool viewhalts = false;
     65
     66#ifdef __cforall
    5767struct cluster * the_benchmark_cluster = 0p;
    5868struct BenchCluster {
     
    6070};
    6171
    62 void ?{}( BenchCluster & this, int flags, int stats ) {
    63         (this.self){ "Benchmark Cluster", flags };
     72void ?{}( BenchCluster & this, int num_io, const io_context_params & io_params, int stats ) {
     73        (this.self){ "Benchmark Cluster", num_io, io_params };
    6474
    6575        assert( the_benchmark_cluster == 0p );
     
    105115        }
    106116}
     117#else
     118uint64_t getTimeNsec() {
     119        timespec curr;
     120        clock_gettime( CLOCK_REALTIME, &curr );
     121        return (int64_t)curr.tv_sec * TIMEGRAN + curr.tv_nsec;
     122}
     123
     124uint64_t to_miliseconds( uint64_t durtn ) { return durtn / (TIMEGRAN / 1000LL); }
     125double to_fseconds(uint64_t durtn ) { return durtn / (double)TIMEGRAN; }
     126uint64_t from_fseconds(double sec) { return sec * TIMEGRAN; }
     127
     128
     129void wait_duration(double duration, uint64_t & start, uint64_t & end, bool is_tty) {
     130        for(;;) {
     131                usleep(100000);
     132                end = getTimeNsec();
     133                uint64_t delta = end - start;
     134                /*if(is_tty)*/ {
     135                        printf(" %.1f\r", to_fseconds(delta));
     136                        fflush(stdout);
     137                }
     138                if( delta >= from_fseconds(duration) ) {
     139                        break;
     140                }
     141        }
     142}
     143#endif
     144
    107145
    108146void bench_usage( char * argv [] ) {
  • benchmark/io/readv.cfa

    re857743 r01c6256  
    4040int do_read(int fd, struct iovec * iov) {
    4141        // extern ssize_t cfa_preadv2(int, const struct iovec *, int, off_t, int, int = 0, Duration = -1`s, io_cancellation * = 0p, io_context * = 0p);
    42         int sflags = 0;
     42        int sflags = 0
     43        #if defined(CFA_HAVE_IOSQE_ASYNC)
     44                | CFA_IO_ASYNC
     45        #else
     46        #warning no CFA_IO_ASYNC support
     47        #endif
     48        ;
    4349        if(fixed_file) {
    4450                sflags |= CFA_IO_FIXED_FD1;
     
    130136                                bench_usage( argv );
    131137                                fprintf( stderr, "  -b, --buflen=SIZE        Number of bytes to read per request\n" );
    132                                 fprintf( stderr, "  -u, --userthread         If set, cluster uses user-thread to poll I/O\n" );
    133138                                fprintf( stderr, "  -s, --submitthread       If set, cluster uses polling thread to submit I/O\n" );
    134139                                fprintf( stderr, "  -e, --eagersubmit        If set, cluster submits I/O eagerly but still aggregates submits\n" );
     
    139144                }
    140145        }
     146
     147        if(params.poll_submit  ) fixed_file = true;
     148        if(params.poll_complete) file_flags |= O_DIRECT;
    141149
    142150        int lfd = open(__FILE__, file_flags);
  • benchmark/readyQ/yield.cfa

    re857743 r01c6256  
    4444int main(int argc, char * argv[]) {
    4545        BENCH_DECL
     46        unsigned num_io = 1;
     47        io_context_params params;
    4648
    4749        for(;;) {
     
    7375
    7476                Time start, end;
    75                 BenchCluster cl = { 0, CFA_STATS_READY_Q };
     77                BenchCluster cl = { num_io, params, CFA_STATS_READY_Q };
    7678                {
    7779                        BenchProc procs[nprocs];
Note: See TracChangeset for help on using the changeset viewer.