On Saturday 31 March 2007 18:51:11 Thomas Gleixner wrote:
Hi,
So maybe I was right afrer all,
Maybe it is better to add a suspend/resume hook to each clock source and call
it from timekeeping_resume() ?
Or maybe even unite clocksources with clockevents, don't know
By the way I want to report maybe a bug / maybe a feature :-) :
(sorry for long explanation)
Basically I have two clockevent sources : PIT(HPET) and APIC
(Actually I it seems that in next version of kernel HPET will be switched out
of 'legacy replacement mode' , so PIT and HPET and RTC could coexist of same system,
But HPET won't be able to generate IRQ0, and it will be assigned some IRQ, possibly shared with other devices)
APIC timer is chosen by default and works fine,
since I don't have C2/C2 states on my system (ICH8 doesn't support them :-( )
But if I force it off (nolapic_timer) HPET or PIC is chosen and strangely they are
put in _periodic_ mode although they are capable of one-shot mode
Is this a bug ?
Secondary I am getting a very strange behavior if I use CONFIG_NOHZ + !CONFIG_HIGH_RES_TIMERS
and try to suspend to ram:
System resumes, but gets crazy:
'top' shows that ksoftirqd consumes 9999 % of cpu time (this is not a typo)
And other 'normal' programs that are running show same 9999 too.
System slows to crawl.
Also I found that one of APICS is in periodic mode, and second is in one shoot mode.
And I tested this with or without my patch (thank goodness it is not my fault)
CONFIG_NOHZ + CONFIG_HIGH_RES_TIMERS work just fine.
Best regards,
Maxim Levitsky
-