High-Speed Data Relay Filesystem

relayfs Patches | Latest News | Old material | Background | The relayfs Team

relayfs Patches:

NOTE - 2005/04/04: A significantly streamlined version of relayfs was recently accepted into the -mm kernel tree. Please use that version for any new applications. The API documentation for the new version can be found in Documentation/filesystems/relayfs.txt and a set of example applications can be found at http://relayfs.sourceforge.net under the heading 'relay-app examples' in the file releases section.

The patches here are for the 'old relayfs', which will continue to be maintained for current users, but which should be considered obsolete.

Please see http://relayfs.sourceforge.net for the latest versions of these 'old relayfs' patches.

    2.6.11 OLD 2005/04/04
    2.6.11 OLD 2005/04/04 (bz2)
    2.6.10 2005/01/13
    2.6.10 2005/01/13 (bz2)
    2.6.9 2004/11/24
    2.6.9 2004/11/24 (bz2)
    2.6.7 2004/06/25
    2.6.7 2004/06/25 (bz2)
    2.6.3 2004/03/05
    2.6.3 2004/03/05 (bz2)
    2.6.3 2004/02/20
    2.6.3 2004/02/20 (bz2)
    2.6.3 2004/02/18
    2.6.3 2004/02/18 (bz2)
    2.6.2 2004/02/17
    2.6.2 2004/02/17 (bz2)
    2.6.1 2004/01/22
    2.6.1 2004/01/22 (bz2)
    2.6.0-test11 2003/12/11
    2.6.0-test11 2003/12/11 (bz2)
    2.6.0-test11 (bz2)
    2.6.0-test1 (bz2)
    2.5.65 (bz2)
    2.5.64 (bz2)
Latest News
15/07/2003: printk on relayfs and relayfs for 2.6.0-test1:

Tom has been busy fixing and extending relayfs in the last few months. We now have a fully functional printk on relayfs, allowing dynamic resizing and very large buffers at startup. Your feedback and testing is always welcome.

17/03/2003: First release of relayfs code:

Thanks to the dedicated work of Tom Zanussi (IBM), the first implementation of relayfs is now available for download. Click on the sidebar to download the patch. Patches are also available for running the Linux Trace Toolkit, one the many anticipated clients, on relayfs. These patches and details on their use are available here.

Old material

As the Linux kernel matures, there is an ever increasing number of facilities and tools that need to relay large amounts of data from kernel space to user space. Up to this point, each of these has had its own mechanism for relaying data. To supersede the individual mechanisms, we introduce the "high-speed data relay filesystem" (relayfs). As such, things like LTT, printk, EVLog, etc. should all use relayfs to get their data to user-space. The use of relayfs would, for example, avoid lost printk's. It would also result in the standardization of the way in which large amounts of data are transferred from kernel space to user space.

The main idea behind the relayfs is that every data flow is put into a separate "channel" and each channel is a file. In practice, each channel is a separate memory buffer allocated from within kernel space upon channel instantiation. Software needing to relay data to user space would open a channel or a number of channels, depending on its needs, and would log data to that channel. All the buffering and locking mechanics are taken care of by the relayfs.

The relayfs Team:
Tom Zanussi (IBM)
Karim Yaghmour (Opersys inc.)
Bob Wisniewski (IBM)
Richard Moore (IBM)
Michel Dagenais (École Polytechnique de Montréal)