-
Notifications
You must be signed in to change notification settings - Fork 43
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Decompose VM instantiation costs and add module cache (#1359)
This is a sketch of the first step in the plan for addressing #1292 and eventually #827 and #1313, namely: - add a bunch of cost types that decompose the current "worst case" VM instantiation cost type - continue to charge the worst case on initial contract upload - _store_ the decomposed cost-type inputs in the ledger, since we can observe them after the initial upload parse - _use_ those decomposed cost-type inputs when doing runtime instantiation - add a module cache - populate the module cache with all modules on host startup - use cached modules during instantiation This PR has accompanying changes in XDR and wasmi: - stellar/stellar-xdr#177 - stellar/rs-stellar-xdr#346 Remaining to do: - [x] determine what the correct set of decomposed cost types even is - [ ] ~add more code to wasmi to enable observing more inputs~ - [x] add cost-type runners / calibrations for all the decomposed cost-types - [x] protocol-gate this new behaviour - [x] make the linker-loop do less work to match the tighter cost model (i.e. complete #1292) - [x] possibly _duplicate_ the set of cost types added here, so we have a cached and uncached version of each, and implement a solution to #827 - [ ] possibly decompose the set sufficiently to model what will happen when we take wasmi 0.32 and enable lazy translation (i.e. complete #1313)
- Loading branch information
Showing
40 changed files
with
2,671 additions
and
307 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.