Unit number allocation API

Poul-Henning Kamp phk at critter.freebsd.dk
Thu Sep 30 00:06:50 PDT 2004


I had this one out on arch@ previously.  I'm very interested in informed
feedback on how we deal with locking for service api's like this.

Poul-Henning

phk         2004-09-30 07:04:03 UTC

  FreeBSD src repository

  Modified files:
    sys/sys              systm.h 
    sys/conf             files 
  Added files:
    sys/kern             subr_unit.c 
  Log:
  Add a new API for allocating unit number (-like) resources.
  
  Allocation is always lowest free unit number.
  
  A mixed range/bitmap strategy for maximum memory efficiency.  In
  the typical case where no unit numbers are freed total memory usage
  is 56 bytes on i386.
  
  malloc is called M_WAITOK but no locking is provided (yet).  A bit of
  experience will be necessary to determine the best strategy.  Hopefully
  a "caller provides locking" strategy can be maintained, but that may
  require use of M_NOWAIT allocation and failure handling.
  
  A userland test driver is included.
  
  Revision  Changes    Path
  1.955     +1 -0      src/sys/conf/files
  1.1       +597 -0    src/sys/kern/subr_unit.c (new)
  1.215     +8 -0      src/sys/sys/systm.h


------- End of Forwarded Message



More information about the freebsd-current mailing list