cvs commit: src/sys/vm uma.h uma_core.c uma_int.h

Robert Watson rwatson at FreeBSD.org
Sat Jul 23 15:05:25 GMT 2005


rwatson     2005-07-23 15:05:24 UTC

  FreeBSD src repository

  Modified files:        (Branch: RELENG_6)
    sys/vm               uma.h uma_core.c uma_int.h 
  Log:
  Merge uma.h:1.23, uma_int.h:1.33, uma_core.c:1.122 from HEAD to
  RELENG_6:
  
    Introduce a new sysctl, vm.zone_stats, which exports UMA(9) allocator
    statistics via a binary structure stream:
  
    - Add structure 'uma_stream_header', which defines a stream version,
      definition of MAXCPUs used in the stream, and the number of zone
      records in the stream.
  
    - Add structure 'uma_type_header', which defines the name, alignment,
      size, resource allocation limits, current pages allocated, preferred
      bucket size, and central zone + keg statistics.
  
    - Add structure 'uma_percpu_stat', which, for each per-CPU cache,
      includes the number of allocations and frees, as well as the number
      of free items in the cache.
  
    - When the sysctl is queried, return a stream header, followed by a
      series of type descriptions, each consisting of a type header
      followed by a series of MAXCPUs uma_percpu_stat structures holding
      per-CPU allocation information.  Typical values of MAXCPU will be
      1 (UP compiled kernel) and 16 (SMP compiled kernel).
  
    This query mechanism allows user space monitoring tools to extract
    memory allocation statistics in a machine-readable form, and to do so
    at a per-CPU granularity, allowing monitoring of allocation patterns
    across CPUs in order to better understand the distribution of work and
    memory flow over multiple CPUs.
  
    While here, also export the number of UMA zones as a sysctl
    vm.uma_count, in order to assist in sizing user swpace buffers to
    receive the stream.
  
    A follow-up commit of libmemstat(3), a library to monitor kernel memory
    allocation, will occur in the next few days.  This change directly
    supports converting netstat(1)'s "-mb" mode to using UMA-sourced stats
    rather than separately maintained mbuf allocator statistics.
  
  Approved by:    re (kensmith)
  
  Revision   Changes    Path
  1.22.2.1   +47 -0     src/sys/vm/uma.h
  1.119.2.3  +192 -16   src/sys/vm/uma_core.c
  1.31.2.2   +1 -1      src/sys/vm/uma_int.h


More information about the cvs-src mailing list