[PATCH 3/8] nvme-pci: refactor nvme_pci_use_sgls
Keith Busch
kbusch at kernel.org
Mon Jun 23 08:27:30 PDT 2025
On Mon, Jun 23, 2025 at 04:12:25PM +0200, Christoph Hellwig wrote:
> @@ -888,7 +899,9 @@ static blk_status_t nvme_map_data(struct nvme_dev *dev, struct request *req,
> goto out_free_sg;
> }
>
> - if (nvme_pci_use_sgls(dev, req, iod->sgt.nents))
> + if (use_sgl == SGL_FORCED ||
> + (use_sgl == SGL_SUPPORTED &&
> + (!sgl_threshold || nvme_pci_avg_seg_size(req) >= sgl_threshold)))
> ret = nvme_pci_setup_sgls(nvmeq, req, &cmnd->rw);
We historically interpreted sgl_threshold set to 0 to mean disable SGL
usage, maybe because the controller is broken or something. It might be
okay to have 0 mean to not consider segment sizes, but I just wanted to
point out this is a different interpretation of the user parameter.
More information about the Linux-nvme
mailing list