Pull to refresh

Comments 2

То есть Intel в SPDK

1) Использует свой стек TCP/IP вместо встроенного в ядро iptables
2) Использует свой iSCSI target вместо встроенного в ядро LIO
3) Использует свои стек блочного I/O вместо встроенного в ядро и свои драйверы для устройств хранения.
И все это — в юзерспейсе.

Что же там от бедного Linux'а осталось-то?
А зачем что-то оставлять, если стандартный вариант использования подразумевает NUMA аффинность и запуск приложения на полностью изолированных от планировщика ядрах с пачкой больших страниц?

Там линукс нужен только для того что бы инициализировать RDMA, CBDMA и IOMMU в рамках VFIO, и всё.
В принципе, для этого можно реализовать отдельный загрузчик и полностью избавится от ядра ОС… с другой стороны вопрос менеджмента и поддержки окружения усложняется на несколько порядков.

p.s. CBDMA — common buffer DMA, есть ещё S/GDMA — Scatter/gather DMA. Разница заключается в принципе обращения и работы с памятью. Scatter/Gather может работать с фрагментированной памятью, что требует отдельных mapping регистров и снижает размер блока данных DMA транзакции SDV (Single DMA Volume). CBDMA работает с непрерывной памятью, которая называется Common buffer и является набором больших страниц, и для его работы не требуется mapping соответственно и SDV с пропускной способностью у него на много выше. S/GDMA стоит применять когда нет возможности выделить большие страницы.
Sign up to leave a comment.