cvs commit: src/sys/sys globaldata.h param.h proc.h src/sys/kern kern_clock.c kern_exit.c kern_switch.c kern_synch.c lwkt_thread.c src/sys/i386/i386 trap.c

Matthew Dillon dillon at
Fri Oct 17 00:31:55 PDT 2003

dillon      2003/10/17 00:30:43 PDT

  Modified files:
    sys/sys              globaldata.h param.h proc.h 
    sys/kern             kern_clock.c kern_exit.c kern_switch.c 
                         kern_synch.c lwkt_thread.c 
    sys/i386/i386        trap.c 
  Cleanup P_CURPROC and P_CP_RELEASED handling.  P_CP_RELEASED prevents the
  userland scheduler from messing with a process and must be set (in a lazy
  fashion) when a thread that came in from userland is about to block in
  the kernel.  P_CURPROC is used to manage which threads belonging to
  processes controlled by the userland scheduler are scheduled by LWKT.
  The userland scheduler has also been streamlined considerably.
  p_priority now has a rollup priority that can be compared directly,
  regardless of the realtime/idle/whatever queue a process is on.
  p_priority has been changed from an unsigned char to a signed short.
  schedclock is now distributed, so 'top' shows the correct values.
  A huge amount of cpu affinity code has been added to the scheduler.  It is
  not working 100% yet, but the framework is there (see kern/kern_switch.c).
  globaldata now has gd_upri to support remote reschedule requests issued
  by the affinity code.  There are two goals to the new scheduling code for
  MP boxes: (1) so niced/idleprio cpu bound programs do not interfere
  *at* *all* with other things (like, say, a buildworld).  (2) to reduce
  the flip-flopping of processes between cpus.
  lwkt_gettoken() now increments the generation number unconditionally so
  kernel code can detect when other processes have used a token.
  lwkt_send_ipiq_mask() removes stopped cpus from the mask automatically.
  Revision  Changes    Path
  1.18      +3 -1      src/sys/sys/globaldata.h
  1.8       +5 -0      src/sys/sys/param.h
  1.34      +4 -5      src/sys/sys/proc.h
  1.12      +10 -2     src/sys/kern/kern_clock.c
  1.25      +1 -1      src/sys/kern/kern_exit.c
  1.11      +218 -71   src/sys/kern/kern_switch.c
  1.25      +38 -50    src/sys/kern/kern_synch.c
  1.37      +7 -3      src/sys/kern/lwkt_thread.c
  1.36      +32 -21    src/sys/i386/i386/trap.c

More information about the Commits mailing list