This project focuses on researching performance degradation caused by file fragmentation. The codebase is branched from Linux Kernel 5.15.0, and it aims to enhance performance by modifying the filesystem, block layer, and NVMe device driver. These modifications enable the transmission of filesystem-level append and overwrite information to NVMe commands.
All changes are annotated with "//2448" before and after.
- Verified if the filesize has changed.
- Checked for changes in filesize.
- Monitored filesize changes.
- Examined extent status and stored additional information in the bio.
- Added 'filesizechanged' to map flags.
- Initialized requests.
- Recorded additional information in requests.
- Monitored block count changes.
- Added information to the bio structure.
- Added information to the request structure.
- Incorporated information into NVMe commands based on request details.
- Added debugging information to the NVMe command log.
- Added information to the NVMe command structure.