Re: use_clustering (sht) bit set to 0 in AHCI ?

2007-05-24 Thread Jeff Garzik

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 ?

2007-05-21 Thread Jens Axboe
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 ?

2007-05-21 Thread Jeff Garzik

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 ?

2007-04-25 Thread Alok kataria

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