diff options
author | Marius Strobl <marius@FreeBSD.org> | 2005-04-16 15:05:56 +0000 |
---|---|---|
committer | Marius Strobl <marius@FreeBSD.org> | 2005-04-16 15:05:56 +0000 |
commit | 2f15864c858a61ba7774b72dfa994ea36dae1180 (patch) | |
tree | 0038da61c05ea0aa8fab463c6c7296764f300d0f /sys/sparc64/sparc64/intr_machdep.c | |
parent | 197bb5864f1737b32f9a863a828ef472e5272ceb (diff) | |
download | src-2f15864c858a61ba7774b72dfa994ea36dae1180.tar.gz src-2f15864c858a61ba7774b72dfa994ea36dae1180.zip |
- MFi386: sys/i386/i386/intr_machdep.c rev. 1.11
Don't use atomic ops to increment interrupt stats.
On sparc64 this reduces delay until tick interrupts are service by 1/10th
on average. In turn this reduces the clock drift caused by these delays
so there's less drift which has to be compensated in tick_hardclock().
This includes switching from atomically incrementing the global cnt.v_intr
to the asm equivalent of PCPU_LAZY_INC(cnt.v_intr) in exception.S
- Correct some comments to match the registers actually used.
- Correct some format specifiers, interrupt levels passed in are u_int.
- Use FBSDID.
Ok'ed by: jhb
Notes
Notes:
svn path=/head/; revision=145153
Diffstat (limited to 'sys/sparc64/sparc64/intr_machdep.c')
-rw-r--r-- | sys/sparc64/sparc64/intr_machdep.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/sys/sparc64/sparc64/intr_machdep.c b/sys/sparc64/sparc64/intr_machdep.c index f460f20989cd..24f71daa24b2 100644 --- a/sys/sparc64/sparc64/intr_machdep.c +++ b/sys/sparc64/sparc64/intr_machdep.c @@ -199,7 +199,7 @@ intr_stray_vector(void *cookie) iv = cookie; if (intr_stray_count[iv->iv_vec] < MAX_STRAY_LOG) { printf("stray vector interrupt %d\n", iv->iv_vec); - atomic_add_long(&intr_stray_count[iv->iv_vec], 1); + intr_stray_count[iv->iv_vec]++; if (intr_stray_count[iv->iv_vec] >= MAX_STRAY_LOG) printf("got %d stray interrupt %d's: not logging " "anymore\n", MAX_STRAY_LOG, iv->iv_vec); |