NoiseCatcher is tool like Linux OS Noise, based on eBPF and IDLE schedule class monitor threads on each CPU. This repository will open source the platform department code, without the communication with BMC, while a helpful mock server is provided to verfiy, and update to suit for any envrioments.
We provide some params like -d: debug mode, print the outputs to screen. and -m: mock mode, send data to a mock service instead of BMC.
- compile the monitor:
make
- run the mockserver:
sudo python3 mockusbbmc.py
- run eBPF tracers, and check the
/sys/fs/bpf
to see the pinned bpf maps, and shutdown thenc_thread.py
, make sure this thread are running after the monitor threads bootstrap, because it will fetch the pid of monitors. - run monitor thread on each core, you are free to test it for run only one instance, for example, use
sudo taskset -c 0 ./noisecatcher -d -m
, and be free to write a script, or use the splited window terminals like terminators is good idea. - run the bpf tracers, for example:
sudo python3 nc_irq.py -d
- use any tool to inspect the noise.db, which is a SQLite database.
@inproceedings{zhang2025interference,
title={Interference Monitoring for Colocated Workloads in Low-Entropy Computing Systems},
author={Zhang, Da and Xia, Haojun and Wang, Xiaotong and Feng, Yanchang and Tu, Bibo},
booktitle={2025 28th International Conference on Computer Supported Cooperative Work in Design (CSCWD)},
pages={2165--2170},
year={2025},
organization={IEEE}
}