Thread (5 messages) 5 messages, 3 authors, 2007-05-25

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

From: Jens Axboe <hidden>
Date: 2007-05-21 12:18:20

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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help