GithubHelp home page GithubHelp logo

fairamp's Introduction

Fairness-oriented Scheduler for Asymmetric Multicores

by Changdae Kim ([email protected])

Overview

Schedule cores in a multicore environment.

How to install

  1. Download Linux kernel 3.7.3 and patch linux-3.7.3-fairamp.patch.
  2. Compile and install the patched kernel on the system. Note that the following options must be enabled to use fairness-oriented scheduler.
    • General setup -> Fairness-oriented scheduling for asymmetric multi-cores (FAIRAMP)
    • General setup -> FAIRAMP really DO the scheduling
    • General setup -> FAIRAMP use fast-core-first policy
    • General setup -> FAIRAMP measures instruction per seconds
  3. Go to tools/fairamp in the patched kernel source tree.
  4. Install the tool to using fairness-oriented scheduler.
    $ make
    $ sudo make install
    

How to run

  1. Run the following command and refer to the usage

    $ fairamp -h
    
  2. Sample run command is here.

    $ fairamp -c test.comm
    

    (test.comm is included in tools/fairamp/)

  3. If you want to see less messages, use the follow command. The other options are same with fairamp.

    $ fairamp.quiet -c test.comm
    

NOTE

  1. This software works on x86_64 architecture, that is, 64-bit processors from Intel or AMD.
  2. This version is tested and validated using Ubuntu 12.04.5 and gcc 4.6.3. Some problem may occurs on other environments.
  3. DVFS should be available for the system.
  4. CPU hotplug is enabled OR all cores should be turned on.
  5. Detecting hard lockups must be disabled due to confliction on using performance counters. You should clear the following kernel option: Kernel hacking -> Kernel debugging -> Detect Hard and Soft Lockups

Trouble Shooting

  1. Debug the Kernel

    1. Make sure to configure following options when compile the target kernel.
    CONFIG_RANDOMIZE_BASE=n
    CONFIG_FRAME_POINTER=y
    CONFIG_KGDB=y
    CONFIG_KGDB_SERIAL_CONSOLE=y
    CONFIG_KGDB_KDB=y
    CONFIG_KDB_KEYBOARD=y
    
    1. Enable the sys request.
    echo 1 > /proc/sys/kernel/sysrq
    
    1. To enable debug sys request,
    echo ttyS0 > /sys/module/kgdboc/parameters/kgdboc
    
    1. Send to be used by KGDB.
    echo g > /proc/sysrq-trigger
    

For more information, please refer to our paper,

Changdae Kim and Jaehyuk Huh. Exploring the Design Space of Fair Scheduling Supports for Asymmetric Multicore Systems. IEEE Transactions on Computers, vol. 67, no. 8, pp. 1136-1152, August 2018.

https://ieeexplore.ieee.org/document/8265024

Future Works

  1. Testing the test script to work on the original environment.
  2. Merge and update the software to work on lastest versions. (Targeting Ubuntu 18.04 and Linux 5.4)

fairamp's People

Contributors

snyokang avatar cdkimcode avatar

Watchers

James Cloos avatar

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.