Я реализую собственный протокол дейтаграмм транспортного уровня в ядре Linux. Я реализую отправку и получение очередей для доставки в порядке убывания.Как увеличить распределение памяти сокетов в ядре Linux
Я заметил, что с моей текущей реализацией у моего сокета заканчивается память только с 16 буферами сокетов с полезной нагрузкой BUFSIZ в очереди. Поэтому мне нужно увеличить значение памяти, выделенной для моего сокета.
Я полагал, что изменение значения sk->sk_sendbuf
и sk->sk_rcvbuf
должно выполнить эту работу. Каков правильный способ сделать это?
P.S.- Я еще не реализовал интерфейс sysctl для этого протокола, поэтому не могу использовать его для управления памятью.
Спасибо.
Что занимает вся память? Если это данные, не является ли фрагментация способом борьбы с этим? – bytefire
Я пытаюсь сохранить границы сообщений, поэтому фрагментация не является вариантом. Что занимает память - это распределение буферов сокетов и когда в очереди есть неустановленные буферы (точнее, 16), я не могу выделить больше буферов с помощью функции 'sock_alloc' в ядре –