Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Доступ к кеш процессора
Форум разработчиков электроники ELECTRONIX.ru > Cистемный уровень проектирования > Операционные системы > Linux
Славка
Где хранится стек переменных userspace проги?
Делаю программу которая ловит эзернет пакеты преобразует их и отправляет пока в другой порт эзернет (дальше будет стоять задача отправить их через TDM интерфейс). Использую libpcap... Делаю прозрачный канал между двумя разъемами эзернет. Просто заворот дает скорость 80 мбит. Для преобразований нужно выделить несколько буферов в памяти... Так вот если использовать malloc() то в лучшем случае получается выжать 22 мбит. Чем меньше буферов и, соответственно, операций копирования из памяти в память скорость выше. Попробовал использовать просто массивы из байтов (стек переменных) разницы нет. Сделал вывод, что стек лежит тож в оперативной памяти...
Подскажите плиз, как засунуть какой нить массив в кеш память и производить операции в ней? Ну или хотябы где и что искать?
romez777
Рискну предположить, что вашу задачу эффективнее решать на ядерном уровне, по крайней мере ядро предлагает функции kmem_cache_create, kmem_cache_alloc и kmem_cache_free.

PS. если не так понял ваш вопрос - просьба не закидывать помидорами )
Dima_G
Делал подобную систему (нужно было слегка модифицировать входящий трафик и роутить его) на базе этой статьи:
http://www.hackerdom.ru/team/articles/LinuxKernelFirewall

Рекомендую внимательно рассмотреть рисунок:
http://open-source.arkoon.net/kernel/kernel_net.png
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.