I'M back. Добавил свой PR в кучку https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=272616

7 ответов

2 просмотра

Пните jhb@ или markj@, т.к. по-сути там фигня вопрос, просто нужно в m_unshare добавить обработку mbuf с M_EXTPG.

Alexander Fedorov
Пните jhb@ или markj@, т.к. по-сути там фигня вопр...

по-моему там ещё была такая же паника в m_pullup

Andrey Elsukov
по-моему там ещё была такая же паника в m_pullup

Кстати да, там тоже была паника, потому что что? m_pullup собирает цепочку mbuf в один буфер доступный для линейного доступа. На редкость ублюдожная функция которая по всему коду торчит. Постоянно в коде этот паттерн: if (m->m_len < len && (m = m_pullup(m, skip + hlen)) == NULL) {}

Vadim Goncharov
чем ублюдочная? как иначе-то?

наинлайнить; но суть от этого не измениться

Vadim Goncharov
чем ублюдочная? как иначе-то?

Да просто она заебала. Нужен Ethernet заголовок - if (m->m_len < ETH_HEADER && (m = m_pullup(m, skip + hlen)) == NULL) Потом IP - if (m->m_len < ETH_HEADER + IP_HEADER_LEN && (m = m_pullup(m, skip + hlen)) == NULL) Потом TCP - f (m->m_len < ETH_HEADER + IP_HEADER_LEN + TCP_HDR_LEN && (m = m_pullup(m, skip + hlen)) == NULL) Т.е. чтобы добраться до TCP - три if'а Причём я на боевой системе dtrace запускал и эта срань вообще почти никогда не вызывалась, т.к. сейчас пакеты в основном в M_EXT и сразу доступны, т.е. первая часть условия в 99% случаев не проходит - m->m_len < ETH_HEADER У меня уже есть идея сделать функцию m_trypullup c unlikely и т.д

Alexander Fedorov
Да просто она заебала. Нужен Ethernet заголовок - ...

ну, обпрофилироваться придётся, причём различать минимум три вида нагрузки: сервер, роутер и концентратор туннелей

Похожие вопросы

Обсуждают сегодня

коллеги привет. уже второй день бьемся об заклад с одной ошибкой, может вы сталкивались с таки странным поведением? есть тестовый сервер, на который паблишим релизную версию W...
Magzhan
11
Слушайте, а при создании навигации на Tailor рили нельзя определять активный пункт навигации, как в Static Pages?
Pavel Lautsevich
11
Всем привет, подскажите где можно найти фриланс работы?
Вадим
7
Господа, а как такое в миграцию засунуть?
Денис Александрович
12
Почему в коллекции nestedTree, при запросе $item->childrens идёт запрос к бд, а не коллекции?
Дмитрий
4
Так а кто может спарсить всех участников чата? Идишники
Magic
18
Може в когось є не складна і не термінова робота? Готовий взятися навіть безкоштовно. Після 22го року не працював так як працював з руснею, та і не до того було. Хочу спробува...
Andrey Shin
1
кто тебе сказал, что она угроблена? многие только начинают жизнь, после увольнения из Гугла, Майкрософта, Оракла,...
Alex Kom
9
да пофиг на капчу зашел в чат и молчишь при этом ты нонейм? пошел вон
Magic
17
Как с помощью opencv найти ракету на картинке?))
ᅠ [ Кому не ответил, дублируйте ]
2
Карта сайта