Initial implementation of wasm custom page sizes
Categories
(Core :: JavaScript: WebAssembly, task, P3)
Tracking
()
| Tracking | Status | |
|---|---|---|
| firefox148 | --- | fixed |
People
(Reporter: wingo, Assigned: wingo)
References
(Blocks 1 open bug, Regressed 1 open bug)
Details
Attachments
(12 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 | |
|
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 |
Working bug for implementation of custom page sizes.
| Assignee | ||
Comment 1•1 year ago
|
||
Updated•1 year ago
|
| Assignee | ||
Comment 2•1 year ago
|
||
This will free up the name wasm::PageSize, to allow us to represent tiny
pages.
| Assignee | ||
Comment 3•1 year ago
|
||
| Assignee | ||
Comment 4•1 year ago
|
||
No more public constructors for wasm::Pages; instead there are static
methods. Leads to lots of PageSize::Standard everywhere; with custom
page sizes, these sizes will come from the memory descriptor.
| Assignee | ||
Comment 5•1 year ago
|
||
| Assignee | ||
Comment 6•1 year ago
|
||
Also add an assert to bounds-check elimination for the time being.
| Assignee | ||
Comment 7•1 year ago
|
||
| Assignee | ||
Comment 8•1 year ago
|
||
Updated•1 year ago
|
Updated•1 year ago
|
Comment 9•11 months ago
|
||
Supporting tiny page sizes requires a number of changes to Wasm memory
allocation and bounds checks:
- Memories with tiny page size are allocated to the closest system page
size. - Bounds have granularity smaller than the page size, so guard pages
cannot be used, so offsets must always be checked. - Similarly, access size must be accounted for. We handle this by
storing a bounds check limit for each access size. - Tiny page sizes disable huge memory, and also prevent bounds
check elimination.
Tiny pages are unsupported in Ion in this commit.
Comment 10•11 months ago
|
||
Comment 11•11 months ago
|
||
This is needed for custom page sizes proposal abbreviation syntax for memories.
Updating this removes the need for the unicode-width patch, so that is removed
as well. Also updates wasm-smith dependency in gluesmith in order to avoid
dependency duplication.
This change also affects how some custom page size tests are parsed, which is
why this commit also modifies some of those tests.
Comment 12•11 months ago
|
||
Updated•11 months ago
|
Updated•11 months ago
|
Updated•11 months ago
|
Updated•11 months ago
|
Updated•9 months ago
|
Comment 13•9 months ago
|
||
Comment 14•9 months ago
|
||
| bugherder | ||
https://hg.mozilla.org/mozilla-central/rev/1fbbf046370a
https://hg.mozilla.org/mozilla-central/rev/e05626dc99c8
https://hg.mozilla.org/mozilla-central/rev/f1b4e02fb916
https://hg.mozilla.org/mozilla-central/rev/115b6310b494
https://hg.mozilla.org/mozilla-central/rev/df83ffaa9ee8
https://hg.mozilla.org/mozilla-central/rev/871a99fd0ee0
https://hg.mozilla.org/mozilla-central/rev/176c533fb8f0
https://hg.mozilla.org/mozilla-central/rev/3528291711dc
https://hg.mozilla.org/mozilla-central/rev/d4db9613d1b1
https://hg.mozilla.org/mozilla-central/rev/674c9ce5649f
https://hg.mozilla.org/mozilla-central/rev/9652ca25eaf3
https://hg.mozilla.org/mozilla-central/rev/9e859347ff12
Updated•8 months ago
|
Description
•