Changeset d0c82c5 in mainline for uspace/app


Ignore:
Timestamp:
2010-06-16T19:44:53Z (15 years ago)
Author:
Martin Decky <martin@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
5387807
Parents:
5954241
Message:

perfect CPU cycles accounting, cherry-picked and adopted from lp:~ersin/helenos/measure2

Location:
uspace/app
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • uspace/app/tasks/tasks.c

    r5954241 rd0c82c5  
    165165        for (i = 0; i < count; i++) {
    166166                if (cpus[i].active) {
    167                         printf("cpu%u: %" PRIu16 " MHz, busy ticks: "
    168                             "%" PRIu64 ", idle ticks: %" PRIu64 "\n",
    169                             cpus[i].id, cpus[i].frequency_mhz, cpus[i].busy_ticks,
    170                             cpus[i].idle_ticks);
     167                        printf("cpu%u: %" PRIu16 " MHz, busy cycles: "
     168                            "%" PRIu64 ", idle cycles: %" PRIu64 "\n",
     169                            cpus[i].id, cpus[i].frequency_mhz, cpus[i].busy_cycles,
     170                            cpus[i].idle_cycles);
    171171                } else {
    172172                        printf("cpu%u: inactive\n", cpus[i].id);
  • uspace/app/top/screen.c

    r5954241 rd0c82c5  
    222222        for (i = 0; i < data->cpus_count; i++) {
    223223                if (data->cpus[i].active) {
    224                         printf("cpu%u (%4" PRIu16 " MHz): busy ticks: "
    225                             "%" PRIu64 ", idle ticks: %" PRIu64,
     224                        uint64_t busy;
     225                        uint64_t idle;
     226                        char busy_suffix;
     227                        char idle_suffix;
     228                       
     229                        order_suffix(data->cpus[i].busy_cycles, &busy, &busy_suffix);
     230                        order_suffix(data->cpus[i].idle_cycles, &idle, &idle_suffix);
     231                       
     232                        printf("cpu%u (%4" PRIu16 " MHz): busy cycles: "
     233                            "%" PRIu64 "%c, idle cycles: %" PRIu64 "%c",
    226234                            data->cpus[i].id, data->cpus[i].frequency_mhz,
    227                             data->cpus[i].busy_ticks, data->cpus[i].idle_ticks);
     235                            busy, busy_suffix, idle, idle_suffix);
    228236                        puts(", idle: ");
    229237                        print_percent(data->cpus_perc[i].idle, 2);
  • uspace/app/top/top.c

    r5954241 rd0c82c5  
    175175        }
    176176       
    177         /* For each CPU: Compute total ticks and divide it between
     177        /* For each CPU: Compute total cycles and divide it between
    178178           user and kernel */
    179179       
     
    181181        for (i = 0; i < new_data->cpus_count; i++) {
    182182                uint64_t idle =
    183                     new_data->cpus[i].idle_ticks - old_data->cpus[i].idle_ticks;
     183                    new_data->cpus[i].idle_cycles - old_data->cpus[i].idle_cycles;
    184184                uint64_t busy =
    185                     new_data->cpus[i].busy_ticks - old_data->cpus[i].busy_ticks;
     185                    new_data->cpus[i].busy_cycles - old_data->cpus[i].busy_cycles;
    186186                uint64_t sum = idle + busy;
    187187               
Note: See TracChangeset for help on using the changeset viewer.