2014-01-24 10 views
5

Hier sind einige Besonderheiten.Was sind die PCIe-Operationen in Infiniband-Verben?

Wenn ein Prozess ibv_post_send() nennt, was passiert an der PCI-Schnittstelle zum HCA? Ist der WQE in der PCIe-Türklingel gekapselt und über programmiertes IO geschrieben? Oder wird der WQE in einem separaten DMA gelesen, der von der HCA gelesen wird?

Was passiert, wenn ein Prozess ibv_poll_cq() ruft? Wie drückt der HCA CQEs in den Systemspeicher? Oder, wenn es Pull-basiert ist, wie erkennt die CPU neue CQEs in der HCA?

Antwort

4

Ist der WQE in der PCIe-Türklingel gekapselt und über programmiertes IO geschrieben? Oder wird der WQE in einem separaten DMA gelesen, der von der HCA gelesen wird?

Es kann entweder sein. Der übliche Weg ist, WQE zu schreiben und an der Tür zu klingeln. In diesem Fall holt der HCA den WQE über DMA. Die seltenere Art und Weise ist es, was „Blue Flame“ genannt wird - ein Teil der PCIe BAR wird für WQEs verwendet, und die WME zum HCA geschrieben werden, um die gleiche Art und Weise an der Tür geschrieben.

Wie drückt der HCA CQEs in den Systemspeicher?

HCA verwendet DMA, um CQE in den Systemspeicher zu schreiben. Ihre Anwendung kann auf zwei Arten über die neue Vervollständigung erfahren: abrufbasiert oder ereignisbasiert. ibv_poll_cq() wird in einem Poll-basierten Ansatz verwendet.

+2

Danke! Das ist sehr hilfreich. Gibt es ein Dokument online, dass diese Interaktion erklärt (und bietet weitere nützliche Informationen über Infiniband-Hardware?). Ich habe einen "Verben-Implementierungsleitfaden" gefunden, aber selbst das hat nicht gesagt, wie der CQE vorangetrieben wird. –

+2

Umgang mit CQEs/WQEs und anderen Dingen - all dies ist implementierungsabhängig. Jeder Anbieter kann tun, was er will. Wenn Sie verstehen möchten, wie Verben implementiert werden, müssen Sie nur den relevanten Quellcode überprüfen - alles ist offen. Zum Beispiel für Mellanox ConnectX Familie von HCAs: http://lxr.free-electronics.com/source/drivers/infiniband/hw/mlx4/ Wenn Sie mehr als das wissen wollen, benötigen Sie Gerät PRM (Programmierung Referenzhandbuch). Sie müssen sich an den Support Ihres Anbieters wenden und nach diesem Dokument fragen. – kliteyn

Verwandte Themen