Skip to content
This repository has been archived by the owner on Jul 24, 2018. It is now read-only.

🌏 reproduces flaky bugs by fuzzing process scheduling

License

Notifications You must be signed in to change notification settings

AkihiroSuda/MicroEarthquake.BAK

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MicroEarthquake: process scheduling fuzzer

MicroEarthquake reproduces flaky bugs by fuzzing process scheduling with sched_setattr(2).

Build

$ (cd microearthquake; python3 native_build.py)

Usage

On Terminal 1:

$ (cd /somewhere; mvn test)

On Terminal 2:

$ ./bin/microearthquake pid $TERMINAL1_MVN_PID

Notes:

  • Requires CAP_SYS_NICE.
  • subprocesses and LWPs (i.e.,threads) are also fuzzed.

How it works

Using Dirichlet distribution, MicroEarthquake finds the randomized utilization sequence $u_i$ ($0 <= i < NTASKS$) that satisfies $\sum u_i = NCPU$.

Then MicroEarthquake determines actual parameters that almost satisfy $WCET_i / P_i = u_i$.

See sched-deadline.txt.

We still need much more improvement.

Reproduced Bugs

Talks

  • FOSDEM (January 30-31, 2016, Brussels)

Related Project

MicroEarthquake is planned to be rewritten in Go and merged to Earthquake;

Even after that, MicroEarthquake may continue as a lightweight version of Earthquake.

Known Limitation

After running MicroEarthquake many times, sched_setattr(2) can fail with EBUSY. This seems to be a bug of kernel; I'm looking into this.

About

🌏 reproduces flaky bugs by fuzzing process scheduling

Resources

License

Stars

Watchers

Forks

Packages

No packages published