freebsd-skq/sys/dev/mpr
Alexander Motin 731308d01d Allow physically non-contiguous chain frames allocation in mps(4)/mpr(4).
Chain frames required to satisfy all 2K of declared I/Os of 128KB each take
more then a megabyte of a physical memory, all of which existing code tries
allocate as physically contiguous.  This patch removes that physical
contiguousness requirement, leaving only virtual contiguousness.  I was
thinking about other ways of allocation, but the less granular allocation
becomes, the bigger is the overhead and/or complexity, reaching about 100%
overhead if allocate each frame separately.

The patch also bumps the chain frames hard limit from 2K to 16K.  It is more
than enough for the case of default REQ_FRAMES and MAXPHYS (the drivers will
allocate less than that automatically), while in case of increased MAXPHYS
it will control maximal memory usage.

Sponsored by:	iXsystems, Inc.
Differential Revision:	https://reviews.freebsd.org/D14420
2018-02-27 01:48:13 +00:00
..
mpi Add tri-mode support (SAS/SATA/PCIe). 2017-05-17 21:33:37 +00:00
mpr_config.c Changes to make mps(4) and mpr(4) handle reinit with reallocation. 2017-08-10 14:59:17 +00:00
mpr_ioctl.h Several style changes and add copyrights for 2016. 2016-05-09 16:16:00 +00:00
mpr_mapping.c Revert r327828, r327949, r327953, r328016-r328026, r328041: 2018-01-21 15:42:36 +00:00
mpr_mapping.h Add tri-mode support (SAS/SATA/PCIe). 2017-05-17 21:33:37 +00:00
mpr_pci.c Fix line wrap issues. 2017-09-15 20:58:52 +00:00
mpr_sas_lsi.c Clean up error messages related to device discovery 2017-09-22 12:07:03 +00:00
mpr_sas.c NVMe: Add big-endian support 2018-02-22 13:32:31 +00:00
mpr_sas.h Garbage collect usued fields 2017-09-23 08:26:42 +00:00
mpr_table.c Convert some in-line printing of diagnostic into tables. 2017-09-09 22:02:36 +00:00
mpr_table.h Convert some in-line printing of diagnostic into tables. 2017-09-09 22:02:36 +00:00
mpr_user.c Cache the value of the request and reply frame size since it's used quite 2018-02-06 21:01:38 +00:00
mpr.c Allow physically non-contiguous chain frames allocation in mps(4)/mpr(4). 2018-02-27 01:48:13 +00:00
mprvar.h Allow physically non-contiguous chain frames allocation in mps(4)/mpr(4). 2018-02-27 01:48:13 +00:00