Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

perf: optimize external snapshots #47

Merged
merged 14 commits into from
Jul 25, 2024
Merged

perf: optimize external snapshots #47

merged 14 commits into from
Jul 25, 2024

Conversation

joonazan
Copy link
Contributor

The bootloader only uses a small part of the stack and only changes small areas of its heap, yet both are copied entirely when snapshotting. This fixes that.

@joonazan joonazan force-pushed the fast-external-snapshot branch from ee565ea to 75123d0 Compare July 23, 2024 17:23
@joonazan joonazan force-pushed the fast-external-snapshot branch from 72fd8b6 to 619beb4 Compare July 24, 2024 15:25
@joonazan joonazan marked this pull request as ready for review July 24, 2024 15:46
@joonazan joonazan requested review from montekki and slowli July 24, 2024 15:46
src/callframe.rs Outdated Show resolved Hide resolved
src/heap.rs Outdated Show resolved Hide resolved
src/heap.rs Show resolved Hide resolved
src/heap.rs Outdated Show resolved Hide resolved
src/state.rs Outdated Show resolved Hide resolved
src/stack.rs Outdated Show resolved Hide resolved
src/heap.rs Show resolved Hide resolved
@joonazan
Copy link
Contributor Author

@slowli Nice review! Looks like I was way too distracted yesterday to write correct code.

src/stack.rs Outdated Show resolved Hide resolved
@joonazan joonazan requested a review from slowli July 25, 2024 12:16
slowli
slowli previously approved these changes Jul 25, 2024
src/stack.rs Outdated Show resolved Hide resolved
src/state.rs Show resolved Hide resolved
@joonazan joonazan requested a review from slowli July 25, 2024 13:36
@joonazan joonazan enabled auto-merge (squash) July 25, 2024 13:36
@joonazan joonazan merged commit 952ecd4 into master Jul 25, 2024
7 checks passed
@joonazan joonazan deleted the fast-external-snapshot branch July 25, 2024 13:44
joonazan pushed a commit that referenced this pull request Sep 24, 2024
🤖 I have created a release *beep* *boop*
---


## [0.2.0](v0.1.0...v0.2.0)
(2024-09-23)


### Features

* Brush up repo for publishing
([#58](#58))
([69ac5ed](69ac5ed))
* exposes necessary methods on heap newtype
([#43](#43))
([9342db7](9342db7))
* implement kernel mode
([#42](#42))
([2407d39](2407d39))
* Stable tracer interface
([#46](#46))
([dc73bb4](dc73bb4))
* Track `storage_refunds` and `pubdata_costs` stats
([#48](#48))
([2882a12](2882a12))


### Bug Fixes

* base being in the kernel on address, not code address
([#31](#31))
([d9cb911](d9cb911))
* bugs in initial writes change
([#36](#36))
([8defb4a](8defb4a))
* don't repeatedly get initial values
([#35](#35))
([50fdbfa](50fdbfa))
* filter out initial writes of zero
([#39](#39))
([a291c24](a291c24))
* Fix `Heap` equality comparison
([#51](#51))
([a0cf04b](a0cf04b))
* Fix decommit opcode semantics
([2882a12](2882a12))
* Fix decommitment cost divergence
([#57](#57))
([d385127](d385127))
* Fix decommitment logic on out-of-gas
([#56](#56))
([2276b7b](2276b7b))
* fuzz test ([#30](#30))
([d516967](d516967))
* fuzz.sh ([#64](#64))
([e8e72b5](e8e72b5))
* fuzzer now makes short programs; fix crash in near call
([#52](#52))
([985a778](985a778))
* infinite test ([#34](#34))
([81185a5](81185a5))
* invalid instruction unsoundness
([#61](#61))
([74577d9](74577d9))
* record history for aux heap as well
([#49](#49))
([2877059](2877059))
* record pubdata used by precompiles
([#27](#27))
([a7de066](a7de066))
* report correct heap sizes in ContextMeta
([#26](#26))
([493fcec](493fcec))
* revert pubdata on failed near call, too
([#28](#28))
([fabc553](fabc553))
* StateInterface::current_frame did not work with near calls
([#65](#65))
([53f8f88](53f8f88))
* track transaction number in changes
([#33](#33))
([e683ae8](e683ae8))


### Performance Improvements

* Implement segmented heap
([#53](#53))
([d2405bc](d2405bc))
* optimize external snapshots
([#47](#47))
([952ecd4](952ecd4))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

---------

Co-authored-by: zksync-era-bot <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants