Tejun Heo wrote:
Tejun Heo wrote:
Jeff Garzik wrote:
These are small TODO bits that I didn't want to forget... Patches
welcome.
1) ATAPI edge case. Due to adding the padding s/g entry, we must
adjust sg_tablesize to include ' - 1' for each driver
Isn't this handled by ata_scsi_slave_config()? If the attached device
is ATAPI, ata_scsi_slave_config() reduces max_hw_segments by 1. We'll
need to increment it back when detaching the device though.
2) ata_scsi_slave_config() hardcodes a call to
blk_queue_max_phys_segments(, LIBATA_MAX_PRD), when the value passed
should not be so limited on nice hardware like AHCI.
And, AFAICS, we can increase max_phys_segments all we want. This limits
the number of segments before IOMMU mapping. The only part that's
affected is the driver (software) and I don't see any limitation in
libata PIO implementation that puts limitation on the number of sg
entries. Simply changing LIBATA_MAX_PRD to 65535 should do it.
We really want to accurately export the correct value for each piece of
hardware. It IMO isn't wise to tempt fate with a wide disparity between
max_phys_segments, max_hw_segments, and real life... :)
Jeff
-
: send the line "unsubscribe linux-ide" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html