Messages in this thread | | | Date | Thu, 3 Jul 2008 18:54:53 -0400 (EDT) | From | Mikulas Patocka <> | Subject | Re: [PATCH 1/2] Avoid bio_endio recursion |
| |
On Thu, 3 Jul 2008, Alan Cox wrote:
>> I use the old IDE driver, I don't see a reason why driver should create >> SCSI requests and lower layer translate them to ATA commands. > > Because modern drives are basically SCSI devices. Once you turn on NCQ > and stuff you need all the midlayer queueing magic ...
There is no piece of SCSI protocol in SATA disks. The command and response FIS of SATA standard contain legacy IDE registers, there's nothing about SCSI. Even the NCQ commands are done via IDE registers, not SCSI command block. It seems like someone wanted to save few weeks of coding by reusing the SCSI disk queuing ... and created a lot of other problems (example: if you have disk error with IDE driver, it dumps IDE registers into log ... if you have disk error with SATA driver, it dumps sense key ... but there's no sense key in SATA standard ... the driver just had to make up one because it pretends to be SCSI).
Mikulas
| |