Next: Performance Evaluation
Up: Implementation
Previous: Implementation
Even though the device driver framework of the Linux has been
attempted to be strictly followed, a few changes have been necessary
in the kernel[1]:
- Linux does clustering only for drivers compiled in the
kernel and not for loadable modules. TSS relies on clustering to gain
performance, otherwise all the stripe I/Os will be partial ones. So we need to
enable clustering for the TSS driver in ll_rw_block() code.
- Each request structure that gets queued to the TSS device queue
will result in requests queued in the underlying device queues. If all
the request slots are consumed by the TSS device, then it will lead to
deadlock, as processing these requests requires free request structure
which are not there. To avoid such deadlock, the number of request
structures that can be used by the TSS device is set to half of the
total possible request structures in the system.
2001-09-13