cvs commit: src/sys/kern kern_timeout.c src/sys/sys callout.h

Attilio Rao attilio at FreeBSD.org
Mon Nov 19 16:37:46 PST 2007


attilio     2007-11-20 00:37:45 UTC

  FreeBSD src repository

  Modified files:
    sys/kern             kern_timeout.c 
    sys/sys              callout.h 
  Log:
  Add the function callout_init_rw() to callout facility in order to use
  rwlocks in conjuction with callouts.  The function does basically what
  callout_init_mtx() alredy does with the difference of using a rwlock
  as extra argument.
  CALLOUT_SHAREDLOCK flag can be used, now, in order to acquire the lock only
  in read mode when running the callout handler.  It has no effects when used
  in conjuction with mtx.
  
  In order to implement this, underlying callout functions have been made
  completely lock type-unaware, so accordingly with this, sysctl
  debug.to_avg_mtxcalls is now changed in the generic
  debug.to_avg_lockcalls.
  
  Note: currently the allowed lock classes are mutexes and rwlocks because
  callout handlers run in softclock swi, so they cannot sleep and they
  cannot acquire sleepable locks like sx or lockmgr.
  
  Requested by: kmacy, pjd, rwatson
  Reviewed by: jhb
  
  Revision  Changes    Path
  1.107     +57 -52    src/sys/kern/kern_timeout.c
  1.32      +10 -3     src/sys/sys/callout.h


More information about the cvs-src mailing list