Git Product home page Git Product logo

sel4bench's Introduction

sel4bench

sel4bench is a benchmarking applications and support library for seL4.

To get this project, check out the project manifest.

Applications

We provide multiple applications for benchmarking different paths in the kernel.

sel4bench

This is the driver application: it launches each benchmark in a separate process and collects, processes, and outputs results.

ipc

This is a hot-cache benchmark of the IPC path.

irq

This is a hot-cache benchmark of the IRQ path, measured from inside the kernel. It requires tracepoints to be placed on the IRQ path where the meaurements are to be taken from.

irquser

This is a hot-cache benchmark of the IRQ path, measured from user space.

scheduler

This is a hot-cache benchmark of a scheduling decision. It works by using a producer/consumer pattern between two notification objects. This benchmark also measures seL4_Yield().

signal

This is a hot-cache benchmark of the signal path in the kernel, measured from user space.

smp

This is an intra-core IPC round-trip benchmark to check overhead of kernel synchronization on IPC throughput.

vcpu (AArch64 only)

This benchmark will execute a thread as a VCPU (an EL1 guest kernel) and then obtain numbers for the following actions:

  • Privilege escalation from EL1 to EL2 using the HVC instruction.
  • Privilege de-escalation from EL2 to EL1 using the ERET instruction.
  • The cost of a null invocation of the EL2 kernel using HVC.
  • The cost of an seL4_Call() from an EL1 guest thread to a native seL4 thread.
  • The cost of an seL4_Reply() from an seL4 native thread to an EL1 guest thread.

Note: In order to run this benchmark, you must notify the build system that you wish to enable this benchmark by passing -DVCPU=true on the command line, which will cause the kernel to be compiled to run in EL2. You must also ensure that you pass -DHARDWARE=false to disable the hardware tests.

Since this benchmark will cause the kernel image to be an EL2 image, it will have an impact on the observed numbers for the other benchmark applications as well, since they'll be using an unexpected kernel build.

sel4bench's People

Contributors

pingerino avatar kent-mcleod avatar latentprion avatar gridbugs avatar xurtis avatar adriandanis avatar branden-data61 avatar gnustomp avatar fourkbomb avatar szhuang avatar yyshen 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.