commit | 1a2bf5560168a4816ec194ab44cae2010d9173b2 | [log] [tgz] |
---|---|---|
author | David Stevens <stevensd@google.com> | Tue May 21 18:07:25 2019 +0000 |
committer | CQ bot account: commit-bot@chromium.org <commit-bot@chromium.org> | Tue May 21 18:07:25 2019 +0000 |
tree | 3dd08ab3c2441ed98ccf665e763c1add296a1b65 | |
parent | c0a853e9fa85185a5531fbfaff3e1c220c12c30f [diff] |
[kernel][vm] Improve efficiency of bidirectional clones This change reduces the number of page allocations done by bidirectional clones so that they are never less efficient than simply memcpying into a new VMO. This is done by moving pages out of hidden VMOs when writing to one of their children if the page is not accessible by the other child. Whether a page in a hidden VMO is 'accessible' to a particular child is determined by a combination of two factors. First, a page is not accessible if it lies outside the range of the hidden VMO which the child can see. This is tracked by the existing parent offset and limit values in the child. Second, if a page in the hidden VMO has already been copied into a child, that page in the hidden VMO is no longer accessible to that child. This is tracked by new 'split' bits in the vm_page_t structure. Test: existing vmo-clone2 core tests were written to cover this code, and kstress has a test for hammering COW clones ZX-1268 #comment [kernel][vm] Improve efficiency of bidirectional clones Change-Id: Idbfcab1b684c12faa29499e3c9c78e478989a1ef
Pink + Purple == Fuchsia (a new operating system)
Fuchsia is a modular, capability-based operating system. Fuchsia runs on modern 64-bit Intel and ARM processors.
Fuchsia is an open source project with a code of conduct that we expect everyone who interacts with the project to respect.
See Getting Started.
See the documentation.