[lkml]   [2006]   [Feb]   [28]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    SubjectRe: sg regression in 2.6.16-rc5
    On Feb 28, 2006, at 2:38 PM, Kai Makisara wrote:

    > On Tue, 28 Feb 2006, Douglas Gilbert wrote:
    >> Mark,
    >> You can stop right there with the 1 MB reads. Welcome
    >> to the new, blander sg driver which now shares many
    >> size shortcomings with the block subsystem.
    >> In lk 2.6.15 the sg driver (and the st driver) did its
    >> own scatter gather list allocations. The sg driver
    >> used 32 KB segments (8 times the normal page size)
    >> in each scatter gather element. The maximum number
    >> of scatter gather elements depends on the LLD but
    >> can be no more than 256. That meant the sg driver
    >> allowed a maximum single IO size of 8 MB. There was
    >> also a define in sg.h (SG_SCATTER_SZ and it is still
    >> there) that allowed the 32KB per segment to be increased
    >> allowing larger single command transfers (then 8 MB).
    > This is still possible but it needs some changes to most SCSI HBA
    > drivers.
    > The big requests are split into bios supporting 256 pages. For 4 kB
    > pages,
    > this limits i/o to 1 MB. The scsi_execute_async() path used by st
    > and sg
    > can chain bios and this enables large request at the ULD level. At
    > lower
    > level, the request consists of pages and now we hit the s/g list
    > maximum
    > length _unless_ the HBA driver enables clustering. In this case the
    > adjacent pages are coalesced and the large requests fit into the
    > HBA s/g
    > limits. Well, now we hit another limit: the max_sectors default for
    > SCSI
    > drivers is 1024 and this limits requests to 512 kB _unless_ the HBA
    > driver
    > increases max_sectors.
    > The aic79xx driver enables clustering but does not increase
    > max_sectors.
    > This makes the maximum request size 512 kB. If it is possible to set
    > .max_sectors = 0xFFFF,
    > in linux/drivers/scsi/aic7xxx/aic79xx_osm.c without breaking the
    > driver,
    > this should enable requests up to 8 MB - 256 B. (I don't have the
    > hardware
    > to test this.)

    Indeed, this seems to work fine, at least with the hardware we have.
    Gotta love those one-line patches.

    > Several SCSI HBA drivers currently have similar problems.

    Yes. Now that I know about this, it is no problem. I'm not allergic
    to patches.

    Thanks to both of you for your responses. I would submit a patch for
    this except that I know I don't know that it won't cause problems for
    configurations and targets that I can't test.

    Mark Rustad,

    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to
    More majordomo info at
    Please read the FAQ at

     \ /
      Last update: 2006-03-01 03:14    [W:0.024 / U:32.884 seconds]
    ©2003-2017 Jasper Spaans. hosted at Digital OceanAdvertise on this site