History log of /fuchsia/zircon/system/uapp/psutils/kstats.c
Revision Date Author Comments
# e302c45d 26-Jul-2018 Nick Maniscalco <maniscalco@google.com>

[zircon][syscalls] Make zx_time_t and zx_duration_t signed types

This change is part of a hard transition and breaks the layers above.

zx_time_t and zx_duration_t are now int64_t. ZX_TIME_INFINITE is now
INT64_MAX.

A negative time value passed to a syscall is treated as any other time
value that's "in the past".

Test: CQ; new unit tests; built and ran topaz system on Eve

ZX-2100 #comment

Change-Id: I2a020cb2cf3dd7212608e24c1ee90cec58dd51ef


# b33437b1 26-Jul-2018 Nick Maniscalco <maniscalco@google.com>

[zircon][kernel] Use proper time types and overflow-safe arithmetic

This change is preparation for converting zx_time_t and zx_duration_t
from unsigned to signed types (ZX-2100).

1. Fix several places where the wrong time type was used (e.g.
zx_time_t instead of zx_duration_t). Because these are simple typedefs
it's easy to use the wrong one. While it generally doesn't cause a
problem, using the wrong type can be misleading and lead to bugs like
passing a relative time when an absolute time is expected.

2. Update kernel/ and some other parts of zircon to use the new
overflow-safe arithmetic functions from zircon/time.h.

Performance: Ran "/pkgfs/packages/zircon_benchmarks/0/bin/app -p" on
NUC before and after this change. Differences were withing the noise,
some slightly faster, some slightly slower.

Test: CQ

ZX-2100 #comment cleanup before conversion

Change-Id: I75d074e5850ade5385decd9bbf330497bf7610e9


# eecaaa43 30-Jul-2018 Nick Maniscalco <maniscalco@google.com>

[kernel] Move channel message backing off heap and onto the pmm

Channel messages are now allocated directly from the pmm.

Add new page state (VM_PAGE_STATE_IPC) and use it for pages backing
channel messages.

Update kstats command to print memory used by IPC.

Benchmarks on NUC and VIM2 (kernel.smp.maxcpus=4 -> big cores only)
indicate this change has no significant performance impact. Here are
the results from VIM2:

-- Before
Benchmark Time CPU Iterations

Change-Id: Ie199007803537dfe0be50df1c4f89194209cce5d
---------------------------------------------------------
Run on (1 X 24.0003 MHz CPU )
2016-01-01 00:00:53
Channel/Write/64 1871 ns 1884 ns 371483 32.3987MB/s
Channel/Write/1024 2020 ns 2033 ns 344440 480.38MB/s
Channel/Write/32k 9150 ns 9161 ns 76104 3.33122GB/s
Channel/Write/64k 16055 ns 16065 ns 44115 3.79917GB/s
Channel/Read/64 1938 ns 1942 ns 360845 31.4281MB/s
Channel/Read/1024 2093 ns 2097 ns 332677 465.653MB/s
Channel/Read/32k 9454 ns 9463 ns 74126 3.22507GB/s
Channel/Read/64k 16618 ns 16627 ns 42159 3.67085GB/s

-- After
Benchmark Time CPU Iterations
---------------------------------------------------------
Run on (1 X 24.0003 MHz CPU )
2016-01-01 00:00:55
Channel/Write/64 1854 ns 1866 ns 319982 32.7169MB/s
Channel/Write/1024 2018 ns 2029 ns 345068 481.258MB/s
Channel/Write/32k 9066 ns 9086 ns 76926 3.35885GB/s
Channel/Write/64k 16115 ns 16138 ns 44574 3.78208GB/s
Channel/Read/64 1903 ns 1907 ns 366592 31.9976MB/s
Channel/Read/1024 2064 ns 2068 ns 338512 472.176MB/s
Channel/Read/32k 9060 ns 9067 ns 77179 3.36589GB/s
Channel/Read/64k 15576 ns 15582 ns 44964 3.91709GB/s

Tests: Ran the following,
- "k ut all" (buffer_chain_test and message_packet_tests)
- "kstats -m" concurrently with benchmarks to verify kstats

ZX-1852 #comment use pmm

Change-Id: Iacc62a2c49ef3b18c96dad96977c322e989570ed


# f3e2126c 12-Sep-2017 Roland McGrath <mcgrathr@google.com>

[zx] Magenta -> Zircon

The Great Renaming is here!

Change-Id: I3229bdeb2a3d0e40fb4db6fec8ca7d971fbffb94


# 9268b60f 28-Jun-2017 Dave Bort <dbort@google.com>

[uapp][psutils] Add '-n <times>' to kstats, top

Runs the tool N times and then exits.

Change-Id: I6bad3c48ee2df10c82b54cdcb0468818fa2ce226


# 20367f04 20-Jun-2017 Travis Geiselbrecht <travisg@google.com>

[app][kstats] bugfix with getopt to get it working on arm

unsigned chars strike again!

Change-Id: If86ecda7ef146ee929cfe5ccfaf934d899969658


# 9abac6d4 16-Jun-2017 George Kulakowski <kulakowski@google.com>

[uapp][status] Use the new MX_OK and MX_ERR_* mx_status_t names

Change-Id: Iaa8c8c12736e49d202c33612b22d2acd528fcf2d


# 5c9b401e 08-Jun-2017 Dave Bort <dbort@google.com>

[uapp] Make 'ps --json' dump kernel memory info

Also splits out a helper function to get the root resource.

MG-819 #done

Change-Id: I29806da74289e2eb004391603af75fcdea5c68f0


# d6afa4fd 08-Jun-2017 Travis Geiselbrecht <travisg@google.com>

[utils][kstats] add switches to enable time stamp and allow cpu/mem stats at the same time

Also switch the command line stuff to getopt.

Change-Id: Iba1502dce7b874ec6afb2ed7aaf635c62ce45284


# ad11c0b3 08-Jun-2017 Dave Bort <dbort@google.com>

[uapp] Fix field order in kstats -m

Change-Id: Ia2e0b8e5f530e2677c6e3d1d1097281efea7cf92


# 92ca47e2 07-Jun-2017 Dave Bort <dbort@google.com>

[uapp] Teach kstats to dump kernel memory info

Also print the timestamp before every stat dump, both memory and CPU.

For MG-819: "Tool to print kernel memory usage"

Change-Id: I2ceedd5b72a20d97287a7ed2819d3ee8aa77fde6


# 63366ad3 05-Jun-2017 Travis Geiselbrecht <travisg@google.com>

[utils] add kstats utility which currently dumps per cpu statistics

Format is currently identical to the existing kernel threadstats
command.

Change-Id: I056a6c4dd61aa4c741dfddc266b24dce8c8ae4aa