From owner-cvs-src-old@FreeBSD.ORG Sat Jun 25 02:15:37 2011 Return-Path: Delivered-To: cvs-src-old@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 3ADAB1065783 for ; Sat, 25 Jun 2011 02:15:37 +0000 (UTC) (envelope-from marcel@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 0EF048FC08 for ; Sat, 25 Jun 2011 02:15:37 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.4/8.14.4) with ESMTP id p5P2Fanq016409 for ; Sat, 25 Jun 2011 02:15:36 GMT (envelope-from marcel@repoman.freebsd.org) Received: (from svn2cvs@localhost) by repoman.freebsd.org (8.14.4/8.14.4/Submit) id p5P2Fafw016408 for cvs-src-old@freebsd.org; Sat, 25 Jun 2011 02:15:36 GMT (envelope-from marcel@repoman.freebsd.org) Message-Id: <201106250215.p5P2Fafw016408@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: svn2cvs set sender to marcel@repoman.freebsd.org using -f From: Marcel Moolenaar Date: Sat, 25 Jun 2011 02:15:14 +0000 (UTC) To: cvs-src-old@freebsd.org X-FreeBSD-CVS-Branch: HEAD Subject: cvs commit: src/sys/conf files.ia64 src/sys/ia64/ia64 clock.c db_machdep.c interrupt.c machdep.c mp_machdep.c src/sys/ia64/include pcpu.h smp.h X-BeenThere: cvs-src-old@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: **OBSOLETE** CVS commit messages for the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 25 Jun 2011 02:15:37 -0000 marcel 2011-06-25 02:15:14 UTC FreeBSD src repository Modified files: sys/conf files.ia64 sys/ia64/ia64 clock.c db_machdep.c interrupt.c machdep.c mp_machdep.c sys/ia64/include pcpu.h smp.h Log: SVN rev 223526 on 2011-06-25 02:15:14Z by marcel Switch to the event timers infrastructure. This includes: o Setting td_intr_frame to the XIVs trap frame because it's referenced by the ET event handler. o Signal EOI to the CPU before calling the registered XIV handlers. This prevents lost ITC interrupts, which cause starvation in one-shot mode. o Adding support for IPI_HARDCLOCK with corresponding per-CPU counters. o Have the APs call cpu_initclocks() so as to limited the scattering of clock related initialization. cpu_initclocks() calls the _bsp() or _ap() version accordingly. o Uncomment the ET clock handling in cpu_idle(). o Update the DDB 'show pcpu' output for the new MD fields. o Entirely rewritten ia64_ih_clock(). Note that we don't create as many clock XIVs as we have CPUs, as is done on PowerPC. It doesn't scale. We can only have 240 XIVs and we can have more CPUs than that. There's a single intrcnt index for the cumulative clock ticks and we keep per CPU counts in the PCPU stats structure. o Register the ITC by hooking SI_SUB_CONFIGURE (2nd order). Open issues: o Clock interrupts can still be lost. Some tweaking is still necessary. Thanks to: mav@ for his support, feedback and explanations. ET stats while committing: eris% sysctl machdep.cpu | grep nclks machdep.cpu.0.nclks: 24007 machdep.cpu.1.nclks: 22895 machdep.cpu.2.nclks: 13523 machdep.cpu.3.nclks: 9342 machdep.cpu.4.nclks: 9103 machdep.cpu.5.nclks: 9298 machdep.cpu.6.nclks: 10039 machdep.cpu.7.nclks: 9479 eris% vmstat -i | grep clock clock 108599 50 Revision Changes Path 1.110 +1 -0 src/sys/conf/files.ia64 1.40 +100 -95 src/sys/ia64/ia64/clock.c 1.12 +7 -5 src/sys/ia64/ia64/db_machdep.c 1.82 +6 -2 src/sys/ia64/ia64/interrupt.c 1.277 +5 -4 src/sys/ia64/ia64/machdep.c 1.91 +16 -2 src/sys/ia64/ia64/mp_machdep.c 1.30 +3 -1 src/sys/ia64/include/pcpu.h 1.17 +2 -0 src/sys/ia64/include/smp.h