Home
Reading
Searching
Subscribe
Sponsors
Statistics
Posting
Contact
Spam
Lists
Links
About
Hosting
Filtering
Features Download
Marketing
Archives
FAQ
Blog
 
Gmane
From: raz ben yehuda <raziebe <at> gmail.com>
Subject: RFC: THE OFFLINE SCHEDULER
Newsgroups: gmane.linux.kernel
Date: Saturday 22nd August 2009 23:27:51 UTC (over 7 years ago)
The Open University of Israel
		  Department of Mathematics and computer science	
			
		  	 	FINAL PAPER
			     OFFLINE  SCHEDULER



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

Description

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 DTLBs 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.

OFFSCHED Purpose

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? Who
protects the operating system ?
What if we can simply do the packet analysis outside the operating system,
without being interrupted ?
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 , so why
not spare a processor to do certain tasks better?
Technologically speaking, I am referring to the Linux kernel ability to
virtually hot unplug a (SMT) processor ;but instead of letting it wonder in
endless “halts”, assign it a service.

OFFSCHED project can be found at :
http://sos-linux.svn.sourceforge.net/viewvc/sos-linux/OFFSCHED/

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.

PATCHES
This email is followed by three patches. hopefully they will make the
mainline.

patch 1: offsched core. this is actually a set of utilities
that enable a redirection of the cpu_down to offsched. offsched itself is a
set of drivers.

patch 2:
	A tiny patch to export cpu_up.

patch 3:
	include files


There are several more patches,they serve special purpose . like napi or
rtop.

Author: Raz Ben Yehuda
 
CD: 21ms