Coder Social home page Coder Social logo

ssrg-vt / transproc Goto Github PK

View Code? Open in Web Editor NEW
4.0 4.0 1.0 17.6 MB

Transform the CRIU image between different architectures for vanilla code.

License: MIT License

Makefile 1.95% C 56.40% Assembly 0.42% Perl 0.05% Shell 1.70% Python 37.35% Java 2.14%

transproc's Introduction

TransProc

Transform CRIU images between different architectures for native binaries.

Refer to our wiki for a tutorial on how to migrate binaries with TransProc.

TransProc supports live migration of natively compiled Linux applications across servers with CPUs of different architectures. TransProc not only supports live-migration on VMs but also on bare-metal.

TransProc builds on top of CRIU to dump a running process and then transforms the CRIU images to support restoration on servers of a different architecture. Currently TransProc supports migration on x86-64 and aarch64 CPUs. TransProc uses LLVM's stack maps to generate stack and register metadata and implements a stack and register transformation logic leveraging the generated metadata. It does this on CRIU dumped images and hence does not involve injecting transformation runtime within the binary image improving security.

This repository provides the CRIU wrapper and the compiler toolchain can be found on this branch of the popcorn compiler repository.

transproc's People

Contributors

abhishekbapat avatar xjtuwxg avatar jaidevshastri avatar

Stargazers

Filippo Del Nero avatar  avatar  avatar

Watchers

 avatar Radostin Stoyanov avatar  avatar AmerNTahat avatar

Forkers

xjtuwxg

transproc's Issues

Stack Transformation Bug

  • Stack and register transformation failed for SNU-NPB BT benchmark.
  • All register and stack values not transformed.

Extend crit to unwind the stack of a saved process

This is a warm-up task: try to extend the crit to print the call stacks. Like:

❯ ./criu-3.15/crit/crit x dir stack
0x400958: (foo+0xe)
0x400968: (bar+0xe)
0x400983: (main+0x19)
0x7f6046b99ec5: (__libc_start_main+0xf5)
0x400779: (_start+0x29)

Please refer to the basic crit functionalities:

❯ ./criu-3.15/crit/crit x -h
usage: crit x [-h] dir {ps,fds,mems,rss}

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.