Ejemplo n.º 1
0
/* This is the default screen, it uses only target-independent
   counters defined in the Linux header file. */
static screen_t* default_screen(const struct option* options)
{
  screen_t* s = new_screen("default", "Screen by default", 1);

  /* setup counters */
  add_counter_by_value(s, "CYCLE", PERF_COUNT_HW_CPU_CYCLES,    PERF_TYPE_HARDWARE);
  add_counter_by_value(s, "INSN",  PERF_COUNT_HW_INSTRUCTIONS,  PERF_TYPE_HARDWARE);
  add_counter_by_value(s, "MISS",  PERF_COUNT_HW_CACHE_MISSES,  PERF_TYPE_HARDWARE);
  add_counter_by_value(s, "BR",    PERF_COUNT_HW_BRANCH_MISSES, PERF_TYPE_HARDWARE);
  add_counter_by_value(s, "BUS",   PERF_COUNT_HW_BUS_CYCLES,    PERF_TYPE_HARDWARE);

  /* add columns */
  add_column(s, " %CPU", "%5.1f", "Total CPU usage", "CPU_TOT");
  add_column(s, " %SYS", "%5.1f", "System CPU usage", "CPU_SYS");
  add_column(s, "   P", "  %2.0f", "Processor where last seen", "PROC_ID");
  if (!options->show_threads) add_column(s, " #TH", "  %2.0f", "Number of threads in process", "NUM_THREADS");
  add_column(s, "  Mcycle", "%8.2f", "Cycles (millions)",
             "delta(CYCLE) / 1e6");
  add_column(s, "  Minstr", "%8.2f", "Instructions (millions)",
             "delta(INSN) / 1e6");
  add_column(s, "  IPC",     " %4.2f", "Executed instructions per cycle",
             "delta(INSN)/delta(CYCLE)");
  add_column(s, " %MISS",   "%6.2f", "Cache miss per 100 instructions",
             "100*delta(MISS)/delta(INSN)");
  add_column(s, " %BMIS",   "%6.2f", "Mispredicted branches per 100 instructions",
             "100*delta(BR)/delta(INSN)");
  add_column(s, " %BUS",    "%5.1f", "Bus cycles per executed instruction",
             "delta(BUS)/delta(INSN)");
  return s;
}
Ejemplo n.º 2
0
Archivo: main.c Proyecto: Touzen/snake
void init() {
    screen = new_screen();

    int x_pos = screen->max_x/2;
    int y_pos = screen->max_y/2;
    snake = new_snake(x_pos, y_pos);

    move_list = new_move_list();

    int i;
    food_list = new_food_list();
    for(i = 0; i < FOOD_COUNT; i++) {
        add_food(screen->max_x, screen->max_y, food_list);
    }
}
Ejemplo n.º 3
0
static screen_t* branch_pred_screen()
{
  screen_t* s = new_screen("branch", "Branch prediction statistics", 1);

  /* setup counters */
  add_counter_by_value(s, "INSTR", PERF_COUNT_HW_INSTRUCTIONS, PERF_TYPE_HARDWARE);
  add_counter_by_value(s, "BR", PERF_COUNT_HW_BRANCH_INSTRUCTIONS, PERF_TYPE_HARDWARE);
  add_counter_by_value(s, "BMISS", PERF_COUNT_HW_BRANCH_MISSES, PERF_TYPE_HARDWARE);

  /* add columns */
  add_column(s, "  %CPU", " %5.1f", "CPU usage", "CPU_TOT");
  add_column(s, "   %MIS/I", "   %6.2f",
             "Mispredictions per 100 instructions",
             "100 * delta(BMISS) / delta(INSTR)");

  add_column(s, "   %MISP", "   %5.2f",
             "Mispredictions per 100 branch instructions",
             "100 * delta(BMISS) / delta(BR)");

  add_column(s, "  %BR/I", "  %5.1f",
             "Proportion of branch instructions",
             "100 * delta(BR) / delta(INSTR)");
  return s;
}
Ejemplo n.º 4
0
int main(int argc, char *argv[]) {
    signal(SIGINT, sighandler);
    if (argc > 1) {
        #ifdef DEBUG
        print_debug("Got file argument: %s", argv[1]);
        #endif
        FILE *file = fopen(argv[1], "r");
        if (file == NULL) {
            print_error("Could not open file for reading: %s", argv[1]);
            exit(EXIT_FAILURE);
        }
        struct matrix *mat = new_matrix(4, 1);
        screen s = new_screen();
        struct matrix *trans_mat = new_matrix(4,4);
        synchronize_variables(file, trans_mat, mat, s);
        parse_file(1);
        free_variables();
        exit(EXIT_SUCCESS);
    }

    printf("Usage: ./main [script-file]\n");

    return 0;
}