summaryrefslogtreecommitdiff
path: root/usr/src/uts/i86pc/ml
diff options
context:
space:
mode:
authoresolom <none@none>2005-11-23 14:13:35 -0800
committeresolom <none@none>2005-11-23 14:13:35 -0800
commitfd71cd2f6f10f4a2e3af3efe8b145d645bb80d85 (patch)
tree97f1f1823eae4cd4b05275102e7020865e8301c6 /usr/src/uts/i86pc/ml
parent394a25e24123cdf9d847097cafd585e4aed8f420 (diff)
downloadillumos-joyent-fd71cd2f6f10f4a2e3af3efe8b145d645bb80d85.tar.gz
6352347 100% system: interrupts account for 20 days, uptime for only 7
Diffstat (limited to 'usr/src/uts/i86pc/ml')
-rw-r--r--usr/src/uts/i86pc/ml/interrupt.s20
1 files changed, 20 insertions, 0 deletions
diff --git a/usr/src/uts/i86pc/ml/interrupt.s b/usr/src/uts/i86pc/ml/interrupt.s
index 793febdb56..ddecbf69b1 100644
--- a/usr/src/uts/i86pc/ml/interrupt.s
+++ b/usr/src/uts/i86pc/ml/interrupt.s
@@ -894,6 +894,16 @@ _interrupt_size:
/
testw $T_INTR_THREAD, T_FLAGS(%edx)
jz 0f
+ /
+ / We have interrupted an interrupt thread. Account for its time slice
+ / only if its time stamp is non-zero. t_intr_start may be zero due to
+ / cpu_intr_swtch_enter.
+ /
+ cmpl $0, T_INTR_START+4(%edx)
+ jne 1f
+ cmpl $0, T_INTR_START(%edx)
+ je 0f
+1:
pushl %ecx
pushl %eax
movl %edx, %esi
@@ -1327,6 +1337,16 @@ _fakesoftint_size:
/ If we are interrupting an interrupt thread, account for it.
testw $T_INTR_THREAD, T_FLAGS(%ecx)
jz 0f
+ /
+ / We have interrupted an interrupt thread. Account for its time slice
+ / only if its time stamp is non-zero. t_intr_start may be zero due to
+ / cpu_intr_swtch_enter.
+ /
+ cmpl $0, T_INTR_START+4(%ecx)
+ jne 1f
+ cmpl $0, T_INTR_START(%ecx)
+ je 0f
+1:
pushl %eax
movl %eax, %ebp
_tsc_patch11: