nvme: Split requests by maximum allowed size

Some NVMe controllers only support small maximum request sizes, such as
the AWS EBS NVMe implementation which only supports NVMe requests of up
to 32 pages (256kb) at once.

BIOS callers can exceed those request sizes by defining sector counts
above this threshold. Currently we fall back to the bounce buffer
implementation for those. This is slow.

This patch introduces splitting logic to the NVMe I/O request code so
that every NVMe I/O request gets handled in a chunk size that is
consumable by the NVMe adapter, while maintaining the fast path PRPL
logic we just introduced.

Signed-off-by: Alexander Graf <graf@amazon.com>
1 file changed
tree: 374a3cf84ce23655d10ac026df5bd520ac73742d
  1. .gitignore
  4. Makefile
  6. docs/
  7. scripts/
  8. src/
  9. vgasrc/