Re: use_clustering (sht) bit set to 0 in AHCI ?
Jens Axboe wrote: On Mon, May 21 2007, Jeff Garzik wrote: Jens Axboe wrote: ahci has always had clustering disabled, perhaps Jeff can expand on why? Just historical reasons. libata had clustering disabled by default in the beginning, for all drivers. Then we enabled it globally by changing the value of ATA_SHT_USE_CLUSTERING... but apparently forgot to change drivers which use their own value rather than ATA_SHT_USE_CLUSTERING. Feel free to submit a patch turning it on... The below works for me, but it's only lightly tested. I booted it up and ran some large IO tests, I've verified really large IO sizes as well (using blktrace, I've verified ios up to 9216KiB being accepted and completed by the drive). - From: Jens Axboe [EMAIL PROTECTED] ahci: enable sg segment clustering The specification states that ahci supports segments up to 4MiB in size, so enable clustering. Signed-off-by: Jens Axboe [EMAIL PROTECTED] applied - To unsubscribe from this list: send the line unsubscribe linux-ide in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: use_clustering (sht) bit set to 0 in AHCI ?
On Thu, Apr 26 2007, Alok kataria wrote: Hi Jeff, I recently got a new AHCI disk, and was using the AHCI-libata driver to run this. I noticed that the scattergather lists that were being built for the I/O on this device were just of PAGE_SIZE length, even though i was doing IO on contiguous pages. Through a little instrumentation i figured out that the use_clustering bit in the ahci_sht (scsi_host_template) is set to zero. Due to which we are not putting consecutive bios into one sg in blk_rq_map_sg. I tried changing the clustering bit to 1, but encountered a panic at the initialization of the disks during the bootup process, and so couldn't entirely get hold of the panic mesg. I was wondering, though the max segment size suported with this driver is 65536, why was i not able to feed in bigger SG's to this driver. I searched on the net and the intel ahci arch doc too but couldn't find anything relative to the clustering support for AHCI. It would be great help if you could let me know about the possible problems with clustering on AHCI ? why is it off by default in the driver ? or anything else that might help. It's a good question. If you look at the documentation, it states that ahci supports up to 64k sg entries and each can have a size of up to 4mb (bits 0 through 21). So as far as I can tell, clustering should work with a segment size up to those 4mb. ahci has always had clustering disabled, perhaps Jeff can expand on why? -- Jens Axboe - To unsubscribe from this list: send the line unsubscribe linux-ide in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: use_clustering (sht) bit set to 0 in AHCI ?
Jens Axboe wrote: ahci has always had clustering disabled, perhaps Jeff can expand on why? Just historical reasons. libata had clustering disabled by default in the beginning, for all drivers. Then we enabled it globally by changing the value of ATA_SHT_USE_CLUSTERING... but apparently forgot to change drivers which use their own value rather than ATA_SHT_USE_CLUSTERING. Feel free to submit a patch turning it on... Jeff - To unsubscribe from this list: send the line unsubscribe linux-ide in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
use_clustering (sht) bit set to 0 in AHCI ?
Hi Jeff, I recently got a new AHCI disk, and was using the AHCI-libata driver to run this. I noticed that the scattergather lists that were being built for the I/O on this device were just of PAGE_SIZE length, even though i was doing IO on contiguous pages. Through a little instrumentation i figured out that the use_clustering bit in the ahci_sht (scsi_host_template) is set to zero. Due to which we are not putting consecutive bios into one sg in blk_rq_map_sg. I tried changing the clustering bit to 1, but encountered a panic at the initialization of the disks during the bootup process, and so couldn't entirely get hold of the panic mesg. I was wondering, though the max segment size suported with this driver is 65536, why was i not able to feed in bigger SG's to this driver. I searched on the net and the intel ahci arch doc too but couldn't find anything relative to the clustering support for AHCI. It would be great help if you could let me know about the possible problems with clustering on AHCI ? why is it off by default in the driver ? or anything else that might help. Thanks Regards, Alok Kataria. Principal Dev. Engg. Calsoft Pvt. Ltd. Pune, India. - To unsubscribe from this list: send the line unsubscribe linux-ide in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html