Skip to content
Jaidev Shastri edited this page Dec 13, 2022 · 15 revisions

Welcome to the TransProc wiki!

TransProc supports live migration of natively compiled Linux applications across CPUs of different architectures.

TransProc leverages CRIU to dump a running Linux process. Our extended CRIT tool can transform the CRIU-generated process image into a format that can run on another architecture. The transformed process image can then be restored on a CPU of a different architecture.

Currently, TransProc supports process migration across x86-64 and aarch64 CPUs. TransProc uses LLVM's stack maps to generate stack and register metadata (e.g., live value locations at cross-architecture migration points). TransProc leverages the Popcorn Linux compiler for generating this metadata. Using the metadata, TransProc implements a cross-architecture transformation logic on the CRIU-dumped images to transform the process's stack and register format from the source ABI format to the destination ABI format. Since the CRIU-dumped images are transformed externally, the images are devoid of any embedded transformation logic, which improves security (e.g., TransProc's images are almost identical to CRIU's images).

TransProc consists of two parts:

  • An extended CRIU
  • TransProc compiler toolchain

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

Getting Started

To get started with TransProc:

Note: It is recommended to try the simple "Hello World" program migration on VMs provided by us before moving on to the advanced ones. Once this is done, the user will have a decent understanding on how the setup is supposed to be done and they can start migrating advanced tests on custom built kernels.

Note: You can skip the compiler toolchain and benchmark building steps. All the necessary benchmarks are provided within the test directory of this repository.

Contacts

Please contact Abhishek Bapat (abapat28@vt.edu) or Xiaoguang Wang (xiaoguang@vt.edu) for any questions.