示例#1
0
cpus_t *read_force_affinity(int n_avail, int verbose) {
  int sz = n_avail <= 1 ? 1 : n_avail ;
  tsc_t max = sec / 100 ;

  for ( ; ; ) {
    warm_up(sz+1,max) ;
    cpus_t *r = read_affinity() ;
    if (n_avail <= r->sz) return r ;
    if (verbose) {
      fprintf(stderr,"Read affinity: '") ;
      cpus_dump(stderr,r) ;
      fprintf(stderr,"'\n") ;
    }
    cpus_free(r) ;
  }
}
示例#2
0
void force_one_affinity(int a, int sz,int verbose, char *name) {
  if (a >= 0) {
    cpu_set_t mask;
    int r ;
    CPU_ZERO(&mask) ;
    CPU_SET(a,&mask) ;
    do {
      r = pthread_setaffinity_np(pthread_self(), sizeof(mask), &mask) ;
      if (r != 0) {
        if (verbose)
          fprintf(stderr,"%s: force %i failed\n",name,a) ;
        int nwarm = get_present() ;
        if (verbose > 1)
          fprintf(stderr,"%s: present=%i\n",name,nwarm) ;
        if (nwarm < 0) nwarm = sz+1 ;
        warm_up(nwarm,sec/100) ;
      }
    } while (r != 0) ;
  }
}
示例#3
0
/**
* Run the simulation taking stats for some batches.
*
* The simulation are split in three phases:
* Warm-up, Convergency assurement & Stationary state.
* 
* @see warm_up()
* @see convergency()
* @see stationary()
*/
void run_network_batch(void){
	warm_up();
	convergency();
	stationary();
}