Next: Performance
Up: Implementation Details
Previous: Snapshot Disk Layout
Even if the device driver framework is desired to be followed
strictly, there are some places in ll_rw_block () which need
modification. Otherwise, deadlocks may occur and performance may be
impacted.
- Deadlock may occur as for each request structure in pseudo device
queue request_fn of pseudo device will create (one or more)
request structures that will be queued to the underlying device
queue. If all the request structures are used up for the pseudo device
queue, none of them can be processed as processing them in the
underlying device requires some request structures. ll_rw_block() code has been modified so that the pseudo device
queue can occupy only half of the maximum slots in the request
structures array.
- Performance will be affected because the kernel will use plug to gather
requests for the pseudo device but this will add to the delay in processing
the requests. For a pseudo device, clustering of requests is not required,
so the ll_rw_block() code has been modified so that plugging
is avoided for the pseudo device.
Next: Performance
Up: Implementation Details
Previous: Snapshot Disk Layout
Suresh Siddha
2001-09-13