Increasing MAXPHYS to 256K shows a few places where it's assumed that
there are 16 pages in MAXPHYS.

In dev/ic/ahci.c I had to make this change @307 to make the
scatter-gather table large enough - 1 entry per page + extra
because that's what the previous code had and didn't say why.
I could understand +1 because a lot of code works that way.

/* this makes ahci_cmd_table 512 bytes, supporting 128-byte alignment */
/* #define AHCI_MAX_PRDT        24 too small for 256K of 4K pages */
/* extra 12 is to match old 16 + 8 */
#define AHCI_MAX_PRDT           ((MAXPHYS / PAGE_SIZE) + 8)

Grep-ing shows at least dev/ic/osiopvar.h doesn't compute
DMA resources from MAXPHYS. There are probably other "17"s buried
in ugly places.

It doesn't seem to help disk I/O speed at all.
It *does* decrease interrupt rate to about 400/sec.

Now to try some other tests. Grumble.
   Geoff Steckel

Reply via email to