Module Name: src Committed By: matt Date: Thu Sep 27 00:23:27 UTC 2012
Modified Files: src/sys/arch/arm/cortex: a9tmr.c a9tmr_var.h Log Message: Don't bother dealing with "extra" ticks, just count them. To generate a diff of this commit: cvs rdiff -u -r1.2 -r1.3 src/sys/arch/arm/cortex/a9tmr.c cvs rdiff -u -r1.1 -r1.2 src/sys/arch/arm/cortex/a9tmr_var.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/arch/arm/cortex/a9tmr.c diff -u src/sys/arch/arm/cortex/a9tmr.c:1.2 src/sys/arch/arm/cortex/a9tmr.c:1.3 --- src/sys/arch/arm/cortex/a9tmr.c:1.2 Fri Sep 14 03:52:19 2012 +++ src/sys/arch/arm/cortex/a9tmr.c Thu Sep 27 00:23:27 2012 @@ -1,4 +1,4 @@ -/* $NetBSD: a9tmr.c,v 1.2 2012/09/14 03:52:19 matt Exp $ */ +/* $NetBSD: a9tmr.c,v 1.3 2012/09/27 00:23:27 matt Exp $ */ /*- * Copyright (c) 2012 The NetBSD Foundation, Inc. @@ -30,7 +30,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: a9tmr.c,v 1.2 2012/09/14 03:52:19 matt Exp $"); +__KERNEL_RCSID(0, "$NetBSD: a9tmr.c,v 1.3 2012/09/27 00:23:27 matt Exp $"); #include <sys/param.h> #include <sys/bus.h> @@ -134,6 +134,9 @@ a9tmr_attach(device_t parent, device_t s sc->sc_memt = mpcaa->mpcaa_memt; sc->sc_memh = mpcaa->mpcaa_memh; + evcnt_attach_dynamic(&sc->sc_ev_missing_ticks, EVCNT_TYPE_MISC, NULL, + device_xname(self), "missing interrupts"); + bus_space_subregion(sc->sc_memt, sc->sc_memh, TMR_GLOBAL_BASE, TMR_GLOBAL_BASE, &sc->sc_global_memh); bus_space_subregion(sc->sc_memt, sc->sc_memh, @@ -298,6 +301,7 @@ clockhandler(void *arg) hardclock(cf); +#if 0 /* * Try to make up up to a seconds amount of missed clock interrupts */ @@ -307,6 +311,10 @@ clockhandler(void *arg) delta -= sc->sc_autoinc, ticks--) { hardclock(cf); } +#else + if (delta > sc->sc_autoinc) + sc->sc_ev_missing_ticks.ev_count += delta / sc->sc_autoinc; +#endif return 1; } Index: src/sys/arch/arm/cortex/a9tmr_var.h diff -u src/sys/arch/arm/cortex/a9tmr_var.h:1.1 src/sys/arch/arm/cortex/a9tmr_var.h:1.2 --- src/sys/arch/arm/cortex/a9tmr_var.h:1.1 Sat Sep 1 00:03:14 2012 +++ src/sys/arch/arm/cortex/a9tmr_var.h Thu Sep 27 00:23:27 2012 @@ -1,4 +1,4 @@ -/* $NetBSD: a9tmr_var.h,v 1.1 2012/09/01 00:03:14 matt Exp $ */ +/* $NetBSD: a9tmr_var.h,v 1.2 2012/09/27 00:23:27 matt Exp $ */ /*- * Copyright (c) 2012 The NetBSD Foundation, Inc. * All rights reserved. @@ -38,6 +38,7 @@ struct a9tmr_softc { bus_space_handle_t sc_global_memh; bus_space_handle_t sc_private_memh; bus_space_handle_t sc_wdog_memh; + struct evcnt sc_ev_missing_ticks; u_long sc_freq; u_long sc_autoinc; void *sc_global_ih;