Changes in / [b5ec090:63b3279e]


Ignore:
Files:
1 deleted
7 edited

Legend:

Unmodified
Added
Removed
  • benchmark/Cargo.toml.in

    rb5ec090 r63b3279e  
    1212name = "rdq-locality-tokio"
    1313path = "@abs_srcdir@/readyQ/locality.rs"
    14 
    15 [[bin]]
    16 name = "rdq-transfer-tokio"
    17 path = "@abs_srcdir@/readyQ/transfer.rs"
    1814
    1915[[bin]]
  • benchmark/Makefile.am

    rb5ec090 r63b3279e  
    600600        rdq-locality-go \
    601601        rdq-locality-fibre \
    602         rdq-transfer-cfa \
    603         rdq-transfer-tokio
     602        rdq-transfer-cfa
    604603
    605604rdq-benches:
  • benchmark/bench.rs

    rb5ec090 r63b3279e  
    11use std::io::{self, Write};
    2 use std::option;
    32use std::sync::atomic::{AtomicU64, AtomicBool, Ordering};
    43use std::time::{Instant,Duration};
    5 use std::u128;
    64
    75use clap::{Arg, ArgMatches};
     
    2927
    3028impl BenchData {
    31         pub fn new(options: ArgMatches, nthreads: usize, default_it: option::Option<u64>) -> BenchData {
     29        pub fn new(options: ArgMatches, nthreads: usize) -> BenchData {
    3230                let (clock_mode, stop_count, duration) = if options.is_present("iterations") {
    3331                        (false,
    3432                        options.value_of("iterations").unwrap().parse::<u64>().unwrap(),
    35                         -1.0)
    36                 } else if !default_it.is_none() {
    37                         (false,
    38                         default_it.unwrap(),
    3933                        -1.0)
    4034                } else {
     
    5448        }
    5549
    56         #[allow(dead_code)]
    5750        pub async fn wait(&self, start: &Instant) -> Duration{
    5851                loop {
     
    7669}
    7770
    78 // ==================================================
    79 pub fn _lehmer64( state: &mut u128 ) -> u64 {
    80         *state = state.wrapping_mul(0xda942042e4dd58b5);
    81         return (*state >> 64) as u64;
    82 }
  • benchmark/readyQ/cycle.rs

    rb5ec090 r63b3279e  
    4646
    4747        let tthreads = nthreads * ring_size;
    48         let exp = Arc::new(bench::BenchData::new(options, tthreads, None));
     48        let exp = Arc::new(bench::BenchData::new(options, tthreads));
    4949
    5050        let s = (1000000 as u64).to_formatted_string(&Locale::en);
  • benchmark/readyQ/locality.rs

    rb5ec090 r63b3279e  
    285285        assert_eq!(&s, "1,000,000");
    286286
    287         let exp = Arc::new(bench::BenchData::new(options, nprocs, None));
     287        let exp = Arc::new(bench::BenchData::new(options, nprocs));
    288288        let mut results = Result::new();
    289289
  • benchmark/readyQ/yield.rs

    rb5ec090 r63b3279e  
    4444        let nprocs    = options.value_of("nprocs").unwrap().parse::<usize>().unwrap();
    4545
    46         let exp = Arc::new(bench::BenchData::new(options, nthreads, None));
     46        let exp = Arc::new(bench::BenchData::new(options, nthreads));
    4747
    4848        let s = (1000000 as u64).to_formatted_string(&Locale::en);
     
    5050
    5151        let thddata : Arc<Vec<Arc<Yielder>>> = Arc::new(
    52                 (0..nthreads).map(|_i| {
     52                (0..nthreads).map(|i| {
     53                        let pi = (i + nthreads) % nthreads;
    5354                        Arc::new(Yielder{
    5455                                sem: sync::Semaphore::new(0),
  • libcfa/src/concurrency/kernel.cfa

    rb5ec090 r63b3279e  
    231231                                __cfadbg_print_safe(runtime_core, "Kernel : core %p waiting on eventfd %d\n", this, this->idle);
    232232
    233                                 {
    234                                         eventfd_t val;
    235                                         ssize_t ret = read( this->idle, &val, sizeof(val) );
    236                                         if(ret < 0) {
    237                                                 switch((int)errno) {
    238                                                 case EAGAIN:
    239                                                 #if EAGAIN != EWOULDBLOCK
    240                                                         case EWOULDBLOCK:
    241                                                 #endif
    242                                                 case EINTR:
    243                                                         // No need to do anything special here, just assume it's a legitimate wake-up
    244                                                         break;
    245                                                 default:
    246                                                         abort( "KERNEL : internal error, read failure on idle eventfd, error(%d) %s.", (int)errno, strerror( (int)errno ) );
    247                                                 }
    248                                         }
    249                                 }
     233                                __disable_interrupts_hard();
     234                                eventfd_t val;
     235                                eventfd_read( this->idle, &val );
     236                                __enable_interrupts_hard();
    250237
    251238                                #if !defined(__CFA_NO_STATISTICS__)
Note: See TracChangeset for help on using the changeset viewer.