Официальный форум СВД Встраиваемые Системы
08 Февраля, 2012, 12:32:53 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.

Войти
 
 
 Сайт СВД ВС  Начало   Помощь Поиск Войти Регистрация  
Страниц: 1 [2]   Вниз
  Печать  
Автор Тема: КПДА.00002-01, системные часы и новые процессоры....  (Прочитано 1078 раз)
Владимир Махилёв
Сотрудник СВД ВС
Опытный пользователь

Сообщений: 480



WWW
« Ответ #15 : 18 Марта, 2010, 17:47:06 »

В любом случае SMI лучше выключить. Если в BIOS нет явных опций относительно SMI (наиболее вероятный вариант) то просто выключать всё лишнее из разряда эмуляций, контроля за вращением вентиляторов, температуры и т.п.
Потом можно разобраться как выключаться SMI для этого чипсета. Бывает в coreboot можно что-нибудь подсмотреть. Или, вот сходу, обсуждение на форуме foundry27
Записан

Al
Пользователь

Сообщений: 82


« Ответ #16 : 18 Марта, 2010, 17:55:34 »

В любом случае SMI лучше выключить. Если в BIOS нет явных опций относительно SMI (наиболее вероятный вариант) то просто выключать всё лишнее из разряда эмуляций, контроля за вращением вентиляторов, температуры и т.п.
Потом можно разобраться как выключаться SMI для этого чипсета. Бывает в coreboot можно что-нибудь подсмотреть. Или, вот сходу, обсуждение на форуме foundry27
В BIOSе (AMI) вообще скудно, особо и отключать нечего Embarrassed

Попробую оставить ticksize 10мс. 0.5мс исторически сложился при работе со старым оборудованием, теперь уже это не так важно.
Записан

Олег Большаков
Администратор
Старожил

Сообщений: 2111


Читаю...


WWW
« Ответ #17 : 18 Марта, 2010, 17:58:04 »

А если ticksize увеличить, например, до 10мс, то временной разбег остаётся прежним или приходит в норму? Зависит ли разбег от загрузки системы? Каково вообще загрузка?
ticksize увеличил, помогло Smiley Загрузка системы небольшая. Похоже действительно обработчик SMI "жрёт" тики....

А для чего уменьшали ticksize? Я бы не рекомендовал его уменьшать без необходимости. Т.е. лучше оставлять те самые 10мс по умолчанию.

Кстати, отсчёты системного времени могут теряться при работе "плохого" обработчика прерывания. Такого обработчика, который работает дольше одного ticksize. Со штатными драйверами такого происходить не должно, но Вы можете проверить драйвера, разработанные Вами. Правда в случае с обычными прерываниями можно задать последовательность прерываний, когда прерывания от таймера будут иметь наивысший приоритет, но лучше бороться не с симптомами, а с причиной.

И согласен с Володей, стоит отключить всё лишнее в настройках BIOS. Сейчас очень много всего реализовано через эмуляцию, что в свою очередь, сказывается на времени работы обработчика SMI.
Записан

Владимир Махилёв
Сотрудник СВД ВС
Опытный пользователь

Сообщений: 480



WWW
« Ответ #18 : 18 Марта, 2010, 18:07:29 »

На foundry27 человек даже куски кода выложил для отключения SMI на Q35, думаю имеет смысл попробовать.
Записан

Al
Пользователь

Сообщений: 82


« Ответ #19 : 18 Марта, 2010, 18:26:11 »

А для чего уменьшали ticksize? Я бы не рекомендовал его уменьшать без необходимости. Т.е. лучше оставлять те самые 10мс по умолчанию.

Кстати, отсчёты системного времени могут теряться при работе "плохого" обработчика прерывания. Такого обработчика, который работает дольше одного ticksize. Со штатными драйверами такого происходить не должно, но Вы можете проверить драйвера, разработанные Вами. Правда в случае с обычными прерываниями можно задать последовательность прерываний, когда прерывания от таймера будут иметь наивысший приоритет, но лучше бороться не с симптомами, а с причиной.

И согласен с Володей, стоит отключить всё лишнее в настройках BIOS. Сейчас очень много всего реализовано через эмуляцию, что в свою очередь, сказывается на времени работы обработчика SMI.
ticksize был уменьшен давно (лет 7 назад) тогда другое оборудование было и работало кое что по таймеру. Вот с тех пор оно и осталось, сейчас все по прерываниям работает Smiley
В наших драйверах обработчик прерываний небольшой:
Код:
pid_t far tlmfifo_irq_handler( void )
{
  pid_t rc = 0;
  unsigned long mask;

  if( !dev.run )
    return rc;

  _disable();

  if( cfg.mode == TLMFIFO_MODE_FIFO )
  {
    if( dev.dma )
    {
      ih_status = inpd( fifo_p_dma_st_cntr( dev.address ));
      mask = ( FIFO_DMA_READY | FIFO_DMA_IRQ_EN );
    }
    else
    {
      ih_status = inpd( fifo_p_st_cntr( dev.address ));
      mask = FIFO_THRESHOLD;
    }
    if(( ih_status & mask ) == mask )
      rc = dev.irq_proxy;
  }

  ih_status = inpd( fifo_p_time( dev.address ));
  mask = HZ_FLAG;
  if(( ih_status & mask ) == mask )
  {
    stime.min = ih_status & MIN_FLAG;
    stime.fmin = ih_status & FM_FLAG;

    if( cfg.mode == TLMFIFO_MODE_TIME )
      rc = dev.time_proxy;
  }

  _enable();
 
  return rc;
}
С отключением SMI возится не будем специально для этой платы. Увеличение ticksize в данном случае - оптимальный вариант Smiley
Записан

Al
Пользователь

Сообщений: 82


« Ответ #20 : 18 Марта, 2010, 18:40:33 »

Всем спасибо за помощь в решении данного вопроса Smiley
Записан

Страниц: 1 [2]   Вверх
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP © 2002-2011 СВД Встраиваемые Системы.
При использовании материалов сайта ссылка на forum.kpda.ru обязательна.

Powered by SMF 1.1.16 | SMF © 2006-2009, Simple Machines | © Aiwan. Kolobok smiles | Sitemap
Valid XHTML 1.0! Valid CSS!
Сайт СВД ВС