|Artifact Available||Artifact Functional|
Description of the Artifact
Aurora homepage is available at https://rcs.uwaterloo.ca/aurora/
The artifact consists of
- a set of patches on top of FreeBSD 12.1 that implements the OS core https://github.com/rcslab/aurora-12.1
- Kernel modules that implement the Single level store (SLS) https://github.com/rcslab/aurora
- Live images (ISO, dd) that comes with everything pre-installed https://rcs.uwaterloo.ca/aurora/installer.iso.gz
- Aurora package repository for installing FreeBSD packages https://rcs.uwaterloo.ca/aurora/Aurora:amd64:12.1/
Environment(s) Used for Testing
1) We used emulab infrastructure to build and install Aurora from sources
Hardware used: Emulab Utah d430 (https://wiki.emulab.net/Emulab/wiki/d430)
- Two 2.4 GHz 64-bit 8-Core E5-2630 “Haswell” processors, 8.0 GT/s bus speed, 20 MB cache, and VT (VT-x, EPT, and VT-d) support
- 64 GB 2133 MT/s DDR4 RAM (8 x 8GB modules)
- 4 Broadcom NetXtreme BCM5720 GbE NICs builtin to motherboard (only one in use)
- 1 dual-port or 1 quad-port Intel I350 1GbE PCI-Express NICs
- 1 dual-port or 1 quad-port Intel X710 10GbE PCI-Express NICs
- 1 200GB Intel SATA SSD, 2 x 1TB 7200 rpm SATA disks
2) We used the machines provided by the authors for reproducing the results.
The recommended configuration is:
- A machine with 4x NVMe SSDs (256 GB minimum each)
- A machine for remote benchmarks
- Connected via 10 Gbps or better networking
- Dual socket Intel Skylake SP Silver 4116 CPUs running at 2.10 GHz
- 4 x Intel Optane 900P PCIe SSDs
- 96 GiB of RAM
- 1 x Intel X722 NICs
$ sysctl hw.model hw.machine hw.ncpu hw.model: Intel(R) Xeon(R) Silver 4116 CPU @ 2.10GHz hw.machine: amd64 hw.ncpu: 48
$ uname -a FreeBSD aurora.rcs.uwaterloo.ca 12.1-RELEASE FreeBSD 12.1-RELEASE PERF amd64
Step-By-Step Instructions to Exercise the Artifact
To compile Aurora kernel and their modules from sources, we did the following.
1) Instantiate a node with FreeBSD-12.1 (Readily available on Emulab/Cloudlab machines). To request an account, please visit https://cloudlab.us/signup.php
git clone https://github.com/rcslab/aurora-12.1 cd aurora-12.1 make buildworld make buildkernel KERNCONF=PERF make installworld make installkernel KERNCONF=PERF
3) The next step is to build the kernel modules available at: https://github.com/rcslab/aurora
git clone https://github.com/rcslab/aurora.git cd aurora make mkdir -p /usr/lib/debug/boot/modules mkdir -p /usr/lib/debug/sbin mkdir -p /usr/aurora/tests make install
- If you encounter the following error,
make: "/usr/share/mk/bsd.kmod.mk" line 16: Unable to locate the kernel source tree. Set SYSDIR to override.
you should invoke
4) Run the provided testbench script under tests directory to verify the installation
# cd tests # ./testbench
The log would look like this (Some of the tests were disabled)
Build: FreeBSD 12.1-RELEASE PERF Host: node-d430.emulab Stress testing: OFF 229-chroot.sh [ disabled ] N/A 230-chroot-devfs.sh [ disabled ] N/A ... 238-metropolis-pymetro.sh [ disabled ] N/A 239-metropolis-pymetro-multiple.sh [ disabled ] N/A 240-metropolis-pymetro-partitions.sh [ disabled ] N/A 241-metropolis-pymetro-cachedparts.sh [ disabled ] N/A
5) Loading the kernel module was successful with some warnings
Warning: memory type sls leaked memory on destroy (1 allocations, 512 bytes leaked). Freed UMA keg (Btree Fnode Slabs) was not empty (54 items). Lost 1 pages of memory. Freed UMA keg (SLOS node zone) was not empty (4 items). Lost 1 pages of memory. Warning: memory type slos btree leaked memory on destroy (1 allocations, 32 bytes leaked).
6) The artifact-evaluation scripts are available under
The below scripts run the appropriate experiments for each figure and table that produces a graph/table.
fig3.sh fig4a.sh fig4b.sh fig5.sh table4.sh table5.sh table6.sh
How The Artifact Supports The Paper
The submission was awarded “Artifact available and Functional” badges. To award these two badges, we did,
We were able to successfully build and install the Aurora operating system using the provided instructions on an independent machine.
Also, We ran the scripts provided under
artifact-evaluation to evaluate the
functionality of the operating system.