Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 25 Jun 2011 02:15:14 +0000 (UTC)
From:      Marcel Moolenaar <marcel@FreeBSD.org>
To:        cvs-src-old@freebsd.org
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
Message-ID:  <201106250215.p5P2Fafw016408@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
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 <self>_bsp()
      or <self>_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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201106250215.p5P2Fafw016408>