Threadlet is a hardware-supported thread abstraction implemented in a Rocket-based processor and used by LoomOS, an Asterinas-based operating system. This artifact provides the source code and experiment entry points for the following evaluation figures:
- Figure 7: context-switch, scheduling, thread-to-thread notification, and device-to-thread notification latency;
- Figure 8: scheduling overhead and throughput;
- Figure 10: networking performance with different kinds of requests;
- Figure 12: MCS lock throughput and average latency.
Threadlet-AE/
|-- chipyard/ Hardware configuration and integration
| `-- generators/rocket-chip/ Threadlet CPU hardware implementation
|-- loomOS/ Asterinas-based Threadlet OS
| |-- kernel/ LoomOS kernel source
| |-- ostd/ Architecture and low-level OS support
| |-- eval/ FPGA experiment launchers and log analyzers
| `-- tools/ FPGA boot configuration and utilities
|-- benchmark/ Workload and benchmark source code
|-- script/ Artifact experiment and plotting entry points
|-- result/ Parsed CSV results and generated PNG figures
`-- README.md
The hardware implementation is under
chipyard/generators/rocket-chip, while the FPGA experiment launchers and
hardware-log analyzers are under loomOS/eval.
Start the LoomOS build container from the artifact directory:
cd Threadlet-AE/loomOS
./docker_start_debug.shInside the container, build the RISC-V LoomOS kernel and all experiment device trees:
cd /root/asterinas
./build-os.shThe build command produces the optimized RISC-V kernel used by the FPGA
experiments and compiles the device-tree source files under loomOS/tools into
DTB files.
Run the figure scripts one at a time from the artifact script directory. The recommended order is important because the Figure 7 analysis consumes logs generated by the other experiments.
cd Threadlet-AE/script
./figure8.sh
./figure10.sh
./figure12.sh
./figure7.shFigure 7 need to uses the hardware logs produced by Figures 8, 10, and 12, so
figure7.sh must run after all three experiments have completed.
Each script runs its LoomOS experiment, parses the hardware log into a CSV file,
and generates the corresponding PNG in Threadlet-AE/result.
All paths below are relative to Threadlet-AE/.
| Figure | Parsed data | Generated figure |
|---|---|---|
| Figure 7 | result/fig7/threadlet.csv |
result/fig7/figure7.png |
| Figure 8 | result/fig8/threadlet.csv |
result/fig8/figure8.png |
| Figure 10 | result/fig10/threadlet.csv |
result/fig10/figure10.png |
| Figure 12 | result/fig12/threadlet.csv |
result/fig12/figure12.png |