Fork us on GitHub Follow us on Facebook Follow us on Twitter

Changeset 516adce in mainline


Ignore:
Timestamp:
2010-04-07T10:24:00Z (12 years ago)
Author:
Stanislav Kozina <stanislav.kozina@…>
Branches:
lfn, master
Children:
36b5b0f
Parents:
1ba37fa
Message:

top echoes also physical memory overview

Files:
5 added
13 edited
1 moved

Legend:

Unmodified
Added
Removed
  • kernel/Makefile

    r1ba37fa r516adce  
    233233        generic/src/ps/cpu.c \
    234234        generic/src/ps/load.c \
    235         generic/src/ps/uptime.c
     235        generic/src/ps/uptime.c \
     236        generic/src/ps/mem.c
    236237
    237238## Kernel console support
  • kernel/generic/include/mm/frame.h

    r1ba37fa r516adce  
    170170extern void zone_merge_all(void);
    171171extern uint64_t zone_total_size(void);
     172extern void zone_busy_and_free(uint64_t *out_busy, uint64_t *out_free);
    172173
    173174/*
  • kernel/generic/include/ps/ps.h

    r1ba37fa r516adce  
    3838#include <ps/taskinfo.h>
    3939#include <ps/cpuinfo.h>
     40#include <ps/meminfo.h>
    4041
    4142extern size_t sys_ps_get_tasks(task_id_t *uspace_ids, size_t size);
     
    4344extern int sys_ps_get_threads(task_id_t *uspace_id, thread_info_t *uspace_infos, size_t size);
    4445extern int sys_ps_get_cpu_info(uspace_cpu_info_t *uspace_cpu);
     46extern int sys_ps_get_mem_info(uspace_mem_info_t *mem_info);
    4547
    4648#endif
  • kernel/generic/include/syscall/syscall.h

    r1ba37fa r516adce  
    8989
    9090        SYS_PS_GET_CPU_INFO,
     91        SYS_PS_GET_MEM_INFO,
    9192        SYS_PS_GET_TASKS,
    9293        SYS_PS_GET_TASK_INFO,
  • kernel/generic/src/main/main.c

    r1ba37fa r516adce  
    224224        printf("Detected %" PRIs " CPU(s), %" PRIu64" MiB free memory\n",
    225225            config.cpu_count, SIZE2MB(zone_total_size()));
    226        
     226
    227227        LOG_EXEC(cpu_init());
    228228       
  • kernel/generic/src/mm/frame.c

    r1ba37fa r516adce  
    12181218}
    12191219
     1220void zone_busy_and_free(uint64_t *out_busy, uint64_t *out_free)
     1221{
     1222        ipl_t ipl = interrupts_disable();
     1223        spinlock_lock(&zones.lock);
     1224
     1225        uint64_t busy = 0, free = 0;
     1226        size_t i;
     1227        for (i = 0; i < zones.count; i++) {
     1228                bool available = zone_flags_available(zones.info[i].flags);
     1229                /* Do not count reserved memory */
     1230                if (available) {
     1231                        busy += (uint64_t) FRAMES2SIZE(zones.info[i].busy_count);
     1232                        free += (uint64_t) FRAMES2SIZE(zones.info[i].free_count);
     1233                }
     1234        }
     1235
     1236        spinlock_unlock(&zones.lock);
     1237        interrupts_restore(ipl);
     1238        *out_busy = busy;
     1239        *out_free = free;
     1240}
     1241
    12201242/** Prints list of zones. */
    12211243void zone_print_list(void)
  • kernel/generic/src/syscall/syscall.c

    r1ba37fa r516adce  
    171171        /* Ps calls */
    172172        (syshandler_t) sys_ps_get_cpu_info,
     173        (syshandler_t) sys_ps_get_mem_info,
    173174        (syshandler_t) sys_ps_get_tasks,
    174175        (syshandler_t) sys_ps_get_task_info,
  • uspace/app/top/Makefile

    r1ba37fa r516adce  
    3535        screen.c \
    3636        input.c \
     37        func.c \
    3738        ps.c
    3839
  • uspace/app/top/screen.c

    r1ba37fa r516adce  
    4343#include "screen.h"
    4444#include "top.h"
     45#include "func.h"
    4546
    4647int rows;
     
    133134                ++up_rows;
    134135        }
     136}
     137
     138static inline void print_meminfo(data_t *data)
     139{
     140        uint64_t newsize;
     141        char suffix;
     142        order(data->mem_info.total, &newsize, &suffix);
     143        printf("Mem: %8llu %c total", newsize, suffix);
     144        order(data->mem_info.used, &newsize, &suffix);
     145        printf(", %8llu %c used", newsize, suffix);
     146        order(data->mem_info.free, &newsize, &suffix);
     147        printf(", %8llu %c free", newsize, suffix);
    135148}
    136149
     
    182195        ++up_rows;
    183196        print_cpuinfo(data);
     197        print_meminfo(data);
     198        puts("\n");
     199        ++up_rows;
    184200        puts("\n");
    185201        ++up_rows;
  • uspace/app/top/top.c

    r1ba37fa r516adce  
    4343#include <sys/time.h>
    4444#include <load.h>
     45#include <ps.h>
    4546#include "screen.h"
    4647#include "input.h"
     
    8485        /* Read cpu infos */
    8586        target->cpu_count = get_cpu_infos(&target->cpus);
     87
     88        /* Read mem info */
     89        get_mem_info(&target->mem_info);
    8690}
    8791
  • uspace/app/top/top.h

    r1ba37fa r516adce  
    6868        uspace_cpu_info_t *cpus;
    6969        cpu_perc_t *cpu_perc;
     70
     71        uspace_mem_info_t mem_info;
    7072} data_t;
    7173
  • uspace/lib/c/Makefile

    r1ba37fa r516adce  
    9292        generic/stacktrace.c \
    9393        generic/ps.c \
    94         generic/cpu.c \
     94        generic/cpuinfo.c \
     95        generic/meminfo.c \
    9596        generic/load.c \
    9697        generic/uptime.c
  • uspace/lib/c/include/ps.h

    r1ba37fa r516adce  
    3939#include <kernel/ps/taskinfo.h>
    4040#include <kernel/ps/cpuinfo.h>
     41#include <kernel/ps/meminfo.h>
    4142
    4243extern int get_cpu_info(uspace_cpu_info_t *cpus);
     44extern int get_mem_info(uspace_mem_info_t *meminfo);
    4345extern size_t get_task_ids(task_id_t *ids, size_t size);
    4446extern int get_task_info(task_id_t id, task_info_t *info);
Note: See TracChangeset for help on using the changeset viewer.