• mbaxter's avatar
    mt-cannon: Implement mips logic (#11188) · 05a9c478
    mbaxter authored
    * cannon: Copy over singlethreaded impls as a starting point
    
    * cannon: Update mips property access to work with MTState
    
    * cannon: Add new syscall constants
    
    * mt-cannon: Implement clone syscall
    
    * mt-cannon: Implement remaining new syscalls
    
    * mt-cannon: Implement thread traversal changes to mipsStep()
    
    * mt-cannon: Add logger, log when max steps reached
    
    * mt-cannon: Implement onWaitComplete()
    
    * mt-cannon: Implement thread manipulation methods
    
    Also, use slices of pointers for the thread stacks
    
    * mt-cannon: Move thread traversal fns to mips.go
    
    * mt-cannon: Fix issue where wakeup traversal never stops
    
    * mt-cannon: Fix issue where we can end up popping an empty stack
    
    * mt-cannon: Move thread definitions to new thread.go file
    
    * cannon: Add compile-time type checks for FPVM(State) impls
    
    * mt-cannon: Add new threaded StackTracker
    
    * mt-cannon: Update proof generation to include thread proof
    
    * mt-cannon: Move FPVM compile-time type check
    
    * cannon: Run common vm tests across all FPVM impls
    
    * cannon: Cut OpenMIPS clone test
    
    * cannon: Cleanup - fix some discrepancies, clarify constant
    
    * cannon: Disable mem profiling in op-program instead of patch.go
    
    * cannon: Consolidate calls to program.PatchGo
    
    * cannon: Disable program.PatchGo in MTCannon tests
    
    * mt-cannon: Add multithreaded program test
    
    * cannon: Only run sleep check for single-threaded cannon
    
    * op-program: Update profiling before dependency init fns are called
    
    * mt-cannon: Track stack on thread clone, handled popped threads
    
    * mt-cannon: Panic if unrecognized syscall is executed
    
    * mt-cannon: Panic if unexpected flags are passed to SysClone
    
    * mt-cannon: Add some tests for EncodeThreadProof()
    
    * mt-cannon: Add some more tests around threadProof edge cases
    
    * mt-cannon: Minimize logging
    
    * cannon: Update go version in cannon/example/multithreaded/go.mod
    Co-authored-by: default avatarInphi <mlaw2501@gmail.com>
    
    * mt-cannon: Rework clone behavior based on feedback
    
    * mt-cannon: Rework wakeup logic
    
    * mt-cannon: Cleanup - simplify clone, refine logging
    
    * Revert "cannon: Cut OpenMIPS clone test"
    
    This reverts commit d876d6a44ffc01672a019d5b2411e7d3eab08439.
    
    * mt-cannon: Skip open-mips clone test add todos
    
    * mt-cannon: Handle munmap syscall
    
    * mt-cannon: Exit if the last thread exits
    
    * cannon: Clarify skip comment
    
    * cannon: Add some todos
    
    * cannon: Add guard around logging
    
    ---------
    Co-authored-by: default avatarInphi <mlaw2501@gmail.com>
    05a9c478
vmtests.go 4.24 KB