|
Home
News
About
Download
Current version
Documentation
Module timers
HOWTO: Module usage
Performances
References
Credits
Contributing
Author's homepage
|
APIC timer Module for Linux
News
|
2001 IBM Linux Scholar Challenge Winner!
|
|
on Tuesday January 22 2002, @5:00PM
Uwe Walter wrote a paper presenting the APIC Timer module and his
traffic shaper for the
2001 IBM Linux Scholar Challenge and we won!
Klasse!
|
|
Sorry, maintaining suspended.
|
|
on Tuesday October 9 2001, @5:00PM
Since I don't have a computer with Linux currently, I cannot update
the module. Sorry for the inconvenience.
|
|
Release 1.0.4 of the module.
|
|
on Tuesday June 26 2001, @5:00PM
Disable interrupts whenever the timer list is modified, in order to
eliminate race conditions when the APIC Timer is used by multiple
thread of execution (see comments in uka_apic_timer.c).
Important change - Thanks for writing me at
vincent at oberle dot org to report problems.
Get it.
|
|
Release 1.0.3 of the module.
|
|
on Tuesday Mai 8 2001, @9:00PM
Bug-fixes, some cleaning, merging of some of Ryan Barnett patchs.
Bug-fixes in start_apic_timer:
With some expires values, the division produced 0, blocking the modul
(timer loss problem).
Use of do_div of asm/div64.h for the 64-bits division.
start_apic_timer returns a boolean now.
Changed the way of reacting when start_apic_timer returns 0 to avoid stack overhead
Deleted optimized version run_apic_timer (and APIC_TIMER_OPTIMIZED_RUN
config option). Added a lot of mess in the module, was not used anyway.
Deleted APIC_TIMER_AUTO_FREQ option (default is auto now).
Deleted APIC_TIMER_ERROR_ADJUSTMENT (always used).
Get it.
|
| Old news |
About the module
The APIC timer module is an implementation of precise timers
for the Linux 2.4 kernels and further.
The module provides microsecond precision timers that are programmed
with a TSC value.
It is accomplished by using the timer of the local APIC,
availaible on P6 processors.
Download
The current release for the 2.4 kernel branch is
1.0.4
All code is placed under the
GPL.
List of releases.
- Older releases
- 1.0.0
Version for the 2.4.0 kernel.
- 1.0.1
Version for 2.4.3 kernel
Updated calibrate_apic_timer, trying to correct incorrect bus frequency
Test code for the "loosing timers" problem.
- 1.0.2
Important bug-fix release:
There were problems under heavy-load (lot of
timers), should be fixed now (thanks to Uwe Walter for noticing it).
- 1.0.3
Bug-fixes in start_apic_timer:
With some expires values, the division produced 0, blocking the modul
(timer loss problem).
Use of do_div of asm/div64.h for the 64-bits division.
start_apic_timer returns a boolean now.
Changed the way of reacting when start_apic_timer returns 0 to avoid stack overhead
Deleted optimized version run_apic_timer (and APIC_TIMER_OPTIMIZED_RUN
config option). Added a lot of mess in the module, was not used anyway.
Deleted APIC_TIMER_AUTO_FREQ option (default is auto now).
Deleted APIC_TIMER_ERROR_ADJUSTMENT (always used).
- 1.0.4
Disable interrupts whenever the timer list is modified, in order to
eliminate race conditions when the APIC Timer is used by multiple
thread of execution (see comments in uka_apic_timer.c).
Important change - Thanks for writing me at
vincent at oberle dot org to report problems.
Documentation
Timers of the APIC timer module.
Purpose: This document describes how timers are managed
in the APIC timer module in order to get the less latency
possible.
HOWTO: Usage of the APIC timer module.
Purpose: This document shows how to use the APIC
timer module. The test module from the distribution is
an example.
Performances of the APIC timer module.
Purpose: This document presents some performance tests in various
configurations of the APIC Timer module.
References
Karlsruhe Implementation of Differentiated Services
Kernel programming
Linux Kernel Module Programming Guide
And of course the source itself
(use LXR).
Intel Pentium documentation
Intel Architecture Software Developer's Manual,
Volume 1: Basic Architecture
Intel Architecture Software Developer's Manual,
Volume 2: Instruction Set Reference Manual
Intel Architecture Software Developer's Manual,
Volume 3: System Programming Guide
Credits
The main author of this module is Vincent Oberle
(vincent at oberle dot org)
It was developped at the
University of Karlsruhe,
in the
Institute of Telematics.
Other credits to
Klaus Wehrle
and Hartmut Ritter
for the help during the project and the idea of using the APIC timer.
and to:
- Mikael Pettersson
for the APIC enabling code and his kernel APIC patch.
- John Levon for testing the APIC
enabling code and solving the problem with disabling the APIC.
- Olaf Titz for his kernel patch
that I used to make a correct Makefile.
- Guillaume Legoupil
for using the module :) and sending bug report / test program.
- Uwe Walter for his active using and testing,
and for his bug reports.
- and all kernel developers!
Contributing
|