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

Bosko Milekic bmilekic at
Mon Aug 11 12:39:46 PDT 2003

bmilekic    2003/08/11 12:39:45 PDT

  FreeBSD src repository

  Modified files:
    sys/vm               uma_core.c uma_int.h 
  - When deciding whether to init the zone with small_init or large_init,
    compare the zone element size (+1 for the byte of linkage) against
    UMA_SLAB_SIZE - sizeof(struct uma_slab), and not just UMA_SLAB_SIZE.
    Add a KASSERT in zone_small_init to make sure that the computed
    ipers (items per slab) for the zone is not zero, despite the addition
    of the check, just to be sure (this part submitted by: silby)
  - UMA_ZONE_VM used to imply BUCKETCACHE.  Now it implies
    CACHEONLY instead.  CACHEONLY is like BUCKETCACHE in the
    case of bucket allocations, but in addition to that also ensures that
    we don't setup the zone with OFFPAGE slab headers allocated from the
    slabzone.  This means that we're not allowed to have a UMA_ZONE_VM
    zone initialized for large items (zone_large_init) because it would
    require the slab headers to be allocated from slabzone, and hence
    kmem_map.  Some of the zones init'd with UMA_ZONE_VM are so init'd
    before kmem_map is suballoc'd from kernel_map, which is why this
    change is necessary.
  Revision  Changes    Path
  1.73      +24 -5     src/sys/vm/uma_core.c
  1.17      +1 -1      src/sys/vm/uma_int.h

More information about the cvs-src mailing list