cvs commit: src/sys/i386/i386 trap.c src/sys/kern kern_exit.c kern_switch.c kern_synch.c src/sys/sys proc.h thread.h

Matthew Dillon dillon at
Thu Oct 16 15:27:01 PDT 2003

dillon      2003/10/16 15:26:42 PDT

  Modified files:
    sys/i386/i386        trap.c 
    sys/kern             kern_exit.c kern_switch.c kern_synch.c 
    sys/sys              proc.h thread.h 
  Fix the userland scheduler.  When the scheduler releases the P_CURPROC
  designation it unconditionally handed it off to the highest priority
  process on the userland process queue, ignoring the fact that the 'current'
  process might have had a higher priority.  There was also a missing call to
  lwkt_maybe_switch() in the resched_wanted() case that could cause interrupt
  threads to stall for a long period of time when they could not preempt.
  In SMP there are still some issues.  Niced processes work better, but at
  the moment the P_CURPROC handoff does not take into account the fact that
  the new higher priority process might better be handed off to another cpu
  that is running a lower priority process then the current cpu.
  Revision  Changes    Path
  1.35      +15 -15    src/sys/i386/i386/trap.c
  1.24      +1 -1      src/sys/kern/kern_exit.c
  1.10      +12 -6     src/sys/kern/kern_switch.c
  1.23      +3 -1      src/sys/kern/kern_synch.c
  1.32      +1 -1      src/sys/sys/proc.h
  1.35      +1 -0      src/sys/sys/thread.h

More information about the Commits mailing list