Changeset f4f866c in mainline for kernel/generic/src/console/cmd.c
- Timestamp:
- 2010-04-23T21:42:26Z (15 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 6c39a907
- Parents:
- 38aaacc2 (diff), 80badbe (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
r38aaacc2 rf4f866c 66 66 #include <ipc/irq.h> 67 67 #include <ipc/event.h> 68 #include <sysinfo/sysinfo.h> 68 69 #include <symtab.h> 69 70 #include <errno.h> … … 387 388 }; 388 389 390 static int cmd_sysinfo(cmd_arg_t *argv); 391 static cmd_info_t sysinfo_info = { 392 .name = "sysinfo", 393 .description = "Dump sysinfo.", 394 .func = cmd_sysinfo, 395 .argc = 0 396 }; 397 389 398 /* Data and methods for 'zones' command */ 390 399 static int cmd_zones(cmd_arg_t *argv); … … 475 484 &set4_info, 476 485 &slabs_info, 486 &sysinfo_info, 477 487 &symaddr_info, 478 488 &sched_info, … … 868 878 } 869 879 880 /** Command for dumping sysinfo 881 * 882 * @param argv Ignores 883 * 884 * @return Always 1 885 */ 886 int cmd_sysinfo(cmd_arg_t * argv) 887 { 888 sysinfo_dump(NULL); 889 return 1; 890 } 891 870 892 871 893 /** Command for listings Thread information … … 913 935 int cmd_zones(cmd_arg_t * argv) 914 936 { 915 zone _print_list();937 zones_print_list(); 916 938 return 1; 917 939 } … … 1027 1049 ipl_t ipl = interrupts_disable(); 1028 1050 spinlock_lock(&TASK->lock); 1029 uint64_t t0 = task_get_accounting(TASK); 1051 uint64_t ucycles0, kcycles0; 1052 task_get_accounting(TASK, &ucycles0, &kcycles0); 1030 1053 spinlock_unlock(&TASK->lock); 1031 1054 interrupts_restore(ipl); … … 1036 1059 1037 1060 /* Update and read thread accounting */ 1061 uint64_t ucycles1, kcycles1; 1038 1062 ipl = interrupts_disable(); 1039 1063 spinlock_lock(&TASK->lock); 1040 uint64_t dt = task_get_accounting(TASK) - t0;1064 task_get_accounting(TASK, &ucycles1, &kcycles1); 1041 1065 spinlock_unlock(&TASK->lock); 1042 1066 interrupts_restore(ipl); 1043 1067 1044 uint64_t cycles; 1045 char suffix; 1046 order(dt, &cycles, &suffix); 1047 1048 printf("Time: %" PRIu64 "%c cycles\n", cycles, suffix); 1068 uint64_t ucycles, kcycles; 1069 char usuffix, ksuffix; 1070 order_suffix(ucycles1 - ucycles0, &ucycles, &usuffix); 1071 order_suffix(kcycles1 - kcycles0, &kcycles, &ksuffix); 1072 1073 printf("Time: %" PRIu64 "%c user cycles, %" PRIu64 "%c kernel cycles\n", 1074 ucycles, usuffix, kcycles, ksuffix); 1049 1075 1050 1076 if (ret == NULL) { … … 1061 1087 uint32_t i; 1062 1088 bool ret = true; 1063 uint64_t cycles;1064 char suffix;1089 uint64_t ucycles, kcycles; 1090 char usuffix, ksuffix; 1065 1091 1066 1092 if (cnt < 1) … … 1080 1106 ipl_t ipl = interrupts_disable(); 1081 1107 spinlock_lock(&TASK->lock); 1082 uint64_t t0 = task_get_accounting(TASK); 1108 uint64_t ucycles0, kcycles0; 1109 task_get_accounting(TASK, &ucycles0, &kcycles0); 1083 1110 spinlock_unlock(&TASK->lock); 1084 1111 interrupts_restore(ipl); … … 1091 1118 ipl = interrupts_disable(); 1092 1119 spinlock_lock(&TASK->lock); 1093 uint64_t dt = task_get_accounting(TASK) - t0; 1120 uint64_t ucycles1, kcycles1; 1121 task_get_accounting(TASK, &ucycles1, &kcycles1); 1094 1122 spinlock_unlock(&TASK->lock); 1095 1123 interrupts_restore(ipl); 1096 1124 1097 1125 if (ret != NULL) { 1098 1126 printf("%s\n", ret); … … 1101 1129 } 1102 1130 1103 data[i] = dt; 1104 order(dt, &cycles, &suffix); 1105 printf("OK (%" PRIu64 "%c cycles)\n", cycles, suffix); 1131 data[i] = ucycles1 - ucycles0 + kcycles1 - kcycles0; 1132 order_suffix(ucycles1 - ucycles0, &ucycles, &usuffix); 1133 order_suffix(kcycles1 - kcycles0, &kcycles, &ksuffix); 1134 printf("OK (%" PRIu64 "%c user cycles, %" PRIu64 "%c kernel cycles)\n", 1135 ucycles, usuffix, kcycles, ksuffix); 1106 1136 } 1107 1137 … … 1115 1145 } 1116 1146 1117 order (sum / (uint64_t) cnt, &cycles, &suffix);1118 printf("Average\t\t%" PRIu64 "%c\n", cycles,suffix);1147 order_suffix(sum / (uint64_t) cnt, &ucycles, &usuffix); 1148 printf("Average\t\t%" PRIu64 "%c\n", ucycles, usuffix); 1119 1149 } 1120 1150
Note:
See TracChangeset
for help on using the changeset viewer.