LINUX.ORG.RU

Сообщения b3qkc

 

Асинхронная работа с диском, libaio

Форум — Development

Добрый день.

Пишу высокопроизводительный сервер, в данный момент дисковый ввод вывод. Для асинхронного ввода и вывода на диск использую libaio. Проблема в том, что интерфейс для работы с асинхронным вводом выводом (io_submit и io_getevents) не унифицированы с интерфейсом асинхронного доступа к сокетам. То есть - события асинхронного дискового интерфейса нельзя принимать через epoll. Это ведет к тому, что мне приходится чередовать системные вызовы epoll и io_getevents, что усложняет код. Вопрос - нельзя ли как нибудь унифицировать эти системы? Второй вопрос - есть ли аналог асинхронного ввода вывода в солярисе и фряхе? Именно аналога libaio. librt (aio_read, aio_write) не подходит, поскольку нет поллинга, и обычно реализуется через треды.

b3qkc
()

установка initrd

Форум — Linux-install

Добрый день

дистрибутив - дебиан

как собрать ядро с initrd, не используя пакет make-dpkg?

я собираю так:

make && make install && make modules_install

update-initramfs -c -k 2.6.30

update-grub

при загрузке ядро успевает написать мне что-то вроде loading initramfs, после чего экран гаснет, и на этом все кончается.

что я делаю не так?

Заранее спасибо

b3qkc
()

Обмен страниц памяти

Форум — Development

Добрый день.

Есть ли какой-нибудь механизм, который позволяет приложению поменять местами (без копирования, естественно) две страницы памяти?

b3qkc
()

zero-copy сервер

Форум — Development

хочу написать zero-copy сервер. реализовано это следующим образом - ядро через nmap пробрасывает приемный буффер в приложение, после чего приложение может читать данные без копирования их из ядра. к сожалению, в буффер копируются Ethernet кадры целиком, что требует от меня самостоятельно парсить заголовки. (более того, работает это в линуксе только с RAW сокетами) однако, я слышал, что на некоторых сетевых картах есть такая функция как header splitting, которая копирует шапки и содержимое протокола в разные места, что позволяет заносить в непрерывный буффер только содержимое TCP.

кто-нибудь делал это? информации по этой теме очень мало. Есть ли у вас ссылки на более подробное описание функции header splitting, примеры zero-copy сервера, информация по карточкам, которые поддерживают такие функции?

b3qkc
()

Получение дампа ядра.

Форум — Development

Добрый день.

У меня падает ядро, и я пытаюсь получить его дамп. для этого я использую kdump Все настройки по умолчанию, ну кроме пути к ядру.

после того, как я роняю ядро через SysRq, загружается второе ядро, и пытается выполнить комманду makedumpfile -E -d 31 -x /usr/src/production/vmlinux /proc/vmcore ~/coredump при этом вылетает ошибка: readmem: Can't convert a physical address(c8c08603) to offset. readmem: type_addr: 0, addr:89c08603, size:4 get_machdep_info_x86: Can't get vmalloc_start.

Кто-нибудь знает, с чем это может быть связано, и как этого избежать? кроме того, читал в сети, что можно просто скопировать /proc/vmcore с помощью cp, но при этом дамп криво открылся в gdb

b3qkc
()

изменение структуры ядра sk_buff

Форум — Development

добрый день.

возможно, вопрос покажется кому-то банальным, но я уже часа два не могу найти на него ответа в сети

после того, как я добавляю свою переменную (например, указатель) в sk_buff, ядро падает при инициализации udev

кто-нибудь может объяснить, в чем тут дело, и где можно почитать про то, как надо вносить изменения в структуры ядра?

b3qkc
()

хороший браузер исходников

Форум — Development

Всем привет.

Раньше я писал относительно небольшие проекты, и, как правило, справлялся вимом и ctags. Сейчас мне нужно работать с ядром, и хочется найти хороший навигатор исходников. Через ctags как-то не очень удобно копаться в большом коде, посоветуйте хороший навигатор, или расскажите, как допилить вим до нужной кондиции. emacs не предлагать

b3qkc
()

RSS подписка на новые темы