-
Notifications
You must be signed in to change notification settings - Fork 293
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
fix: Fix races in slab allocator and lookup tables and add prepending…
… for op_queues (#4754) 1. Fixes a race condition in lookup multitable initialisation 2. Fixes a race condition in slab allocator 3. Adds an option to prepend the EccOpQueue to another one (useful, if we ever need to execute circuits in parallel) The first 2 issues appeared when I tried to run goblin_ultra circuit construction in parallel. It led to race conditions. ECCOpQueue holds instructions emitted by goblin_ultra when we "promise" to that a particular non-native operation (addition/multiplication) is performed correctly, but we don't want to prove it right now. We aggregate these instructions and then send them to Translator and ECCVM. However, nothing is really stopping us from precomputing the next function circuit, while we are doing the recursive kernel circuit construction apart from joining these queues together. So this PR adds two functions: one for prepending a queue to the queue emitted by the circuit (so we can insert previous instructions) and one for swapping two queues (so we can easily take the new queue out of the circuit and store it in IVC without copying data).
- Loading branch information
Showing
5 changed files
with
140 additions
and
6 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
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