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


Ignore:
Timestamp:
2010-04-23T21:42:26Z (14 years ago)
Author:
Jiri Svoboda <jiri@…>
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.
Message:

Merge mainline changes.

File:
1 edited

Legend:

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

    r38aaacc2 rf4f866c  
    6666#include <ipc/irq.h>
    6767#include <ipc/event.h>
     68#include <sysinfo/sysinfo.h>
    6869#include <symtab.h>
    6970#include <errno.h>
     
    387388};
    388389
     390static int cmd_sysinfo(cmd_arg_t *argv);
     391static cmd_info_t sysinfo_info = {
     392        .name = "sysinfo",
     393        .description = "Dump sysinfo.",
     394        .func = cmd_sysinfo,
     395        .argc = 0
     396};
     397
    389398/* Data and methods for 'zones' command */
    390399static int cmd_zones(cmd_arg_t *argv);
     
    475484        &set4_info,
    476485        &slabs_info,
     486        &sysinfo_info,
    477487        &symaddr_info,
    478488        &sched_info,
     
    868878}
    869879
     880/** Command for dumping sysinfo
     881 *
     882 * @param argv Ignores
     883 *
     884 * @return Always 1
     885 */
     886int cmd_sysinfo(cmd_arg_t * argv)
     887{
     888        sysinfo_dump(NULL);
     889        return 1;
     890}
     891
    870892
    871893/** Command for listings Thread information
     
    913935int cmd_zones(cmd_arg_t * argv)
    914936{
    915         zone_print_list();
     937        zones_print_list();
    916938        return 1;
    917939}
     
    10271049        ipl_t ipl = interrupts_disable();
    10281050        spinlock_lock(&TASK->lock);
    1029         uint64_t t0 = task_get_accounting(TASK);
     1051        uint64_t ucycles0, kcycles0;
     1052        task_get_accounting(TASK, &ucycles0, &kcycles0);
    10301053        spinlock_unlock(&TASK->lock);
    10311054        interrupts_restore(ipl);
     
    10361059       
    10371060        /* Update and read thread accounting */
     1061        uint64_t ucycles1, kcycles1;
    10381062        ipl = interrupts_disable();
    10391063        spinlock_lock(&TASK->lock);
    1040         uint64_t dt = task_get_accounting(TASK) - t0;
     1064        task_get_accounting(TASK, &ucycles1, &kcycles1);
    10411065        spinlock_unlock(&TASK->lock);
    10421066        interrupts_restore(ipl);
    10431067       
    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);
    10491075       
    10501076        if (ret == NULL) {
     
    10611087        uint32_t i;
    10621088        bool ret = true;
    1063         uint64_t cycles;
    1064         char suffix;
     1089        uint64_t ucycles, kcycles;
     1090        char usuffix, ksuffix;
    10651091       
    10661092        if (cnt < 1)
     
    10801106                ipl_t ipl = interrupts_disable();
    10811107                spinlock_lock(&TASK->lock);
    1082                 uint64_t t0 = task_get_accounting(TASK);
     1108                uint64_t ucycles0, kcycles0;
     1109                task_get_accounting(TASK, &ucycles0, &kcycles0);
    10831110                spinlock_unlock(&TASK->lock);
    10841111                interrupts_restore(ipl);
     
    10911118                ipl = interrupts_disable();
    10921119                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);
    10941122                spinlock_unlock(&TASK->lock);
    10951123                interrupts_restore(ipl);
    1096                
     1124
    10971125                if (ret != NULL) {
    10981126                        printf("%s\n", ret);
     
    11011129                }
    11021130               
    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);
    11061136        }
    11071137       
     
    11151145                }
    11161146               
    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);
    11191149        }
    11201150       
Note: See TracChangeset for help on using the changeset viewer.