* Hang in CoreCheckTimers
@ 2020-09-13 10:09 Stanley Gan
0 siblings, 0 replies; only message in thread
From: Stanley Gan @ 2020-09-13 10:09 UTC (permalink / raw)
To: devel
[-- Attachment #1: Type: text/plain, Size: 1173 bytes --]
Hi All,
I have some questions about MdeModulePkg\Core\Dxe\Event\Timer.c
CoreCheckTimers.
My system will keep looping in CoreCheckTimers in some scenarios:
· CPU run very slow (Cache disabled)
· A lot of timer event (Network stack enabled)
In normal boot, CoreCheckTimers will execute two times. 1st time, it
actually signifies timer event. 2nd time, because there is no expired
timer, it will exit quickly.
In my scenario, another time interrupt comes and updates EfiSystemTime at
second CoreCheckTimers. The system will keep looping in CoreCheckTimers.
My questions are:
1. Is the " CoreSignalEvent (mEfiCheckTimerEvent)" line below
necessary? Can we disable interrupt at TPL 30?
//
// If that's before now, then reset the timer to start from now
//
if (Event->Timer.TriggerTime <= SystemTime) {
Event->Timer.TriggerTime = SystemTime;
CoreSignalEvent (mEfiCheckTimerEvent);
}
2. If the system runs slowly, do we need to expand the timer
interrupt interval? Is there any requirments about the ratio between CPU
speed and timer interval?
[-- Attachment #2: Type: text/html, Size: 4154 bytes --]
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2020-09-13 10:10 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-09-13 10:09 Hang in CoreCheckTimers Stanley Gan
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox