Skip to content

A tool to explore performance characteristics of applications in multi-OS systems

License

Notifications You must be signed in to change notification settings

HExSA-Lab/mktrace

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

38 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

License: MIT

mktrace

mktrace is a system call delegation tool is designed to emulate system call forwarding, a technique used in multi-kernels (Intel mOS, IHK/ Mckernel) to delegate unsupported system calls in specialized operating systems to a general-purpose OS.

The idea is that given some workload, a user can estimate system call forwarding overheads without actually porting their application to a multi-kernel.

mktrace is currently only supported for Linux. It intercepts selected system calls and delegates them to a kernel thread which then introduces an artificial delay and emulates the syscall execution.

Supported OS/kernel

mktrace has been verified to work on the following configuration:

  • CentOS 7
  • Linux kernel version 3.10.1062

Prerequisites

  • GNU Make
  • gcc
  • Kernel devel headers

Building

[you@machine] make 
[you@machine] sudo insmod mktraced.ko 

You can verify that mktrace was set up properly be looking at the kernel logs (run dmesg).

Usage

[you@machine] ./mktrace <application>

Examples

A standard usage of this tool requires explicitly specifiying a system call profile (mktrace_pf). This file contains the system calls which are to be delegated.

Example

[you@machine] ./mktrace /usr/bin/ls

The input file format for mktrace_pf is as follows, using the standard Linux system call names from the kernel headers.

write
brk
...

Limitations

Any system call which tries to modify the task struct such as arch_prctl, execve, etc. are currently not supported by design. For more information on which system calls are supported by mktrace see the supported_system_calls file.

About

A tool to explore performance characteristics of applications in multi-OS systems

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published