А для чего уменьшали ticksize? Я бы не рекомендовал его уменьшать без необходимости. Т.е. лучше оставлять те самые 10мс по умолчанию.
Кстати, отсчёты системного времени могут теряться при работе "плохого" обработчика прерывания. Такого обработчика, который работает дольше одного ticksize. Со штатными драйверами такого происходить не должно, но Вы можете проверить драйвера, разработанные Вами. Правда в случае с обычными прерываниями можно задать последовательность прерываний, когда прерывания от таймера будут иметь наивысший приоритет, но лучше бороться не с симптомами, а с причиной.
И согласен с Володей, стоит отключить всё лишнее в настройках BIOS. Сейчас очень много всего реализовано через эмуляцию, что в свою очередь, сказывается на времени работы обработчика SMI.
ticksize был уменьшен давно (лет 7 назад) тогда другое оборудование было и работало кое что по таймеру. Вот с тех пор оно и осталось, сейчас все по прерываниям работает

В наших драйверах обработчик прерываний небольшой:
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 в данном случае - оптимальный вариант
