cvs commit: src/sys/alpha/alpha clock.c interrupt.c src/sys/alpha/include cpu.h cpuconf.h src/sys/amd64/amd64 local_apic.c mp_machdep.c src/sys/amd64/include apicvar.h clock.h cpu.h frame.h smp.h src/sys/amd64/isa clock.c src/sys/arm/arm ...

John Baldwin jhb at FreeBSD.org
Thu Dec 22 14:16:10 PST 2005


jhb         2005-12-22 22:16:09 UTC

  FreeBSD src repository

  Modified files:
    sys/alpha/alpha      clock.c interrupt.c 
    sys/alpha/include    cpu.h cpuconf.h 
    sys/amd64/amd64      local_apic.c mp_machdep.c 
    sys/amd64/include    apicvar.h clock.h cpu.h frame.h smp.h 
    sys/amd64/isa        clock.c 
    sys/arm/arm          intr.c 
    sys/arm/include      cpu.h frame.h 
    sys/arm/sa11x0       sa11x0_ost.c 
    sys/arm/xscale/i80321 i80321_timer.c 
    sys/i386/i386        local_apic.c mp_machdep.c 
    sys/i386/include     apicvar.h clock.h cpu.h frame.h smp.h 
    sys/i386/isa         clock.c 
    sys/ia64/ia64        interrupt.c 
    sys/ia64/include     cpu.h 
    sys/kern             kern_clock.c 
    sys/pc98/cbus        clock.c 
    sys/powerpc/include  clock.h cpu.h frame.h 
    sys/powerpc/powerpc  clock.c interrupt.c 
    sys/sparc64/include  cpu.h frame.h 
    sys/sparc64/sparc64  tick.c 
    sys/sys              systm.h 
  Log:
  Tweak how the MD code calls the fooclock() methods some.  Instead of
  passing a pointer to an opaque clockframe structure and requiring the
  MD code to supply CLKF_FOO() macros to extract needed values out of the
  opaque structure, just pass the needed values directly.  In practice this
  means passing the pair (usermode, pc) to hardclock() and profclock() and
  passing the boolean (usermode) to hardclock_cpu() and hardclock_process().
  Other details:
  - Axe clockframe and CLKF_FOO() macros on all architectures.  Basically,
    all the archs were taking a trapframe and converting it into a clockframe
    one way or another.  Now they can just extract the PC and usermode values
    directly out of the trapframe and pass it to fooclock().
  - Renamed hardclock_process() to hardclock_cpu() as the latter is more
    accurate.
  - On Alpha, we now run profclock() at hz (profhz == hz) rather than at
    the slower stathz.
  - On Alpha, for the TurboLaser machines that don't have an 8254
    timecounter, call hardclock() directly.  This removes an extra
    conditional check from every clock interrupt on Alpha on the BSP.
    There is probably room for even further pruning here by changing Alpha
    to use the simplified timecounter we use on x86 with the lapic timer
    since we don't get interrupts from the 8254 on Alpha anyway.
  - On x86, clkintr() shouldn't ever be called now unless using_lapic_timer
    is false, so add a KASSERT() to that affect and remove a condition
    to slightly optimize the non-lapic case.
  - Change prototypeof  arm_handler_execute() so that it's first arg is a
    trapframe pointer rather than a void pointer for clarity.
  - Use KCOUNT macro in profclock() to lookup the kernel profiling bucket.
  
  Tested on:      alpha, amd64, arm, i386, ia64, sparc64
  Reviewed by:    bde (mostly)
  
  Revision  Changes    Path
  1.42      +20 -23    src/sys/alpha/alpha/clock.c
  1.89      +13 -15    src/sys/alpha/alpha/interrupt.c
  1.43      +0 -11     src/sys/alpha/include/cpu.h
  1.15      +1 -1      src/sys/alpha/include/cpuconf.h
  1.23      +6 -5      src/sys/amd64/amd64/local_apic.c
  1.267     +1 -1      src/sys/amd64/amd64/mp_machdep.c
  1.16      +1 -1      src/sys/amd64/include/apicvar.h
  1.51      +0 -1      src/sys/amd64/include/clock.h
  1.75      +0 -4      src/sys/amd64/include/cpu.h
  1.30      +0 -30     src/sys/amd64/include/frame.h
  1.87      +1 -1      src/sys/amd64/include/smp.h
  1.224     +7 -6      src/sys/amd64/isa/clock.c
  1.12      +2 -2      src/sys/arm/arm/intr.c
  1.5       +0 -3      src/sys/arm/include/cpu.h
  1.4       +0 -22     src/sys/arm/include/frame.h
  1.4       +6 -4      src/sys/arm/sa11x0/sa11x0_ost.c
  1.9       +4 -2      src/sys/arm/xscale/i80321/i80321_timer.c
  1.25      +6 -5      src/sys/i386/i386/local_apic.c
  1.261     +1 -1      src/sys/i386/i386/mp_machdep.c
  1.16      +1 -1      src/sys/i386/include/apicvar.h
  1.53      +0 -1      src/sys/i386/include/clock.h
  1.75      +0 -4      src/sys/i386/include/cpu.h
  1.27      +0 -25     src/sys/i386/include/frame.h
  1.86      +1 -1      src/sys/i386/include/smp.h
  1.226     +7 -6      src/sys/i386/isa/clock.c
  1.54      +4 -4      src/sys/ia64/ia64/interrupt.c
  1.47      +0 -11     src/sys/ia64/include/cpu.h
  1.185     +15 -22    src/sys/kern/kern_clock.c
  1.150     +3 -3      src/sys/pc98/cbus/clock.c
  1.11      +1 -1      src/sys/powerpc/include/clock.h
  1.19      +0 -5      src/sys/powerpc/include/cpu.h
  1.12      +0 -7      src/sys/powerpc/include/frame.h
  1.21      +3 -3      src/sys/powerpc/powerpc/clock.c
  1.5       +2 -5      src/sys/powerpc/powerpc/interrupt.c
  1.16      +0 -3      src/sys/sparc64/include/cpu.h
  1.16      +0 -4      src/sys/sparc64/include/frame.h
  1.18      +10 -10    src/sys/sparc64/sparc64/tick.c
  1.236     +4 -5      src/sys/sys/systm.h


More information about the cvs-src mailing list