On Thu, Apr 26, 2007 at 04:10:32AM -0600, Eric W. Biederman wrote:Ok. Now why are high end hardware manufacturers building crippled
hardware? Or is there only an 8bit field in SCSI for describing
scatter gather entries? Although I would think this would be
move of a controller ranter than a drive issue.
scsi.h:
/*
* The maximum sg list length SCSI can cope with
* (currently must be a power of 2 between 32 and 256)
*/
#define SCSI_MAX_PHYS_SEGMENTS MAX_PHYS_SEGMENTS
And from blkdev.h:
#define MAX_PHYS_SEGMENTS 128
#define MAX_HW_SEGMENTS 128
So currentlt on SCSI we are limited to 128 s/g entries, and the
maximum is 256. So I'd say we've got good grounds for needing
contiguous pages to go beyond 1MB I/O size on x86_64.
And what do we do for arches that can't do multiple page sizes, only
only have a limited and mostly useless set of page sizes to choose
from?
You have HW_PAGE_SIZE != PAGE_SIZE.
That's rather wasteful, though. Better to only use the large pages
when the filesystem needs them rather than penalise all filesystems.
That is you hide the fact from
the bulk of the kernel struct page manges 2 or more real hardware pages.
But you expose it to the handful of places that actually care.
Partly this is a path you are starting down in your patches, with
larger page cache support.
Right, exactly. So apart from the contiguous allocation issue, you think
we are doing the right thing?