All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
Daniel Waddington ([email protected])
- updates to build system; remove COMANCHE_HOME requirement
- FUSE integration
- Example component based on wrapped-Python
- Posix block device component now supports callback functions.
- Use CMAKE_SOURCE_DIR for out-of-tree build
- Wiki page on configuring qemu with nvme support with libvirt, here
- before running fetch-deps.sh export MAKEFLAGS="-j 8"
- uuid-dev is required by spdk build
- Initial RDMA network component (net/rdma)
- Compiled with clang++
- Mechanics test for SSD to GPU DMA. Requires patch to SPDK see deps/spdk-extra.
- Initial implementation of Core::UIPC
- Initial implementation of MPMC postbox; unverified.
- Default read/write sync operations on IBlock_device now use a semaphore and thus do a sleep-based wait.
- Added second call back argument to IBlock_device asynchronous methods. This allows this pointer passing.
- Rework of CMakeLists.txt for components to improve common.cmake and use COMANCHE_HOME env variable
- Break out components into family directories
- Initial RAID0 component. Untested.
- Zero-copy read iterator to Append-Store
- Support for callbacks to async_read/write methods on IBlock_device
- Sample component
- Major overhaul of the build/linking arrangement. SPDK and DPDK are now compiled into the comanche-core dynamic library. All components needing access to DPDK/SPDK should link to this library.
- Updated to DPDK 17.08 and SPDK (tag fca11f1)
- Changed libcommon.a to dynamic library so that its license (LGPL) can be kept separate.
- Block-nvme component; major rework around out-of-order operation fixes.
- Unified cmake build system. CMakeLists.txt should include common.cmake, e.g.,include(../../../mk/common.cmake)
- Debug, Release or ASAN (Address Sanitizer) builds configured through: cmake -DCMAKE_BUILD_TYPE=<DEBUG|ASAN|RELEASE> .
- Cmake should be run for root to ensure consistency
- Placeholder for shared work hooks in IBlock_device interface
- Jenkins continuous integration support for build testing
- Address santizer (ASAN) build support; used for memory leak debugging. Note: ASAN may not work with components t that perform memory tricks.
- Support for DPDK memory in block-posix block device. This allows it to be used with the pmem-paged-posix component.
- Patch for DPDK 17.05.1 to support XMS-module based physical address resolution.
- Updates to fetch-deps script to perform DPDK patch.
- Removed rapidjson from the fetch-deps into a install-apts (i.e. package). Make sure you delete /usr/local/include/rapidjson from previous installations.
- Improved load component to search current path and COMANCHE_HOME path.
- The pmem-paged-posix uses POSIX APIs and XMS module (to get virtual-physical address mappings. Only the posix-nvme block device current works with the pager-simple. Do NOT attempt to use the uNVMe based block device - this will result in memory corruption.