Fall 2009
Computer Science Colloquium
Noon Thursday, September 17
Room 2016, Salazar Hall
Sonoma State University
Rhonert Park, California
A Dynamic Visualization of Core-2 Duo Interrupts
The ability of a Linux programmer to insert user-programmed 'modules'
into a
running kernel opens up the possibility of exploring processor
behavior in real
time, in whatever ways a user can imagine, unencumbered
by CPU privilege-
level restrictions of a multitasking environment.
As an example, we show how
this technique can let us watch the 'live'
occurrence of interrupt activities being
dispatched among multiple CPUs
on an x86 SMP Linux platform.
Dr. Allan B. Cruse, Computer Science Department, University of San Francisco
 |
- Powerpoint Slides
- Demo program: activity.cpp
exhibits our 'dynamic visualization' of system interrupt occurrences
- Demo module: activity.c
the Linux Kernel Module (LKM) needed by our 'activity.cpp' application
- Development tool: mmake.cpp
used for automating the compiling of Linux 2.6 kernel modules
- Demo program: smpwatch.cpp
revision of 'activity.cpp' to show which CPU is being interrupted
- Demo module: smpwatch.c
the Linux Kernel Module needed by our 'smpwatch.cpp' application
- Demo program: zerodiv.cpp
this will generate the CPU's 'divide-overflow' fault (i.e., interrupt 0)
- Demo program: overflow.cpp
this generates the 'interrupt-on-overflow' exception (i.e., interrupt 4)
- Demo program: overrun.cpp
this will trigger the CPU's 'array-bounds' exception (i.e., interrupt 5)
- Demo program: illegal.cpp
this triggers the CPU's 'undefined opcode' exception (i.e., interrupt 6)
- Demo program: int0x80.cpp
this illustrates Linux's use of the interrupt-0x80 system-call interface
- Demo program: dynaview.cpp
provides a 'dynamic visualization' for volatile text in a pseudo-file
- Video recording:
www.youtube.com
(runs approximately 49 minutes using Adobe Flash player)