The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
Тормоза при чтении из порта IO в драйвере, !*! alexB, 19-Янв-07, 00:14  [смотреть все]
  • Тормоза при чтении из порта IO в драйвере, !*! int_0dh, 08:19 , 19-Янв-07 (1)
    >Доброго, всем, времени суток!
    >Написал модуль ядра(2.6.8 Debian Sarge) работающий с ISA карточкой, предназначенной для обработки
    >сигналов. В модуле, из порта платы читается массив данных размером 0,5
    >Мб за время ~ 600 мс.
    >---------------
    >for(i=0; i < dataSize; i++)
    >{
    >  t = inw(DATA_PORT);
    >  put_user(t, buffAddr++);
    >
    >}
    >---------------
    > С драйвером взаимодействует KDE'шное приложение (осциллограф-спектроанализатор и т.д.) которое посредством ioctl(...)
    >собственно и вызывает команду чтения. При выполнении вышеприведенного цикла наблюдается дикие
    >тормоза системы, что очень нехорошо смотрится при циклическом вызове команды. Загрузка
    >процессора почти max. Выделение вызова ioctl(...) в отдельный поток в приложении
    >естественно не помогает.

    железко DMA не умеет?
    >Вопрос: каким образом избавиться от высокой загрузки процессора в модуле, не сильно
    >выходя за пределы тех же 600 мс? Может быть как-то изменить
    >алгоритм чтения из порта?
    >Заранее благодарен за конструктивные приложения...





Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру