News: 0001519197

  ARM Give a man a fire and he's warm for a day, but set fire to him and he's warm for the rest of his life (Terry Pratchett, Jingo)

NVMe PCI Endpoint Function Target Driver Coming To Linux 6.14

([Linux Storage] 76 Minutes Ago NVME_TARGET_PCI_EPF)


An interesting new driver set to premiere in the upcoming Linux 6.14 kernel is the NVMe PCI Endpoint Function Target code authored by Western Digital.

Queued up by way of the Linux block subsystem's "for-next" branch ahead of the Linux 6.14 merge window opening is this new NVMe PCI target driver using the PCI endpoint framework. With hardware having a PCI controller capable of running in endpoint mode, PCIe NVMe controllers can be created.

The [1]documentation patch goes into all of the interesting technical details on this NVMe target driver. This is intended primarily for testing purposes such as with small single board computers having a PCIe endpoint controller and then creating an NVMe target to loop files or block devices. TCP targets to remote NVMe devices can also be used.

Damien Le Moal of storage company Western Digital was the lead developer on this driver. The [2]driver patch within block's for-next branch comments:

"Implement a PCI target driver using the PCI endpoint framework. This requires hardware with a PCI controller capable of executing in endpoint mode.

...

Using a Rock5B board (Rockchip RK3588 SoC, PCI Gen3x4 endpoint controller) with a target PCI controller setup with 4 I/O queues and a null_blk block device as a namespace, the maximum performance using fio was measured at 131 KIOPS for random 4K reads and up to 2.8 GB/S throughput.

...

The NVMe PCI endpoint target driver is not intended for production use. It is a tool for learning NVMe, exploring existing features and testing implementations of new NVMe features."

Barring any last minute issues coming about, this driver should premiere in the upcoming [3]Linux 6.14 kernel cycle.



[1] https://git.kernel.org/pub/scm/linux/kernel/git/axboe/linux-block.git/commit/?h=for-next&id=002ec8f1c69d3722a033eaf45102ba747ae80e94

[2] https://git.kernel.org/pub/scm/linux/kernel/git/axboe/linux-block.git/commit/?h=for-next&id=0faa0fe6f90ea59b10d1b0f15ce0eb0c18eff186

[3] https://www.phoronix.com/search/Linux+6.14



Kjell

Get Revenge! Live long enough to be a problem for your children!