Изменение размера кадра - в user mode или kernel mode?
От: Vicul  
Дата: 07.05.13 14:09
Оценка:
Возникла необходимость дополнительного преобразования размера кадра для передачи в драйвер.
При реализации возникла сомнения — где лучше сделать это преобразование?

Есть два варианта:

1. В приложении (user mode). Плюсом этого подхода является наличие готовых функций в приложении, н-р, cvResise() с OpenCV.

2. В драйвере (kernel mode). Главный минус этого подхода — функции придется писать вручную.

Поэтому вопрос — будет ли плюсом, что это преобразование будет делаться в драйвере — т.е, будет ли обработка в ядре будет выполняться быстрее,
чем в приложении???????????????

Кто сталкивался с аналогичными проблемами — поделитесь опытом.
Re: Изменение размера кадра - в user mode или kernel mode?
От: ononim  
Дата: 07.05.13 15:22
Оценка: 3 (1) +2
V>Поэтому вопрос — будет ли плюсом, что это преобразование будет делаться в драйвере — т.е, будет ли обработка в ядре будет выполняться быстрее,
Если в процессе исполнения кода нет критично большого количества вызовов ядра — пофиг. В смысле производительность процессора совершенно одинакова там и там, но в ядре больше геморроя и экономия от переноса в кернел может быть только на уменьшении количества переключений юзер-кернел.
Как много веселых ребят, и все делают велосипед...
Re[2]: Изменение размера кадра - в user mode или kernel mode?
От: Vicul  
Дата: 08.05.13 03:55
Оценка:
O>Если в процессе исполнения кода нет критично большого количества вызовов ядра — пофиг. В смысле производительность процессора совершенно одинакова там и там, но в ядре больше геморроя и экономия от переноса в кернел может быть только на уменьшении количества переключений юзер-кернел.

Тут следующее, с приложения на драйвер идет фиксированный размер фрейма, но драйвер может работать с несколькими источниками (от 1 и более), и каждый источник договаривается с драйвером о размере кадра. Поэтому мне нужно сделать это преобразование для каждого источника. Я склонен это делать в ядре
Re[3]: Изменение размера кадра - в user mode или kernel mode?
От: pva  
Дата: 08.05.13 08:13
Оценка: +1
Здравствуйте, Vicul, Вы писали:

V>Тут следующее, с приложения на драйвер идет фиксированный размер фрейма, но драйвер может работать с несколькими источниками (от 1 и более), и каждый источник договаривается с драйвером о размере кадра. Поэтому мне нужно сделать это преобразование для каждого источника. Я склонен это делать в ядре

Я за тех, кто считает что все что можно сделать в юзермооде должно работать в юзермоде.
Много Вы выиграете от переноса обработки в ядро?
newbie
Re[3]: Изменение размера кадра - в user mode или kernel mode?
От: ononim  
Дата: 08.05.13 19:40
Оценка: +2
V>Тут следующее, с приложения на драйвер идет фиксированный размер фрейма, но драйвер может работать с несколькими источниками (от 1 и более), и каждый источник договаривается с драйвером о размере кадра. Поэтому мне нужно сделать это преобразование для каждого источника. Я склонен это делать в ядре
Не ну если вам очень хочется — делайте, вош код. Но если проблема только в том что преобразование формата является частью интерфейса драйвера — замуруйте интерфейс в dll, которую и будет дергать клиентский код. Оно так кошернее будет: driver-specific код не будет частью приложения, негоже приложению дергать DeviceIoControl напрямую из логики.
Как много веселых ребят, и все делают велосипед...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.