Кросспост из
блога автора. Комментировать лучше
там, но можно и тут
Я тут интересовался
про Infiniband и FreeBSD, теперь могу и сам рассказать :)
Datagram mode
Для начала нужна FreeBSD 9. У меня - какая-то, cvsup делал где-то в январе или около того.
Далее все тривиально:
/etc/make.conf:
WITH_OFED=yes
Конфиг ядра (в GENERIC это место не включено
(
Read more... )
Comments 13
options IPOIB_CM # Use connect mode ipoib
Reply
Reply
ключевые слова
ipoib_transport_dev_init, ipoib_cm_dev_init, IPOIB_FLAGS_RC
Reply
причем в двух местах, в одном от mcast_mtu.
которое как-то сложно ставится. похоже оно после добавлерния порта не меняется.
Reply
if (ipoib_cm_get(path) && ipoib_cm_up(path)) {
ipoib_cm_send(priv, mb, ipoib_cm_get(path));
} else if (path->ah) {
ipoib_send(priv, mb, path->ah, IPOIB_QPN(eh->hwaddr));
} else if ((path->query || !path_rec_start(priv, path)) &&
path->queue.ifq_len < IPOIB_MAX_PATH_REC_QUEUE) {
_IF_ENQUEUE(&path->queue, mb);
} else {
++priv->dev->if_oerrors;
m_freem(mb);
}
ipoib_send проверяет по mcast_mtu, ipoib_cm_send -- по нормальному mtu, но диагностика у них одинаковая. поправь в сырцах что бы было понятно кто ругается. после этого можно попытаться понять чего не хватает -- path в cm, CM_REP_ATTR_ID от винды (если я правильно понял)
Reply
Проверять буду, но постепенно, сервер то боевой.
Reply
if (ipoib_cm_get(path) && ipoib_cm_up(path)) {
ipoib_cm_send(priv, mb, ipoib_cm_get(path));
} else if (path->ah) {
ipoib_cm_up(..) возвращает 0
А дальше я там запутался. Т.е. докопался до того, что должен прийти event CM_REQ_RECEIVED, только вот кто должен бы его послать?
на винде up-down интерфейсу делал - не помогает.
Пока наплевал, в-общем.
Reply
ну и MTU на винде не надо трогать?
Reply
Leave a comment