Changeset 88dea9d in mainline for kernel/generic/src/console/cmd.c


Ignore:
Timestamp:
2010-04-17T16:28:49Z (14 years ago)
Author:
Martin Decky <martin@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
30a5470
Parents:
5ba201d (diff), 95319bd (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent.
Message:

merge from measuring branch

File:
1 edited

Legend:

Unmodified
Added
Removed
  • kernel/generic/src/console/cmd.c

    r5ba201d r88dea9d  
    10491049        ipl_t ipl = interrupts_disable();
    10501050        spinlock_lock(&TASK->lock);
    1051         uint64_t t0 = task_get_accounting(TASK);
     1051        uint64_t ucycles0, kcycles0;
     1052        task_get_accounting(TASK, &ucycles0, &kcycles0);
    10521053        spinlock_unlock(&TASK->lock);
    10531054        interrupts_restore(ipl);
     
    10581059       
    10591060        /* Update and read thread accounting */
     1061        uint64_t ucycles1, kcycles1;
    10601062        ipl = interrupts_disable();
    10611063        spinlock_lock(&TASK->lock);
    1062         uint64_t dt = task_get_accounting(TASK) - t0;
     1064        task_get_accounting(TASK, &ucycles1, &kcycles1);
    10631065        spinlock_unlock(&TASK->lock);
    10641066        interrupts_restore(ipl);
    10651067       
    1066         uint64_t cycles;
    1067         char suffix;
    1068         order(dt, &cycles, &suffix);
    1069                
    1070         printf("Time: %" PRIu64 "%c cycles\n", cycles, suffix);
     1068        uint64_t ucycles, kcycles;
     1069        char usuffix, ksuffix;
     1070        order(ucycles1 - ucycles0, &ucycles, &usuffix);
     1071        order(kcycles1 - kcycles0, &kcycles, &ksuffix);
     1072               
     1073        printf("Time: %" PRIu64 "%c user cycles, %" PRIu64 "%c kernel cycles\n",
     1074                        ucycles, usuffix, kcycles, ksuffix);
    10711075       
    10721076        if (ret == NULL) {
     
    10831087        uint32_t i;
    10841088        bool ret = true;
    1085         uint64_t cycles;
    1086         char suffix;
     1089        uint64_t ucycles, kcycles;
     1090        char usuffix, ksuffix;
    10871091       
    10881092        if (cnt < 1)
     
    11021106                ipl_t ipl = interrupts_disable();
    11031107                spinlock_lock(&TASK->lock);
    1104                 uint64_t t0 = task_get_accounting(TASK);
     1108                uint64_t ucycles0, kcycles0;
     1109                task_get_accounting(TASK, &ucycles0, &kcycles0);
    11051110                spinlock_unlock(&TASK->lock);
    11061111                interrupts_restore(ipl);
     
    11131118                ipl = interrupts_disable();
    11141119                spinlock_lock(&TASK->lock);
    1115                 uint64_t dt = task_get_accounting(TASK) - t0;
     1120                uint64_t ucycles1, kcycles1;
     1121                task_get_accounting(TASK, &ucycles1, &kcycles1);
    11161122                spinlock_unlock(&TASK->lock);
    11171123                interrupts_restore(ipl);
    1118                
     1124
    11191125                if (ret != NULL) {
    11201126                        printf("%s\n", ret);
     
    11231129                }
    11241130               
    1125                 data[i] = dt;
    1126                 order(dt, &cycles, &suffix);
    1127                 printf("OK (%" PRIu64 "%c cycles)\n", cycles, suffix);
     1131                data[i] = ucycles1 - ucycles0 + kcycles1 - kcycles0;
     1132                order(ucycles1 - ucycles0, &ucycles, &usuffix);
     1133                order(kcycles1 - kcycles0, &kcycles, &ksuffix);
     1134                printf("OK (%" PRIu64 "%c user cycles, %" PRIu64 "%c kernel cycles)\n",
     1135                                ucycles, usuffix, kcycles, ksuffix);
    11281136        }
    11291137       
     
    11371145                }
    11381146               
    1139                 order(sum / (uint64_t) cnt, &cycles, &suffix);
    1140                 printf("Average\t\t%" PRIu64 "%c\n", cycles, suffix);
     1147                order(sum / (uint64_t) cnt, &ucycles, &usuffix);
     1148                printf("Average\t\t%" PRIu64 "%c\n", ucycles, usuffix);
    11411149        }
    11421150       
Note: See TracChangeset for help on using the changeset viewer.