Add a 'logical' page size for mozjemalloc
Categories
(Core :: Memory Allocator, enhancement)
Tracking
()
| Tracking | Status | |
|---|---|---|
| firefox147 | --- | fixed |
People
(Reporter: pbone, Assigned: pbone)
References
(Blocks 1 open bug)
Details
Attachments
(6 files)
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review |
Splitting Bug 1980056 into separate phases. This change adds the concept of a logical page size separate from physical page size, but doesn't otherwise change configuration.
| Assignee | ||
Comment 1•10 months ago
|
||
| Assignee | ||
Comment 2•10 months ago
|
||
| Assignee | ||
Comment 3•10 months ago
|
||
Arenas track dirty chunks in a red-black tree ordered by memory address.
Switching this to a list will make it faster to test if an item is in
the list, which is required by the next patch.
Additionally there's no reason this collection needs to be ordered or
support lookups. The ordering by memory address may have some
fragmentation benefits, the new list is operated as a FIFO. Items are
appended at the tail when they get their first dirty page, and removed
from the head as they're purged.
| Assignee | ||
Comment 4•10 months ago
|
||
Currently a dirty chunk (that's a chunk with at least one dirty page)
must:
- Be in mChunksDirty
- Be busy pruging by another thread.
The next change will allow it so that chunks with a non-zero mNumDirty
might not be in the dirty chunks list because its impossible to purge
their pages. Therefore in this change we relax the above assumption.
| Assignee | ||
Comment 5•10 months ago
|
||
Mozjemalloc now has a concept of logical page size for its own
structures that may be different from the system's page size.
| Assignee | ||
Comment 6•10 months ago
|
||
Make purging smarter around edge cases. If the first or last dirty page
is not aligned with the hardware page size it will now attempt to purge
extra clean (but unused!) pages in order to capture the dirty pages.
This change also replaces some modulus operators with bitmasks.
Updated•9 months ago
|
Updated•9 months ago
|
Updated•9 months ago
|
Updated•9 months ago
|
Updated•9 months ago
|
Updated•9 months ago
|
Updated•9 months ago
|
Comment 8•7 months ago
|
||
| bugherder | ||
https://hg.mozilla.org/mozilla-central/rev/1f042c774e7d
https://hg.mozilla.org/mozilla-central/rev/c95f650a9e5c
https://hg.mozilla.org/mozilla-central/rev/30e7989a51e7
https://hg.mozilla.org/mozilla-central/rev/50ec76065e66
https://hg.mozilla.org/mozilla-central/rev/c8f4477374f3
https://hg.mozilla.org/mozilla-central/rev/ccde073de033
Updated•6 months ago
|
Description
•