Что параметр контекст передается функции ib_sa_path_rec_get от ib_sa?Проблема в SA Infiniband запроса
0
A
ответ
2
Общим для асинхронных функций в ядре является принятие функции обратного вызова и указателя контекста. По завершении обработки функция обратного вызова называется передачей указателя контекста в качестве одного из его параметров. Это позволяет вызывающему абоненту идентифицировать конкретный вызов, для которого вызывается обратный вызов.
В случае ib_sa_path_rec_get
вы можете увидеть, например, один из вызовов этой функции в IPoIB module. Вызов передает функцию обратного вызова path_rec_completion
и контекст типа struct ipoib_path *
. Как только обработка запроса SA завершена, вызывается функция обратного вызова, и она использует параметр контекста для идентификации структуры ipoib_path
, для которой вызывается функция.
мы можем получить serveice_level и dlid без запроса ib_sa_path_rec_get? Также нам даже нужно запросить их, если две машины подключены напрямую, а dlid исправлена? –
Если вы знаете dlid другими способами, тогда вам не нужен запрос, но если вы хотите, чтобы ваш код был портативным, вам нужно запросить SM. –