UW-Madison Logo

The ADvanced Systems Laboratory (ADSL)
Traces

fs-patch: Linux File System Patch Dataset

Downloads: fs-patch.tar.gz

Introduction

We conduct a comprehensive study of file-system code evolution. By analyzing eight years of Linux file-system changes across 5079 patches, we derive numerous new (and sometimes surprising) insights into the file-system development process; our results should be useful for both the development of file systems themselves as well as the improvement of bug-finding tools

We focus on six major file systems: XFS, Ext4, Btrfs, Ext3, ReiserFS and JFS. All Linux 2.6 major versions are included (Linux 2.6.0 to Linux 2.6.39).

What we provide

We provide our analysis details for each file system patch in following aspects:
  • patch classification: types(bug, performance, reliability, feature and maintenance) and size(modification of source code)
  • bug patch: bug patterns, bug consequences, components, failure paths, tools used, fix-on-fix, common patterns, etc
  • performance patch: performance patterns, components, common patterns, etc
  • reliability patch: reliability patterns, components, common patterns, etc

How to use

README file describes our detailed classifications, notations and examples. For each patch, we provide a patch header and our analysis. Given the patch header, you can find the original patch in following places:
  • linux kernel git repository: http://kernel.org/
  • kernel commit search: http://search.gmane.org/

Notes

File system patches and our annotations are all released. We will provide more utilities to process these patches over time.