Lab Home Lab Phone Lab Search
Home Research Papers Software People Jobs Los Alamos Photos Site Map


Some of the most difficult problems to diagnose and correct are those which are caused by subtle interactions between an application and its operating environment. For example, an application may thrash as it swaps pages in and out of memory because of the order in which data is accessed. Likewise, a distributed application may perform poorly because its processes are never executing when messages arrive from the network. Diagnosing problems like these typically involves substantial trial and error because the required information is only available inside the operating system (OS) kernel. Identifying and correcting such problems would be much easier if key information about OS operation was available outside the kernel.

MAGNET, which stands for a Monitoring Apparatus for General kerNel Event Tracing, is a high-fidelity low-overhead monitoring mechanism for exporting kernel events to user space. Because it is incorporated into the kernel, MAGNET is able to monitor unmodified applications. It also exports key parameters from the OS kernel. In much the same way that the behavior of an electric circuit can be observed on an oscilloscope by attaching leads to parts of the circuit, MAGNET allows the behavior of the operating system and applications to be observed and recorded.

MAGNET was originally developed to monitor the behavior of the networking subsystem of the Linux kernel. To date, it has been used to debug performance problems in a 10-Gigabit Ethernet device driver, to observe a scheduling anomaly in the kernel, to quantify kernel scheduling overhead, to watch the communication pattern of a pair of applications and to facilitate the development of an "adaptive application" (in conjunction with MUSE).


MAGNET provides an embarrassment of riches. Not only does it give very detailed information about the operation of applications and the kernel, it also supports extremely high event rates [2]. Furthermore, the events are low-level kernel events, not high-level application events. A mechanism for selecting and converting specific kernel-level events into application-level events is needed.

MUSE, the MAGNET User-Space Environment, is a set of tools which filters and synthesizes the MAGNET kernel-event stream into application-level events. It consolidates the functionality that each consumer of the MAGNET event stream would have to implement itself.


[1] We have subtly changed the name from "MAGNeT", which stood for a Monitor for Application Generated Network Traffic, to "MAGNET", which stands for Monitoring Apparatus for Generic kerNel Event Tracing, in order to emphasize that the mechanisms are useful for monitoring any kernel event, not just network traffic. Many of the early papers about MAGNET describe the implementation in the first release. For this reason, we are continuing to make the first release available. We emphasize, however, that the first release is for historical purposes only.

[2] An adaptive application is one which is cognizant of its environment and can adapt to changes in that environment. A good example is a multimedia server which compensates for network conditions by compressing movies more when the network is heavily loaded.

[3] We have seen data rates as high as three million events per second (60 MB per second) coming from the kernel during stress testing.

Publication List

Software Download