|
Project Information
|
Motivation Blktrace is low-overhead, configurable kernel component that generates events for specific operations performed on I/O entering or leaving the block layer. The events generated by kernel blktrace are get intercepted by a user level application also named blktrace. (I will call these components kernel blktrace and user blktrace respectively.) Current blktrace have a serious technical limitation. The log information that kernel blktrace generate indicates the PID and the application name as following example: 8,0 0 132 3.170084711 14403 C W 24165559 + 8 pdflush The problem is process ID and name information might not be the correct process responsible for that operation. It is mostly because the Linux kernel writes dirty pages asynchronously and the pdflush is the ultimate process that flushes dirty pages to the disk. Goals In this project, I will make the process information correct by modifying several kernel components and a user-land application. There are three components to be modified: 1. Memory management subsystem to save accurate process information per page 2. Kernel blktrace to log accurate processes information 3. User blktrace to follow up new kernel blktrace In addition to this, as an extra credit, I will try to modify the CFQ to maintain a per-process asynchronous (write) queue to allow performing I/O scheduling fairly. (See extra feature section.) |