Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 10 Aug 2001 15:53:32 -0700 (PDT)
From:      John Baldwin <jhb@FreeBSD.org>
To:        cvs-committers@FreeBSD.org, cvs-all@FreeBSD.org
Subject:   cvs commit: src/sys/alpha/alpha trap.c src/sys/alpha/include cpu.h src/sys/i386/i386 sys_machdep.c trap.c src/sys/i386/include cpu.h src/sys/i386/isa npx.c src/sys/ia64/ia64 trap.c src/sys/ia64/include cpu.h src/sys/kern kern_clock.c kern_intr.c ...
Message-ID:  <200108102253.f7AMrWx48949@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help
jhb         2001/08/10 15:53:32 PDT

  Modified files:
    sys/alpha/alpha      trap.c 
    sys/alpha/include    cpu.h 
    sys/i386/i386        sys_machdep.c trap.c 
    sys/i386/include     cpu.h 
    sys/i386/isa         npx.c 
    sys/ia64/ia64        trap.c 
    sys/ia64/include     cpu.h 
    sys/kern             kern_clock.c kern_intr.c kern_synch.c 
                         subr_prof.c subr_smp.c subr_trap.c 
    sys/pc98/pc98        npx.c 
    sys/posix4           ksched.c 
    sys/powerpc/include  cpu.h 
    sys/powerpc/powerpc  trap.c 
    sys/sparc64/include  cpu.h 
    sys/sparc64/sparc64  trap.c 
    sys/sys              proc.h resourcevar.h 
  Log:
  - Close races with signals and other AST's being triggered while we are in
    the process of exiting the kernel.  The ast() function now loops as long
    as the PS_ASTPENDING or PS_NEEDRESCHED flags are set.  It returns with
    preemption disabled so that any further AST's that arrive via an
    interrupt will be delayed until the low-level MD code returns to user
    mode.
  - Use u_int's to store the tick counts for profiling purposes so that we
    do not need sched_lock just to read p_sticks.  This also closes a
    problem where the call to addupc_task() could screw up the arithmetic
    due to non-atomic reads of p_sticks.
  - Axe need_proftick(), aston(), astoff(), astpending(), need_resched(),
    clear_resched(), and resched_wanted() in favor of direct bit operations
    on p_sflag.
  - Fix up locking with sched_lock some.  In addupc_intr(), use sched_lock
    to ensure pr_addr and pr_ticks are updated atomically with setting
    PS_OWEUPC.  In ast() we clear pr_ticks atomically with clearing
    PS_OWEUPC.  We also do not grab the lock just to test a flag.
  - Simplify the handling of Giant in ast() slightly.
  
  Reviewed by:	bde (mostly)
  
  Revision  Changes    Path
  1.73      +3 -7      src/sys/alpha/alpha/trap.c
  1.30      +1 -15     src/sys/alpha/include/cpu.h
  1.60      +2 -2      src/sys/i386/i386/sys_machdep.c
  1.198     +3 -8      src/sys/i386/i386/trap.c
  1.63      +1 -15     src/sys/i386/include/cpu.h
  1.108     +2 -2      src/sys/i386/isa/npx.c
  1.27      +3 -7      src/sys/ia64/ia64/trap.c
  1.20      +1 -14     src/sys/ia64/include/cpu.h
  1.128     +5 -9      src/sys/kern/kern_clock.c
  1.61      +4 -4      src/sys/kern/kern_intr.c
  1.155     +3 -3      src/sys/kern/kern_synch.c
  1.47      +4 -2      src/sys/kern/subr_prof.c
  1.157     +2 -2      src/sys/kern/subr_smp.c
  1.197     +70 -66    src/sys/kern/subr_trap.c
  1.84      +2 -2      src/sys/pc98/pc98/npx.c
  1.14      +4 -4      src/sys/posix4/ksched.c
  1.4       +1 -3      src/sys/powerpc/include/cpu.h
  1.3       +2 -2      src/sys/powerpc/powerpc/trap.c
  1.4       +1 -11     src/sys/sparc64/include/cpu.h
  1.7       +3 -6      src/sys/sparc64/sparc64/trap.c
  1.174     +5 -33     src/sys/sys/proc.h
  1.23      +2 -2      src/sys/sys/resourcevar.h


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe cvs-all" in the body of the message




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