Changeset 88dea9d in mainline for kernel/generic/src/console/cmd.c
- Timestamp:
- 2010-04-17T16:28:49Z (15 years ago)
- 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. - File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/generic/src/console/cmd.c
r5ba201d r88dea9d 1049 1049 ipl_t ipl = interrupts_disable(); 1050 1050 spinlock_lock(&TASK->lock); 1051 uint64_t t0 = task_get_accounting(TASK); 1051 uint64_t ucycles0, kcycles0; 1052 task_get_accounting(TASK, &ucycles0, &kcycles0); 1052 1053 spinlock_unlock(&TASK->lock); 1053 1054 interrupts_restore(ipl); … … 1058 1059 1059 1060 /* Update and read thread accounting */ 1061 uint64_t ucycles1, kcycles1; 1060 1062 ipl = interrupts_disable(); 1061 1063 spinlock_lock(&TASK->lock); 1062 uint64_t dt = task_get_accounting(TASK) - t0;1064 task_get_accounting(TASK, &ucycles1, &kcycles1); 1063 1065 spinlock_unlock(&TASK->lock); 1064 1066 interrupts_restore(ipl); 1065 1067 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); 1071 1075 1072 1076 if (ret == NULL) { … … 1083 1087 uint32_t i; 1084 1088 bool ret = true; 1085 uint64_t cycles;1086 char suffix;1089 uint64_t ucycles, kcycles; 1090 char usuffix, ksuffix; 1087 1091 1088 1092 if (cnt < 1) … … 1102 1106 ipl_t ipl = interrupts_disable(); 1103 1107 spinlock_lock(&TASK->lock); 1104 uint64_t t0 = task_get_accounting(TASK); 1108 uint64_t ucycles0, kcycles0; 1109 task_get_accounting(TASK, &ucycles0, &kcycles0); 1105 1110 spinlock_unlock(&TASK->lock); 1106 1111 interrupts_restore(ipl); … … 1113 1118 ipl = interrupts_disable(); 1114 1119 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); 1116 1122 spinlock_unlock(&TASK->lock); 1117 1123 interrupts_restore(ipl); 1118 1124 1119 1125 if (ret != NULL) { 1120 1126 printf("%s\n", ret); … … 1123 1129 } 1124 1130 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); 1128 1136 } 1129 1137 … … 1137 1145 } 1138 1146 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); 1141 1149 } 1142 1150
Note:
See TracChangeset
for help on using the changeset viewer.