Ignore:
File:
1 edited

Legend:

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

    r1ba37fa rb3631bc  
    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, 0);
     889        return 1;
     890}
     891
    870892
    871893/** Command for listings Thread information
     
    10271049        ipl_t ipl = interrupts_disable();
    10281050        spinlock_lock(&TASK->lock);
    1029         uint64_t ucycles0, kcycles0;
    1030         task_get_accounting(TASK, &ucycles0, &kcycles0);
     1051        uint64_t t0 = task_get_accounting(TASK);
    10311052        spinlock_unlock(&TASK->lock);
    10321053        interrupts_restore(ipl);
     
    10371058       
    10381059        /* Update and read thread accounting */
    1039         uint64_t ucycles1, kcycles1;
    10401060        ipl = interrupts_disable();
    10411061        spinlock_lock(&TASK->lock);
    1042         task_get_accounting(TASK, &ucycles1, &kcycles1);
     1062        uint64_t dt = task_get_accounting(TASK) - t0;
    10431063        spinlock_unlock(&TASK->lock);
    10441064        interrupts_restore(ipl);
    10451065       
    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);
     1066        uint64_t cycles;
     1067        char suffix;
     1068        order(dt, &cycles, &suffix);
     1069               
     1070        printf("Time: %" PRIu64 "%c cycles\n", cycles, suffix);
    10531071       
    10541072        if (ret == NULL) {
     
    10651083        uint32_t i;
    10661084        bool ret = true;
    1067         uint64_t ucycles, kcycles;
    1068         char usuffix, ksuffix;
     1085        uint64_t cycles;
     1086        char suffix;
    10691087       
    10701088        if (cnt < 1)
     
    10841102                ipl_t ipl = interrupts_disable();
    10851103                spinlock_lock(&TASK->lock);
    1086                 uint64_t ucycles0, kcycles0;
    1087                 task_get_accounting(TASK, &ucycles0, &kcycles0);
     1104                uint64_t t0 = task_get_accounting(TASK);
    10881105                spinlock_unlock(&TASK->lock);
    10891106                interrupts_restore(ipl);
     
    10961113                ipl = interrupts_disable();
    10971114                spinlock_lock(&TASK->lock);
    1098                 uint64_t ucycles1, kcycles1;
    1099                 task_get_accounting(TASK, &ucycles1, &kcycles1);
     1115                uint64_t dt = task_get_accounting(TASK) - t0;
    11001116                spinlock_unlock(&TASK->lock);
    11011117                interrupts_restore(ipl);
    1102 
     1118               
    11031119                if (ret != NULL) {
    11041120                        printf("%s\n", ret);
     
    11071123                }
    11081124               
    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);
     1125                data[i] = dt;
     1126                order(dt, &cycles, &suffix);
     1127                printf("OK (%" PRIu64 "%c cycles)\n", cycles, suffix);
    11141128        }
    11151129       
     
    11231137                }
    11241138               
    1125                 order(sum / (uint64_t) cnt, &ucycles, &usuffix);
    1126                 printf("Average\t\t%" PRIu64 "%c\n", ucycles, usuffix);
     1139                order(sum / (uint64_t) cnt, &cycles, &suffix);
     1140                printf("Average\t\t%" PRIu64 "%c\n", cycles, suffix);
    11271141        }
    11281142       
Note: See TracChangeset for help on using the changeset viewer.