Skip to content

ShawnZhong/DepSurf

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

402 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DepSurf

DepSurf Logo

Website for EuroSys'25 paper "Revealing the Unstable Foundations of eBPF-Based Kernel Extensions"

Shawn (Wanxiang) Zhong, Jing Liu, Andrea Arpaci-Dusseau, and Remzi Arpaci-Dusseau

Paper | Code | Dataset | Website | Slides | Poster

Abstract eBPF programs significantly enhance kernel capabilities, but encounter substantial compatibility challenges due to their deep integration with unstable kernel internals. We introduce DepSurf, a tool that identifies dependency mismatches between eBPF programs and kernel images. Our analysis of 25 kernel images spanning 8 years reveals that dependency mismatches are pervasive, stemming from kernel source code evolution, diverse configuration options, and intricate compilation processes. We apply DepSurf to 53 real-world eBPF programs, and find that 83% are impacted by dependency mismatches, underscoring the urgent need for systematic dependency analysis. By identifying these mismatches, DepSurf enables a more robust development and maintenance process for eBPF programs, enhancing their reliability across a wide range of kernels.
Citation
@inproceedings{10.1145/3689031.3717497,
  author    = {Zhong, Shawn Wanxiang and Liu, Jing and Arpaci-Dusseau, Andrea and Arpaci-Dusseau, Remzi},
  title     = {Revealing the Unstable Foundations of eBPF-Based Kernel Extensions},
  year      = {2025},
  isbn      = {9798400711961},
  publisher = {Association for Computing Machinery},
  address   = {New York, NY, USA},
  url       = {https://doi.org/10.1145/3689031.3717497},
  doi       = {10.1145/3689031.3717497},
  abstract  = {eBPF programs significantly enhance kernel capabilities, but encounter substantial compatibility challenges due to their deep integration with unstable kernel internals. We introduce DepSurf, a tool that identifies dependency mismatches between eBPF programs and kernel images. Our analysis of 25 kernel images spanning 8 years reveals that dependency mismatches are pervasive, stemming from kernel source code evolution, diverse configuration options, and intricate compilation processes. We apply DepSurf to 53 real-world eBPF programs, and find that 83\% are impacted by dependency mismatches, underscoring the urgent need for systematic dependency analysis. By identifying these mismatches, DepSurf enables a more robust development and maintenance process for eBPF programs, enhancing their reliability across a wide range of kernels.},
  booktitle = {Proceedings of the Twentieth European Conference on Computer Systems},
  pages     = {21–41},
  numpages  = {21},
  location  = {Rotterdam, Netherlands},
  series    = {EuroSys '25}
}

Prerequisites

DepSurf requires Python 3.11 or higher. Tested on Ubuntu 22.04 and Ubuntu 24.04.

We recommend using uv for environment setup:

curl -LsSf https://astral.sh/uv/install.sh | sh

Download the source code from GitHub:

git clone https://github.com/ShawnZhong/DepSurf.git
cd DepSurf
git submodule update --init --recursive

Then, you can run the following commands to start Jupyter Lab:

uv run jupyter lab

Result Reproduction

Please follow the instructions in the following Jupyter notebooks to reproduce the results in the paper.

Note

We have pre-generated the dataset and made it available at data/dataset. If you only wish to analyze the results, you may skip 11_download.ipynb and 20_dataset.ipynb to save time and disk space.

Project Structure

  • depsurf: source code of the DepSurf library

    • btf: processing type information

    • diff: diffing the dependency surface

    • funcs: extracing kernel functions information

    • linux: analyzing Linux kernel images

  • data: data files used in the project

    • dataset: dataset for kernel dependency surfaces

    • software: eBPF programs analyzed

    • website: website for DepSurf

  • utils: helper functions used by the notebooks

About

Revealing the Unstable Foundations of eBPF-Based Kernel Extensions

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors