offsched is a platform aimed to assign an assignment to an offloaded processor. offloaded processor is a processor that is hot un-plugged from the operating system.


In today’s computer world, we find that most processors have several embedded cores and hyper-threading. Most programmers do not really use these powerful features and let the operating system do the work.
At most, a programmer will bound an application to a certain processor or assign an interrupt to a different processor. At the end, we get system busy in maintaining tasks across processors, balancing interrupts, flushing TLBs and DTLBs1 using atomic operations even when not needed and worst of all, spin locks across processors in vein; and the more processors the merrier. I argue that in some cases, part of this behavior is due to fact the multiple core operating system is not service oriented but a system oriented. There is no easy way to assign a processor to do a distinct service, undisturbed, accurate, and fast as long as the processor is an active part of an operating system and still be a part of most of the operating system address space.


The purpose of the OFFSCHED is to create a platform for services. For example, assume a firewall is being attacked; the Linux operating system will generate endless number of interrupts and/or softirqs to analyze the traffic and throw out bad packets. This is on the expense of “good” packets. Have you ever tried to “ssh” to an attacked machine?
What if we can simply do the packet analysis outside the operating system, without interrupts and still fast enough?
Why not assign a core to do only “firewalling”? Or just routing? Design a new type of Real Time system? Maybe assign it as an ultra accurate timer? Create a delaying service that does not just spin? Offload a TCP stack? perhaps a new type of a locking scheme? New type bottom-halves? Debug a running kernel through an offloaded processor? Maybe assign a GPU to do other things than just graphics?
Amdahl Law teaches us that linear speed-up is not very feasible 2 3, so why not spare a processor to do certain tasks better?
Technologically speaking, I am referring to the Linux kernel ability to virtually hot plug a (SMT) processor but instead of letting it wonder in endless “halts”, assign it a service.
OFFSCHED project can be found at :

I have implemented:
1. OFFSCHED-RT. A different kind of a real time system.
2. OFFSCHED-TIMER. a 1us timer.
3. OFFSCHED-RTOP. remote top. OFFSCHED throws top-like information to a nother machine, while the OFFSCHED machine is not accessible
4. OFFSCHED NAPI. offloaded NAPI
5. OFFCSHED SECURED. a firewall that protects the operating system.


Real Time, SMP, SMT, cpu isolation, monitor, firewall, timer


  • Biography

    Name: Raz Ben Jehuda
    Address : Halotem 8 Rishon Le Zion Israel
    Status : Married + 1
    Birth Date: 12.04.1972

    Last phase of my MSC in computer sciences at the open university
    Masters work:

    B.A degree at Haifa University in computer sciences and mathematics.

    Professional Experience

    Raz is a Linux Kernel developer In RT team in an IPTV startup. He specialises in video streaming and storage performance.