On Wed, Oct 17, 2012 at 02:39:55AM +0000, Thor Lancelot Simon wrote: > What I'm more worried about is that it may _never_ be a good idea, in the > general case, to put 1M transfers on the bus, particularly single writes, > since they may delay things like log transactions in the disk's write > cache.
I'm sure there is a tradeoff somewhere. But lacking any data I have no idea where it might be. For non-serial SCSI it is not so difficult to do a back of the envelope calculation. The tradeoff there is between CDB transmission and data transfer. CDB transmission is always async while data transmission can proceed at full sync speed. So the basic break-even point seems to be to me the amount of data that you can transfer at full sync speed in the time you can negotiate the bus and transfer another CDB. Then there's the buffer full/empty ratios that you can set that determine when the target starts and stops reconnected data transfers so other devices on the bus have a chance to sneak in traffic between the data transmissions. I have no idea what it is like on SATA/SAS where the link runs at constant speed and you usually don't have multiple devices on the same link. Of course with SATA port multipliers things look different again. My syggestino is to introduce a sysctl'able limit to clamp the maximum transfer size at the hardware level so that people can experiment easily and start gathering data. Maybe a different sysctl variable for RAIDframe and/or other pseudo devices. --chris