#
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
|
#
b29cfb1a |
|
04-Apr-2018 |
Nick Maniscalco <maniscalco@google.com> |
[kernel] Refactor MessagePacket to use non-contiguous storage This is a step toward eliminating variable-sized kernel heap allocations. Prior to this change, MessagePacket allocated a single contiguous buffer for its fields, handles, and data. After this change it uses free lists of fixed-sized buffers. Add BufferChain for copying to/from a list of fixed-sized buffers. In the future, MBufChain and BufferChain will be merged. See related bug (ZX-1852) for benchmark results. ZX-1852 #comment use non-contiguous storage Tested: "k ut message_packet" and "k ut buffer_chain" Change-Id: I1c1383c5b6f321c05fe7ae6fe0e7ff75533a7225
|