From mboxrd@z Thu Jan 1 00:00:00 1970 From: Werner Almesberger Subject: Active Block I/O Scheduling System (ABISS), version 1 Date: Thu, 21 Oct 2004 11:02:33 -0300 Sender: linux-fsdevel-owner@vger.kernel.org Message-ID: <20041021110233.A31465@almesberger.net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: linux-fsdevel@vger.kernel.org, celinux-dev@tree.celinuxforum.org Return-path: Received: from almesberger.net ([63.105.73.238]:58380 "EHLO host.almesberger.net") by vger.kernel.org with ESMTP id S261239AbUJUOCm (ORCPT ); Thu, 21 Oct 2004 10:02:42 -0400 To: abiss-general@lists.sourceforge.net Content-Disposition: inline List-Id: linux-fsdevel.vger.kernel.org The Active Block I/O Scheduling System (ABISS) is an extension of the hard-disk storage subsystem of Linux, whose main purpose is to provide a guaranteed reading and writing bit rate to applications. http://abiss.sourceforge.net/abiss-1.tar.gz md5sum ae832bcb94d5f8f29bfe4f4a737b2831 sha1sum b57722be9f35b54806b17b896e0cdf48d1e0f9d1 The kernel parts are still for 2.6.7. (Upgrade to 2.6.9 coming soon.) The highlights since the last release: - added libabiss, a wrapper library that provides unistd/stdio-like functions, prefixed with "abiss_", to open and access files with ABISS. - priorities are now per task, not per file, which greatly simplifies things, and better aligns them with Jens' priority design. - when refilling a buffer, the scheduler also tries to refill the buffers of other files which are close to needing a refill. This reduces the number of seeks if there are a few relatively slow real-time readers competing with greedy best-effort readers. - the whole "access prediction" mechanism for writes is gone. All it did was to provide an estimate even Murphy would find too pessimistic, and it needed a lot of file system specific code to do this. - switched from the "unofficial" UML patch 2.6.7-01 to the "official" 2.6.7-1 The detailed list of changes is below. For additional information, please have a look at http://abiss.sourceforge.net/ - Werner ----------------------------------- CHANGES ----------------------------------- Version 1 (21-OCT-2004) ----------------------- General: - README: corrected Nick Piggin's name - Makefile: added SHA1 sum Tools: - rdrt now measures the time to move the playout point separately, and sports two new options, -p and -a, to print this time over run time, or in a histogram - rdrt now limits memory allocations (can be turned off with new option -x), and its CPU priority can be lowered to normal with new option -o abissd: - abissd/var.c:var_assignment: forgot that strncpy does not always NUL-terminate its strings Kernel: - switched from "unofficial" uml-patch-2.6.7-01 to "official" uml-patch-2.6.7-1 - removed per-file (really per-inode) priorities, because we already have per-task priorities - fs/abiss/sched_lib.c:abiss_hp_raise: set "sched_priority" to 1 instead of (invalid) 0 - removed /sys/block/.../default_priority - fs/abiss/sched_test.c: in an abiss_st_query message, msg.u.query.page_state can now be NULL to omit retrieving the potentially large page state array - removed access prediction for allocations - added reserved space to "struct abiss_sched_test_prm", to allow for future extensions without breaking binary compatibility - sched_test.c now tries to refill buffers of different files at the same time, to avoid excessive seeking - fs/abiss/elevator.c: added some tracing to hunt down a heisenbug -- _________________________________________________________________________ / Werner Almesberger, Buenos Aires, Argentina werner@almesberger.net / /_http://www.almesberger.net/____________________________________________/