DragonFly BSD
DragonFly commits List (threaded) for 2005-04
[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]

cvs commit: src/sys/i386/i386 mp_machdep.c src/sys/i386/include atomic.h src/sys/kern kern_slaballoc.c lwkt_ipiq.c lwkt_token.c src/sys/sys thread.h


From: Matthew Dillon <dillon@xxxxxxxxxxxxxxxxxxxxxxx>
Date: Tue, 12 Apr 2005 21:00:56 -0700 (PDT)

dillon      2005/04/12 21:00:56 PDT

DragonFly src repository

  Modified files:
    sys/i386/i386        mp_machdep.c 
    sys/i386/include     atomic.h 
    sys/kern             kern_slaballoc.c lwkt_ipiq.c lwkt_token.c 
    sys/sys              thread.h 
  Log:
  Optimize lwkt_send_ipiq() - the IPI based inter-cpu messaging routine.
  
  * Add a passive version which does not initiate any actual hardware IPI.
    The message will be handled the next time the target cpu polls the
    queue (on each tick typically).  Adjust the free() path to use this
    version when freeing memory owned by another cpu.
  
  * Add an interlock to avoid reissuing and unnecessarily stalling on
    the hardware IPI if a prior hardware IPI to the target cpu has not
    yet completed processing.
  
    This feature theoretically means that two cpus can tightly couple a
    large number of pipelined messages with only a single actual IPI being
    sent.
  
  * Reorganize the hystersis points in the IPIQ FIFOs.
  
  * Change a token livelock warning into a panic if it occurs 10 times in
    a row.
  
  * Add a call to lwkt_process_ipiq() just after the AP startup code enables
    a cpu, to process any messages that might have built up during startup.
    There shouldn't be any, but this may avoid surprises later.
  
  Revision  Changes    Path
  1.33      +8 -1      src/sys/i386/i386/mp_machdep.c
  1.9       +6 -3      src/sys/i386/include/atomic.h
  1.29      +3 -2      src/sys/kern/kern_slaballoc.c
  1.9       +126 -27   src/sys/kern/lwkt_ipiq.c
  1.12      +5 -3      src/sys/kern/lwkt_token.c
  1.61      +2 -1      src/sys/sys/thread.h


http://www.dragonflybsd.org/cvsweb/src/sys/i386/i386/mp_machdep.c.diff?r1=1.32&r2=1.33&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/i386/include/atomic.h.diff?r1=1.8&r2=1.9&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/kern/kern_slaballoc.c.diff?r1=1.28&r2=1.29&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/kern/lwkt_ipiq.c.diff?r1=1.8&r2=1.9&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/kern/lwkt_token.c.diff?r1=1.11&r2=1.12&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/sys/thread.h.diff?r1=1.60&r2=1.61&f=u



[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]