"Adaptive Quality of Service Architecture"
(for the Linux kernel)


2010-08-04: The IRMOS Real-Time Scheduler on lwn.net

An article about the new IRMOS real-time scheduler for Linux appeared on lwn.net, a website dedicated to the latest features available for the Linux kernel (both mainline and experimental). Feel free to comment.

2010-07-03: New real-time SMP scheduler (IRMOS)

A new real-time SMP scheduler is available for the AQuoSA architecture. It has been developed by Fabio Checconi in the context of the IRMOS European Project. This scheduler is based on a direct modification of the POSIX real-time scheduling class within the Linux kernel, and has been designed from the scratch for multi-processor and multi-core systems, and with the possibility to plug hierarchically POSIX Fixed Priority scheduling within each EDF-based reservation. Thanks to the work made by Giacomo Bagnoli during his Master Degree Thesis, the new kernel keeps compatibility at the user-space API level with the traditional AQuoSA scheduler. More information is available here. Go straight to the Download Area and try it.

2010-05-30: About page added to website

A new page about the AQuoSA history has been added to the website, giving credits to the main contributors to the project.

2009-11-25: Papers page added to website

A new page about research papers describing AQuoSA, as well as just using it, has been added to the website. Only a few are mentioned at the moment, however more are expected to come. Check out the new page at the URL: http://aquosa.sourceforge.net/papers.php.

2009-11-03: AQuoSA on OpenMoko

Thanks to Michael Trimarchi, AQuoSA has been compiled and tried on an OpenMoko FreeRunner Linux-based mobile phone (based on Android). Preliminary tests show that the real-time scheduler works fine, while the user-space start-up script creating the AQuoSA devices needs some customization in order to work properly.

2009-10-23: AQuoSA at ESTIMedia 2009

AQuoSA has been used for a paper on automagic provisioning of scheduling guarantees to legacy real-time applications, presented last week at the 7th IEEE Workshop on Embedded Systems for Real-Time Multimedia. During the poster session, it was possible to show a quick demo of the AQuoSA scheduler, which raised a lot of interest.

2009-06-22: New AQuoSA component: mod_reserve 0.1

AQuoSA has been enriched with a new component: mod_reserve, a CPU Resource Reservations Module for Apache. The mod_reserve is an Apache2 module (available for Linux) which extends Apache allowing to reserve a certain CPU bandwidth for the provisioning of a service. On the AQuoSA sourceforge website, the package tarball has been made available for download. It relies on the aquosa-qosres package (we suggest to use version for kernel 2.6.28-gs-3.1).

2009-05-21: Patched 2.6.29 binary kernel image

On the AQuoSA website, the kernel image and header .deb packages for the 2.6.29 vanilla kernel, patched with the Generic Scheduler Patch for AQuoSA, and the Bandwidth Fair Queueing (BFQ) patch, have been made available for download. The packages have been built on a Ubuntu Jaunty 9.04 with a gcc 4.3.3.

2009-04-29: AQuoSA QoSRes 1.2.0 for kernel 2.6.29 released.

A new release of the AQuoSA resource reservation component(aquosa-qosres-1.2.0) has been released and is now available for download from the AQuoSA website (http://aquosa.sourceforge.net). The major enhancement in this release is constituted by thecompatibility with 2.6.28 kernel series and others, thanks to the new Generic Scheduler patches that are now available for download from the kernel-patches package (thanks to Luca Abeni, Fabio Checconi and Dario Faggioli for their support in the engineering and debugging of this new series of patches). Note that testing of this new release is still preliminary, so feedback from users or developers is greatly appreciated. Please, feel free to report any issues in compiling or using this new release through the usual support channels.

2009-02-08: AQuoSA QoS Manager v0.3.0 released.

The AQuoSA QoS manager (aquosa-qosmgr) v0.3.0 has been released, realizing adaptive reservations on top of the AQuoSA scheduler (aquosa-qosres). Go straight to the download section and try it.

2009-02-02: AQuoSA QoSRes v1.1.0 released.

This release of the AQuoSA scheduler fixes various issues that have been identified in the 1.0.0 release, and adds some extra capabilities to the core scheduling algorithm. Among others, the scheduler now implements spare capacity and/or dynamic reclamation policies through compile-time switches (see qres_config.h.in for details); the qres command-line utility has been enriched with an almost complete support to the operations available through the qreslib API; the qres_setparams() function has been fixed, so that now the server period may be changed as well as the budget.

2008-09-08: AQuoSA used in RI-MACS demo

The AQuoSA scheduler has been successfully used in the final review demo of the European Project RI-MACS. Its role has been to provide temporal isolation between:
  • a centralized task acting as a gateway between a controlling PLC and a controlled intelligent device (see the RI-MACS website for further details)
  • two mpeg4-based streaming tasks
The so-obtained configuration proved itself very stable against CPU hogging tasks randomly injected in the system by purpose.

2008-02-26: Aquosa-monitor 0.3.2 is out

Some more bugfixing. In particular, a compilation bug due to autoconf macros has been fixed

2007-12-22: Generic Scheduler Patch for 2.6.22 is out

The Generic Scheduler Patch for the 2.6.22 and kernel releases are now available for download from the kernel-patches AQuoSA subproject. Tests for the stability of the aquosa-qosres component with the new patch are still under way.

2007-12-20: Porting to 64-bit architectures started

The current CVS branch of aquosa-qosres now compiles and apparently runs on an AMD 64-bit architecture. Also, a pre-compiled kernel package for Debian AMD64 distributions is available for download. Still more tests are needed in order to check stability on the new architecture.

2007-12-07: First QoSRes stable candidate release

The first candidate stable release of aquosa-qosres (1.0.0-rc1) is out. Check it out following the SourceForge Area link from the AQuoSA website.

This release fixes a few configuration issues and minor bugs, and introduces the possibility to reserve a certain amount of spare bandwidth in the supervisor configuration (useful for adaptive reservations).

As usual, any comments or suggestions of improvements are of course welcome.

2007-09-18: AQuoSA Monitor 0.3.1 released

Mainly bugfixing

2007-08-30: AQuoSA Monitor 0.3.0 released

A new version of the aquosa-monitor tool is available for download from the Sourceforge area (aquosa-monitor-0.3.0-2.14.3.tar.gz).

Thanks to L. Palopoli and M. Ceschi from University of Trento for having contributed a set of new features in this release:

  • Now it is possible to enclose threads (besides processes) in a reservation
  • There is one more tab now, to graphically manage servers and tasks enclosed within. With simple drag and drop operations it is possible to move processes or threads across servers.

2007-06-19: New AQuoSA Developers List.

A new list has been created for internal discussions about AQuoSA development that would not be of general interest for simple users of the framework.

2007-05-25: AQuoSA QoSRes v0.6.1 released.

This release introduces a couple of flags useful when creating servers. If QOS_F_PERSISTENT is enabled, a server is allowed to exist beyond detach of the last task. If QOS_F_SOFT is enabled, a server tasks are scheduled by the Linux default scheduler/policy, when outside of the server reservation. Also, various stability issues in destroying servers have been fixed, also thanks to a new release of the generic scheduler patch for the Linux kernel (gs-2.2).

2007-05-21: aquosa qosres v0.6.1 pre release on cvs.

A pre-release of the aquosa-qosres-0.6.1 is available from the CVS repository tagged as "v0_6_STABLE". The new release introduces persistent servers, that keep existing after detach or death of all attached tasks. These need to be created by explicitly setting the QOS_F_PERSISTENT flags in the parameters to the qres_create_server() function call. Please, note that in future releases, persistence will be kept until a maximum configurable time-out, after which an empty server will be killed anyway by the OS (for avoiding resource starvation).

2007-05-05: New AQuoSA qosres 0.5.1 available.

Due to the discovered and fixed bugs, I recommend everyone to download this instead of the 0.5.0 version. Also, a possible issue with versions of the gcc lower than 4.1 has been solved in the standard provided configuration.

2007-04-22: New AQuoSA qosres 0.5.0 available.

A new release is available for the QOS RES module of AQuoSA. In this release, code has been completely refactored, in order to be more maintainable and allow an easier development of the additional features (persistent servers, fast default server, soft reservations, ecc...). Task dispatching mechanism has been redesigned and uses a new kernel patch. Instead of the fake task state that caused the scheduler to ignore the task, now the task is removed from the runqueue when the server exhausted budget. Just go straight to the download area of the site and try it. Do not forget to download the new kernel patch as well.

2007-04-16: FRESCOR Meeting in Pisa.

Pisa will host a meeting between some of the partners of the FRESCOR EU project, among which the well-known Visual Tools. The meeting will address, among others, issues related to the integration of AQuoSA components within the FRESCOR project for supporting video streaming solutions.

2007-01-17: AQuoSA acronym reshape.

Eventually, the acronym for the project got its final form: Adaptive Quality of Service Architecture, dropping the older one: an Open Quality of Service Architecture. This has been done in order to highlight the importance of having feedback-based scheduling components in the framework (to be released soon), what primarily distinguishes this project from similar ones on the web.

2007-01-13: New member in the team.

Fabio joined the AQuoSA team, eventually. He is going to integrate a new approach to the low-level mechanism of resource reservations into the Linux kernel, which is much more invasive than the previous hook-based approach, but possesses native support for SMP platforms.

2006-11-23: AQuoSA qosres v0.3.1 released

Some bugs fixed

2006-11-23: AQuoSA Monitor v.0.2.0 released

Now it is possible to specify the aquosa-framework version which to compile the monitor against. In this way, it will be possible to keep the monitor updated in respect of the framework with little efforts.

Besides that some bugs have been fixed.

2006-10-27: AQuoSA Monitor binary archive released

A precompiled binary archive of the AQuoSA Monitor v0.1.0 has been released. The archive contains all needed Gnome/Gdk/Gtk libraries. This allows people to easily try the program, even if they do not have the latest versions of such libraries installed onto the system, without any need to upgrade them.

2006-10-14: AQuoSA monitor v0.1.0 released

The AQuoSA project now features a wonderful GUI for managing CPU servers and processes attached to them. The program is based on the well-known gnome-system-monitor, and adds the capability of complete management of CPU servers (creation of new servers, change of parameters at server-run-time, deletion of servers). The program is at its very first release, but as it evolves, it is expected to become a quite powerful tool for helping tuning of server parameters for AQuoSA enhanced applications, as well as for helping system admins (or experienced users) to tune parameters for possible system components wrapped into servers. Also, note that it is possible to use the command-line equivalent programs "qres-wrap" and "qres-reserve" included into the aquosa-qosres component, but these are more suitable for automated set-up of CPU servers through scripts (e.g. init.d scripts).

2006-09-27: AQuoSA qosres v0.3.0 released

The new 0.3.0 release of the Resource Reservation module (qosres) comes with the support for multi-task servers enabled by default. This feature allows to place a set of threads and tasks into a single server, thus allowing to reserve a minimum guaranteed fraction of the CPU to them, as well as to restrict the maximum CPU fraction allowed to be subtracted to the system. Among others, the application rt-app.c is included within the qreslib test utilities, which is a simple application used to highlight how real-time applications that would not be able to execute timely with the standard Linux kernel, may execute correctly taking advantage of the AQuoSA framework.

2006-08-01: AQuoSA qosres v0.2.3 released

This release includes minor bugfixes and improvements. As an example, the new qres-reserve application allows to reserve bandwidth (or to change the reserved bandwidth) to a running process. Furthermore, the default debug level has been decreased due to some instabilities it was causing.

2006-07-12: AQuoSA for Linux Kernel 2.6 is now available

In the context of the open-source AQuoSA project (An open Quality of Service Architecture), new resource-level components for the Linux kernel 2.6.x series have been released. For the purpose of easying the task of trying/testing the above cited components (whose compilation would require i.e. compilation of the entire Linux kernel) for non-kernel developers, a few Debian/Ubuntu packages have been precompiled for an i386 architecture and made available from the SourceForge Area of the project.

[Read more...]

2006-07-08: Added autoconf and Debian support to build process

The qosres component has been enhanced with autoconf support for providing configuration options. Furthermore, a process for building debian binary packages has been embedded in the main qosres sources tree.

2006-07-07: Porting to kernel 2.6 released

A preliminary version of the low level resource reservation layer (component aquosa-qosres) for the kernel 2.6.x series has been released, after a major reorganization of the code. The feedback-based adaptive layer (component aquosa-qosmgr) is still being adapted to the new code structure.

2006-06-28: Porting to kernel 2.6 now stable

After the fix of a few bugs in the management of the task states, a set of tests showed that the kernel is now stable, in the basic configuration of hard reservations with mono-task servers. The configuration with multi-task servers, which would allow to place the entire set of Linux tasks into a reservation, is still under tests.

2006-06-13: AQuoSA introduced during the FRESCOR kick-off meeting

During the kick-off meeting of the EU-Funded project FRESCOR, Scuola Sant'Anna introduced AQuoSA as a reference architecture for structuring QoS adaptation related components in the upcoming project activities.

2006-02-10: Added on-line install page to the site

The page contains instructions not only for installing the architecture, but also for using it at the most basic level: reserving a minimum guaranteed amount of CPU bandwidth to a generic program

2006-01-30: Birth of the 3D AQuoSA logo

It refines the previous idea of the H2O molecule.

2006-01-27: AQuoSA logo proposal on the web site

But it has not been approved yet by other team members

2006-01-26: First AQuoSA official release available for download

Patches to the Linux kernel have been grouped into the kernel-patches package, while the aquosa package will only contain downloads for the QoS architecture components.

2006-01-20: AQuoSA web site is still up

but it's still work in progress

2006-01-19: AQuoSA web site has been ported to php platform

but it's still work in progress

2005-11-14: The AQuoSA project is online for the first time

But we have just the CVS and a very draft web-site on-line

Latest news

The IRMOS Real-Time Scheduler on lwn.net

New real-time SMP scheduler (IRMOS)

About page added to website

Papers page added to website

Last update:
August 4, 2010