MAXPHYS bump for FreeBSD 13
Alexander Motin
mav at FreeBSD.org
Sun Nov 15 17:27:07 UTC 2020
On 15.11.2020 12:11, Scott Long wrote:
> The MAXPHYS use for AHCI is related to the maximum size of a PRD needed
> for a command. AHCI specifies that you can have up to 65536 PRD entries,
> which translates into 2^16 + 2^12 = 256MB maximum I/O size. However, the
> AHCI driver seems inconsistent already in that it defines AHCI_PRD_MAX
> (via an indirection through AHCI_PRD_MASK) to be 2^22, or 4MB. This is
> a pretty reasonable max default for AHCI, and I don’t think we need to jump
> through hoops to make it dynamic or make it larger for the future. My
> recommendation is to abandon the partial changes you have for AHCI and
> use AHCI_PRD_MAX in place of MAXPHYS for the structure sizing and for
> the cpi->maxio attribute.
Scott, AHCI_PRD_MAX is a maximum size of single DMA segment. It does
not limit number of segments, which allows up to 256MB maximum I/O as
you have said. I am already looking on making number of of PRDs
dynamic. It does not look difficult. Though generally yes, the memory
difference is not big, simply because SATA has maximal queue depth of
only 32 commands. For SAS/FC/NVMe/... it is more interesting.
> I have less of an opinion on the SIIS driver since that hardware is pretty
> low-performance and mostly obsolete at this point. I guess we should do the
> same as AHCI, but I don’t know if there are details about SIIS that diverge
> in significant ways.
Its being a while ago since I've written the SIIS, but I'll look at it.
--
Alexander Motin
More information about the freebsd-arch
mailing list