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