{
  "slug": "nvme-sgl",
  "term": "NVMe Scatter Gather List",
  "aliases": [
    "NVMe SGL",
    "NVMe Scatter-Gather List"
  ],
  "definition": "An NVMe Scatter Gather List describes a command's data transfer using typed descriptors for buffers or descriptor segments.",
  "note": "Address-based SGL Data Block descriptors carry a buffer address and length; other forms use offsets or transport-specific semantics. Segment descriptors locate further descriptors. Permitted forms and alignment depend on controller capabilities and transport [nvme-base-2-0a].\n\nLinux v6.12's PCIe driver builds data-block descriptors from mapped DMA addresses and lengths, and selects PRP or SGL according to support and request characteristics [linux-pci]. One contiguous mapped segment can cover multiple memory pages; descriptor count is not queue depth.\n\nA Linux scatterlist used while mapping a request is not necessarily the NVMe SGL sent to the controller: the mapped request can instead become PRPs [linux-pci]. SGL use alone does not establish lower latency.",
  "status": "shipping",
  "advantages": [],
  "limitations": [],
  "supersedes": [],
  "supersededBy": [],
  "firstSeen": null,
  "lastSeen": null,
  "updated": "2026-10-17",
  "related": [
    "nvme",
    "nvme-prp"
  ],
  "provenance": [
    "Descriptor semantics use NVMe Base 2.0a section 4.1.2; the Linux v6.12 example is a PCIe implementation, not a contract for all fabrics [nvme-base-2-0a] [linux-pci]."
  ],
  "citations": [
    {
      "id": "nvme-base-2-0a",
      "title": "NVM Express Base 2.0a, sections 2 and 4.1; copyright 2007-2021 NVM Express, Inc., all rights reserved",
      "url": "https://nvmexpress.org/wp-content/uploads/NVMe-NVM-Express-2.0a-2021.07.26-Ratified.pdf",
      "accessed": "2026-10-17"
    },
    {
      "id": "linux-pci",
      "title": "Linux v6.12: NVMe PCIe data mapping and PRP/SGL construction",
      "url": "https://github.com/torvalds/linux/blob/v6.12/drivers/nvme/host/pci.c",
      "accessed": "2026-10-17"
    },
    {
      "id": "hesela-nvme",
      "title": "Hesela: NVM Express technology card",
      "url": "https://hesela.com/tech/nvme/",
      "accessed": "2026-10-17"
    }
  ]
}
