Con Kolivas is an
AustraliaAustralia , officially the Commonwealth of Australia, is a country in the Southern Hemisphere comprising the mainland of the Australian continent, the island of Tasmania, and numerous smaller islands in the Indian and Pacific Oceans. It is the world's sixth-largest country by total area...
n anaesthetist who is known on the
InternetThe Internet is a global system of interconnected computer networks that use the standard Internet protocol suite to serve billions of users worldwide...
for his
programmingComputer programming is the process of designing, writing, testing, debugging, and maintaining the source code of computer programs. This source code is written in one or more programming languages. The purpose of programming is to create a program that performs specific operations or exhibits a...
work on the
Linux kernelThe Linux kernel is an operating system kernel used by the Linux family of Unix-like operating systems. It is one of the most prominent examples of free and open source software....
in his spare time. He has written
patchA patch is a piece of software designed to fix problems with, or update a computer program or its supporting data. This includes fixing security vulnerabilities and other bugs, and improving the usability or performance...
es for the kernel to improve its
desktopA desktop computer is a personal computer in a form intended for regular use at a single location, as opposed to a mobile laptop or portable computer. Early desktop computers are designed to lay flat on the desk, while modern towers stand upright...
performance, particularly reducing I/O impact. He has also written a
benchmarkIn computing, a benchmark is the act of running a computer program, a set of programs, or other operations, in order to assess the relative performance of an object, normally by running a number of standard tests and trials against it...
ing tool called ConTest that can be used to compare the performance of different kernel versions.
Kolivas is most notable for his work with
CPU schedulingIn computer science, a scheduling is the method by which threads, processes or data flows are given access to system resources . This is usually done to load balance a system effectively or achieve a target quality of service...
, most significantly his implementation of "
fair schedulingFair-share scheduling is a scheduling strategy for computer operating systems in which the CPU usage is equally distributed among system users or groups, as opposed to equal distribution among processes....
," which inspired
Ingo MolnárIngo Molnár, currently employed by Red Hat, is a Hungarian Linux hacker. He is best known for his contributions to the operating system in terms of security and performance...
to develop his
Completely Fair SchedulerThe Completely Fair Scheduler is the name of a task scheduler which was merged into the 2.6.23 release of the Linux kernel. It handles CPU resource allocation for executing processes, and aims to maximize overall CPU utilization while also maximizing interactive performance.Con Kolivas's work with...
, as a replacement for the earlier
O(1) schedulerAn O scheduler is a kernel scheduling design that can schedule processes within a constant amount of time, regardless of how many processes are running on the operating system. One of the major goals of operating system designers is to minimize overhead and jitter of OS services, so that...
, crediting Kolivas in his announcement. Kolivas developed several CPU schedulers such as the Staircase in 2004, then Rotating Staircase Deadline (RSDL) and subsequently Staircase Deadline (SD) schedulers to address
interactivityIn computer science, interactive computing refers to software which accepts input from humans — for example, data or commands. Interactive software includes most popular programs, such as word processors or spreadsheet applications. By comparison, noninteractive programs operate without human...
concerns of the Linux kernel with respect to desktop computing. Additionally, he has written a "
swap prefetchIn computer operating systems, paging is one of the memory-management schemes by which a computer can store and retrieve data from secondary storage for use in main memory. In the paging memory-management scheme, the operating system retrieves data from secondary storage in same-size blocks called...
" patch, which allows
processIn computing, a process is an instance of a computer program that is being executed. It contains the program code and its current activity. Depending on the operating system , a process may be made up of multiple threads of execution that execute instructions concurrently.A computer program is a...
es to respond quickly after the
operating systemAn operating system is a set of programs that manage computer hardware resources and provide common services for application software. The operating system is the most important type of system software in a computer system...
has been idle for some time and their
working setPeter Denning defines “the working set of information W of a process at time t to be the collection of information referenced by the process during the process time interval ”. Typically the units of information in question are considered to be memory pages...
s have been swapped out. Many of his experimental "-ck" patches, such as his prefetching and scheduling code, did not get merged with the official Linux kernel.
In 2007, Kolivas announced in an email that he would cease developing for the Linux kernel. Discussing his reasons in a
24 July online interview, he expressed frustration with aspects of the mainline kernel development process, which he felt did not give sufficient priority to desktop interactivity, in addition to hacking taking a toll on his health, work and family. The catalyst for his decision in part may have been politics involving the adoption of Ingo Molnar's CFS scheduling algorithm versus his own. On the Linux Kernel Mailing List, it was suggested that
Ingo MolnarIngo Molnár, currently employed by Red Hat, is a Hungarian Linux hacker. He is best known for his contributions to the operating system in terms of security and performance...
would better maintain his source code after injection into the mainline kernel, which was a major reason for the adoption of CFS.
Brain Fuck Scheduler
On 31 August 2009, Kolivas posted a new
schedulerIn computer science, a scheduling is the method by which threads, processes or data flows are given access to system resources . This is usually done to load balance a system effectively or achieve a target quality of service...
called BFS (
Brain Fuck SchedulerThe Brain Fuck Scheduler is a task scheduler designed for the Linux kernel in August of 2009 as an alternative to the Completely Fair Scheduler and the O scheduler...
). It is designed for desktop use and to be very simple (hence it may not scale to machines with many CPU cores well). Con Kolivas does not intend to get it merged into the mainline
LinuxLinux is a Unix-like computer operating system assembled under the model of free and open source software development and distribution. The defining component of any Linux system is the Linux kernel, an operating system kernel first released October 5, 1991 by Linus Torvalds...
. He has since begun maintaining the -ck patch set again.
External links