commit | 3c0f5f465d348f9a1b2f8259a9af0a99aad81bf0 | [log] [tgz] |
---|---|---|
author | Carlos Pizano Uribe <cpu@fuchsia.infra.roller.google.com> | Wed Apr 23 12:49:20 2025 -0700 |
committer | Copybara-Service <copybara-worker@google.com> | Wed Apr 23 12:51:34 2025 -0700 |
tree | 3e1c88352e52437265eec35df62b940de5cab0ee | |
parent | 2720b0402a5107e15690f12b4585aff59f230a36 [diff] |
[roll] Roll fuchsia [kernel][vm] Compressed pointers for VmPageListNode This CL adds two methods to PmmNode uint32_t PageToIndex(const vm_page_t* page); vm_page_t* IndexToPage(uint32_t index); They "compress" a vm_page_t pointer to a 32 uint with the 4 least significant bits as zero. Then we use this page <--> index to convert VmPageOrMarker from 64 bits to 32 bits which ends up saving 64 bytes per VmPageListNode which in starnix-based products which hold upwards of 80K nodes, ends up saving 5+ MiBs This comes at some cost: 1- The max # of PMM arenas are limited to 16 and each arena of a max of 2^20 pages, or some other combination that yields 2^24 bits 2- The conversion from page to index is O(n) in the numbers of arenas though the cost is fixed and relatively small. BUG=408058440 Original-Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/1244412 Original-Revision: 0c022e8550329000427243111dca761d5a976296 GitOrigin-RevId: 41543926bfb785f2c9f15d308da9bc348cae49eb Change-Id: Ifb945a1f6dd5751e057542d5a99fb3a53e4862b3
This repository contains Fuchsia's Global Integration manifest files.
All changes should be made to the internal version of this repository. Our infrastructure automatically updates this version when the internal one changes.
Currently all changes must be made by a Google employee. Non-Google employees wishing to make a change can ask for assistance in one of the communication channels documented at get involved.
First install Jiri.
Next run:
$ jiri init $ jiri import minimal https://fuchsia.googlesource.com/integration $ jiri update
Third party projects should have their own subdirectory in ./third_party
.