projects
/
qemu.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
0076bc0
)
reduce number of reinjects on ACK
author
Gleb Natapov
<gleb@redhat.com>
Wed, 20 Jan 2010 13:37:33 +0000
(15:37 +0200)
committer
Anthony Liguori
<aliguori@us.ibm.com>
Wed, 20 Jan 2010 14:51:41 +0000
(08:51 -0600)
Windows 7 BSODs under load with HAL_RTC_IRQF_WILL_NOT_CLEAR error.
It happens here:
hal!HalpRtcUnmaskClock:
8281b93a
8bff mov edi,edi
8281b93c
56 push esi
8281b93d
33f6 xor esi,esi
8281b93f
6a0c push 0Ch
8281b941
e8b2ffffff
call hal!CMOS_READ (
8281b8f8
)
8281b946
84c0 test al,al
8281b948
7920 jns hal!HalpRtcUnmaskClock+0x30 (
8281b96a
)
8281b94a
6a0a push 0Ah
8281b94c
46 inc esi
8281b94d
e854c8ffff
call hal!KeStallExecutionProcessor (
828181a6
)
8281b952
83fe64 cmp esi,64h
8281b955
72e8 jb hal!HalpRtcUnmaskClock+0x5 (
8281b93f
)
8281b957
6a00 push 0
8281b959
6a00 push 0
8281b95b
6a00 push 0
8281b95d
680a010000
push 10Ah
8281b962
6a5c push 5Ch
8281b964
ff1500c38082
call dword ptr [hal!_imp__KeBugCheckEx (
8280c300
)]
8281b96a
5e pop esi
8281b96b
c3 ret
So it loops for 100(64h) times reading register C before BSOD. Lets
reduce number of immediate reinjection well under this limit.
Signed-off-by: Gleb Natapov <gleb@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
hw/mc146818rtc.c
patch
|
blob
|
history
diff --git
a/hw/mc146818rtc.c
b/hw/mc146818rtc.c
index e4d55c7c79f67567134dae627b87cd42a5b6454d..2616d0d7e605241457611e46e57b037d7daf36f2 100644
(file)
--- a/
hw/mc146818rtc.c
+++ b/
hw/mc146818rtc.c
@@
-30,7
+30,7
@@
//#define DEBUG_CMOS
-#define RTC_REINJECT_ON_ACK_COUNT
100
0
+#define RTC_REINJECT_ON_ACK_COUNT
2
0
#define RTC_SECONDS 0
#define RTC_SECONDS_ALARM 1