General Satellite

На главную Отправить письмо Карта сайта
Добро пожаловатьКорпорация Дженерал Сателайт — россий­ская научно-производствен­ная ком­па­ния, пред­став­ляющая на российском и между­народ­ном рын­ке высоко­технологич­ное радио­электронное обо­ру­дование, характеристики кото­рого отве­чают самым высо­ким стандар­там. Надеж­ность и про­фессионализм за многие годы успеш­ной работы позволили компа­нии занять место лидера в теле­коммуникацион­ном бизнес-сообществе Рос­сии.

подробнее

Цифровой спутниковый ресивер GS-8300



 

SkyStar2 APIC или как поиметь два процессора + SkyStar и не иметь головную боль

Как известно, драйвера SkyStar2 не могут корректно работать на мультипроцессорных (SMP) системах. Этот факт специально отмечен даже в FAQ на сайте Technisat. Вероятно эффект связан с особенностями распределения и обработки прерываний (IRQ) в SMP системах или с перекидыванием программного потока с одного процессора на другой. Однако было замечено, что отключение одного из процессоров двухпроцессорной системы возвращает работоспособность карте. Напрашивается вопрос - а можно ли закрепить процесс за конкретным процессором (физическим или логическим (для HyperThreading)), частично сэмулировав однопроцессорную систему? Как оказалось можно.

В приведенном ниже материале наш соотечественник Максим Субочев (-MAXX-) рассказывает о найденном им оригинальном способе решить эту проблему.

Дополнение от 29 июня 2004 г. Со времени выхода этой статьи прошло более полугода. За это время Technisat выпустил новые драйвера версий 4.2.10 и 4.2.11 в которых декларируется корректная работа на SMP. Максим Субочев провел исследование работоспособности разных версий драйверов. Кроме того он написал подробный FAQ по настройки графов (graphs) в программах ProgDVB и MyTheatre. Читайте его статью "SkyStar2 FAQ: Hyper-Threading, DiSEqC 2.0 4-in & FilterGraph"

 

Введение

Итак... Что мы имеем:

  1. DVB-карта SkyStar 2, она-же B2C2 Sky2PC.
  2. При наличии P4 с HyperThreading (HT) - желание иметь в машине два процессора, пусть и логических, а не один...
  3. Уверение Technisat в неработоспособности тюнеров SkyStar 2 в мультипроцессорных системах...
  4. Голова - 1шт, руки прямые - 2шт, а также желание заставить работать железку в SMP системе..

 

DVB-карта SkyStar 2, она-же B2C2 Sky2PC  

 

Начинаем магические действия.. :)

 

Этап 1: Настройка контроллера прерываний

Нам потребуется: программка IntFiltr (полное название - Interrupt-Affinity Filter и написана кстати Micro$oft-ом). Она занимается тем, что на низком уровне фильтрует прерывания, позволяя настроить систему таким образом, чтобы управлять конкретным прерыванием мог или только один из процессоров, или все процессоры одновременно. Учитывая то обстоятельство, что SkyStar2 не работает (а если и работает, то очень и очень глюкаво) в мультипроцессорных системах, а у нас как раз именно такой случай, то первое, что надо сотворить - это распаковать куда-нибудь архивчик с IntFilt.

Далее лезем внутрь распакованных файлов, в директорию ..IntFiltrInstall запускаем там файл intfiltr.reg на вопрос добавить данные в реестр отвечаем ДА, перемещаем оттуда файлintfiltr.sys в директорию %WINDIR%system32drivers. Перегружать машину не обязательно, но желательно :) Опять возвращаемся в распакованный архив - в директорию..IntFiltrConfig запускаем там на выполнение intfiltr.exe и видим такое окно...

 

 

Соответственно в списке девайсов надо выбрать интересующий.. Нас интересует "B2C2 Broadband Receiver PCI Adapter" - это и есть SkyStar2.

В принципе, можно перенаправлять любой драйвер на любой процессор(ы)...

 

 

Надобно выделить его грызуном и нажать пимпу "Add Filter"..

 

 

Появится окно со следующим уведомлением..

 

 

Ни в коем случае не перегружаясь давим пимпу "Set Mask"

 

 

И видим предложение с выбором процессора(ов), с которым(и) должен работать драйвер. Как видно, программа максимально поддерживает 32 процессора (надеюсь на домашней машине нам это в обозримом будущем не грозит :)...

 

 

Поскольку SkyStar не работает с числом процессоров больше чем 1 :), снимаем галку с CPU1 (он логический, CPU0- физический)..

 

 

Давим ОК и видим очередной спам, где можно нажать то, что понравится, это не критично...

 

 

В результате всех манипуляций должно получиться примерно следующее...

 

 

Теперь можно смело давить "Done" и отправлять машину в перезагруз, первый этап завершен...

После загруза машины драйвер карты будет "виден" только одному процессору - CPU0, процессор CPU1 будет его полностью игнорировать.

 

Итак, драйвер свернули, дело осталось за приложениями...

 

Этап 2: Настройка приложений.

Кроме самого драйвера SkyStar с двумя и более процессорами не работает и ProgDVB - собственно софт для управления скайстаром..

На этот случай тоже есть чудная таблетка - SMP Seesaw. На сей раз программка занимается тем, что под виндами отправлет конкретное приложение на конкретный(е) процессор(ы). Выглядит все это безобразие следующим образом...

 

После инсталляции и запуска SMP Seesaw видим такое окно..

 

 

Нажав правую пимпу мыши на выбранном приложении видим приглашение "послать его на" :) ...

 

 

Можно либо отдать приоритет какому-либо процессору относительно приложения, либо полностью изолировать приложение на определенном процессоре...

Сразу совет :) не стоит изолировать два приложения одновременно на двух процессорах в двухпроцессорной системе - помните, что сама система еще должна работать на каком-то процессоре :) Смотрим дальше..

 

При выборе "Move to CPU(s)..." появится окно, похожее на окно от IntFiltr... В этом варианте приложение будет исполняться только на определенном вами процессоре параллельно с другими приложениями...

 

 

А вот при выборе "Isolate on CPU(s)..." появится такое же окно, но суть данного злодеяния :) прямо противоположная - кроме приложений, назначенных к выполнению на этом процессоре, на нем абсолютно ничего уже выполняться не будет...

 

 

Такой вот чудесный подход...

Можно только добавить, что скажем кодировать видео на одном процессоре, а гонять параллельно какую-нибудь игрулю на втором без тормозов - вполне реальное занятие... А если в ситеме 4 процессора, или скажем 8, или больше ??

Всем удачи..

 

24-09-2003

Максим Субочев aka -MAXX-

Для связи с автором: форум Пирамида

Оригинал статьи - http://ss2smp.narod.ru/

 

Заключение.

Не только SkyStar2 не работает в SMP системах. На сегодняшний момент только Technotrend PCI-Budget (WinTV NOVA, SkyStar3) имеет драйвера, специально адаптированные под этот случай. Думается, что описанный выше способ поможет и другим DVB-картам освоить SMP.

Примечание: В связи со все более широким распространением технологии Hyper Threating, применяемой в процессорах Intel Pentiun IV 2,6 Ггц и выше, двупроцессорность (пусть даже и виртуальная) становится обыденным явлением. Появляются сообщения о проблемах с драйверами для других DVB-карт, например Pent@Net.

20-01-04

 

Комментарии? Поправки? Дополнения? 
dvbnet@msk.gs.ru

О корпорации|Продукция|Техническая информация|Онлайн поддержка|Новости|Статьи|Сервисное обслуживание|Международное сотрудничество
Copyright © 2004 «General Satellite».
All rights reserved.


Rambler's Top100 Яндекс цитирования