Почему sendmsg () возвращает ENOMEM, когда включен UDP GSO? - PullRequest
0 голосов
/ 30 апреля 2020

Я хочу попробовать UDP GSO, поэтому я загружаю тестовую программу из https://github.com/torvalds/linux/blob/master/tools/testing/selftests/net/udpgso.c

Затем я компилирую udpgso. c в CentOS8 ( g cc udpgso) . c -o udpgso ), все в порядке. Когда я запускаю программу следующим образом:

./udpgso -4C

4-й тестовый случай всегда терпит неудачу, вывод:

ipv4 tx:1472 gso:1472 
__send_one error, errno:12
./udpgso: send failed while expecting success

sendmsg () return -1, и errno равно ENOMEM , что означает «Недостаточно памяти для выполнения запроса», но я установил по умолчанию и максимальный размер буфера отправки сокета равным 4096000.

Мой тестовый сервер имеет системную память 256 ГБ, поэтому я почти уверен, что для этого теста достаточно памяти.

Что я пропустил в этом тесте?

...