Changeset 1ba37fa in mainline for kernel/generic/src/console/cmd.c
- Timestamp:
- 2010-04-06T11:53:32Z (15 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 516adce
- Parents:
- f0dcdc5
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/generic/src/console/cmd.c
rf0dcdc5 r1ba37fa 1027 1027 ipl_t ipl = interrupts_disable(); 1028 1028 spinlock_lock(&TASK->lock); 1029 uint64_t ucycles , kcycles;1030 uint64_t t0 = task_get_accounting(TASK, &ucycles, &kcycles);1029 uint64_t ucycles0, kcycles0; 1030 task_get_accounting(TASK, &ucycles0, &kcycles0); 1031 1031 spinlock_unlock(&TASK->lock); 1032 1032 interrupts_restore(ipl); … … 1037 1037 1038 1038 /* Update and read thread accounting */ 1039 uint64_t ucycles1, kcycles1; 1039 1040 ipl = interrupts_disable(); 1040 1041 spinlock_lock(&TASK->lock); 1041 uint64_t dt = task_get_accounting(TASK, &ucycles, &kcycles) - t0;1042 task_get_accounting(TASK, &ucycles1, &kcycles1); 1042 1043 spinlock_unlock(&TASK->lock); 1043 1044 interrupts_restore(ipl); 1044 1045 1045 uint64_t cycles; 1046 char suffix; 1047 order(dt, &cycles, &suffix); 1048 1049 printf("Time: %" PRIu64 "%c cycles\n", cycles, suffix); 1046 uint64_t ucycles, kcycles; 1047 char usuffix, ksuffix; 1048 order(ucycles1 - ucycles0, &ucycles, &usuffix); 1049 order(kcycles1 - kcycles0, &kcycles, &ksuffix); 1050 1051 printf("Time: %" PRIu64 "%c user cycles, %" PRIu64 "%c kernel cycles\n", 1052 ucycles, usuffix, kcycles, ksuffix); 1050 1053 1051 1054 if (ret == NULL) { … … 1062 1065 uint32_t i; 1063 1066 bool ret = true; 1064 uint64_t cycles;1065 char suffix;1067 uint64_t ucycles, kcycles; 1068 char usuffix, ksuffix; 1066 1069 1067 1070 if (cnt < 1) … … 1081 1084 ipl_t ipl = interrupts_disable(); 1082 1085 spinlock_lock(&TASK->lock); 1083 uint64_t ucycles , kcycles;1084 uint64_t t0 = task_get_accounting(TASK, &ucycles, &kcycles);1086 uint64_t ucycles0, kcycles0; 1087 task_get_accounting(TASK, &ucycles0, &kcycles0); 1085 1088 spinlock_unlock(&TASK->lock); 1086 1089 interrupts_restore(ipl); … … 1093 1096 ipl = interrupts_disable(); 1094 1097 spinlock_lock(&TASK->lock); 1095 uint64_t dt = task_get_accounting(TASK, &ucycles, &kcycles) - t0; 1098 uint64_t ucycles1, kcycles1; 1099 task_get_accounting(TASK, &ucycles1, &kcycles1); 1096 1100 spinlock_unlock(&TASK->lock); 1097 1101 interrupts_restore(ipl); 1098 1102 1099 1103 if (ret != NULL) { 1100 1104 printf("%s\n", ret); … … 1103 1107 } 1104 1108 1105 data[i] = dt; 1106 order(dt, &cycles, &suffix); 1107 printf("OK (%" PRIu64 "%c cycles)\n", cycles, suffix); 1109 data[i] = ucycles1 - ucycles0 + kcycles1 - kcycles0; 1110 order(ucycles1 - ucycles0, &ucycles, &usuffix); 1111 order(kcycles1 - kcycles0, &kcycles, &ksuffix); 1112 printf("OK (%" PRIu64 "%c user cycles, %" PRIu64 "%c kernel cycles)\n", 1113 ucycles, usuffix, kcycles, ksuffix); 1108 1114 } 1109 1115 … … 1117 1123 } 1118 1124 1119 order(sum / (uint64_t) cnt, & cycles, &suffix);1120 printf("Average\t\t%" PRIu64 "%c\n", cycles,suffix);1125 order(sum / (uint64_t) cnt, &ucycles, &usuffix); 1126 printf("Average\t\t%" PRIu64 "%c\n", ucycles, usuffix); 1121 1127 } 1122 1128
Note:
See TracChangeset
for help on using the changeset viewer.