0
A
回答
0
返回-1 和設置errno。 函數返回時檢查errno值。
0
您正在使用哪種低級硬件驅動程序?什麼版本?我猜它是libmlx4(Mellanox ConnectX/ConnectX-2/ConnectX-3)。
如果是這樣,版本> = libmlx4 1.0.2實際上已經修復 - ibv_post_send()將返回錯誤代碼而不是-1。
在任何情況下(這實際上是不是很依賴底層驅動的 - 我想libmthca,libcxgb4等都是小氣得多相同),即ibv_post_send()
可能返回即時錯誤的原因是:
發送隊列已滿(即發送未收集完成的發送數大於發送隊列的大小)。
操作碼在發送WR是無效
數收集條目是無效的(或者< = 0或>創建的發送隊列時指定的條目最大GS)
聯數據大於最大大對於發送隊列內聯數據
編輯:我看到我讀的問題,太快和困惑ibv_post_recv()
的d ibv_post_send()
。 ibv_post_recv()
的答案几乎相同,只是更簡單一點。基本上,爲什麼ibv_post_recv()
可能會返回一個錯誤的唯一原因是:
接收隊列已滿
在接收工作請求數量散射項無效
相關問題
- 1. getsockname返回-1,errno是EBADF?
- 2. socket()返回-1但是errno 0
- 3. 返回0 1而不是數據值
- 4. table.getSelectedRow()默認返回0,而不是-1
- 5. 爲什麼返回-1而不是0?
- 6. 返回1行而不是多行
- 7. 在python中返回1而不是true
- 8. Javascript「」.length返回1而不是0
- 9. 爲什麼(1 + 1)和1返回1而不是2?
- 10. ioctl返回-1與errno設置爲EPERM
- 11. Odd socket()錯誤 - 返回-1,但errno = ERROR_SUCCESS
- 12. $ mysqli-> affected_rows返回-1,但$ mysqli-> errno返回0
- 13. System.exit(1),而不是回報
- 14. Linux內核系統調用返回-1而不是{-1,-256}
- 15. 序言返回H = 0 + 1 + 1而不是H = 2
- 16. setsockopt返回errno = 2
- 17. 返回1而不是0時,COUNT(*)的結果是空
- 18. NSUserDefaults總是返回1而不是正確的整數
- 19. 而Linux命令返回1
- 20. 返回值而不是null
- 21. 返回空而不是0
- 22. RegionInfo.ISOCurrencySymbol返回CurrencyEnglishName而不是
- 23. 返回,而不是名單
- 24. 返回,而不是觀點
- 25. phpThumb返回,而不是
- 26. 返回,而不是空
- 27. 爲什麼帶有ZMQ_DONTWAIT的zmq_recv()返回一個errno == 0而不是EAGAIN?
- 28. 爲什麼fopen()或open()使用errno而不是僅僅返回錯誤代碼?
- 29. 爲什麼這個數組返回1而不是2?
- 30. 爲什麼下面的函數返回null而不是1?
errno設置爲零。即成功。 – Daniil 2013-05-15 08:05:27