Messages in this thread |  | | Date | Tue, 5 Nov 1996 20:54:33 -0800 | From | "Leonard N. Zubkoff" <> | Subject | Re: Block device interface could use some work |
| |
Date: Tue, 5 Nov 1996 23:27:44 -0500 From: "Theodore Y. Ts'o" <tytso@MIT.EDU>
Yes, and it has to violate the abstraction barrier to do so. (That's OK, it had to violate the abstraction barrier to issue multiple SCSI commands simultaneously.) Unfortunately, because it was done in the SCSI layer, it means that the IDE device driver doesn't have the benefit of the changes the SCSI community made. Perhaps that's should be a hint that all of this work should be done in the upper layer. That way both the IDE and SCSI drivers would be able to take advantage of it.
Agreed. Here's another one for the list of abstraction problems: the code to aggregate I/O requests in ll_rw_blk.c will combine requests up to 244 sectors or so, whether or not these can actually be executed as a single I/O command by the SCSI disk driver due to scatter/gather list length constraints. If multiple SCSI commands are necessary, each subsequent one won't even be queued until end_request is called from the previous command's completion processing. There clearly has to be more communication/cooperation between the levels in I/O processing to avoid such sub-optimal behavior.
Leonard
|  |