Source-Changes archive

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

CVS commit: src/sys

Module Name:    src
Committed By:   thorpej
Date:           Sun Dec  3 19:34:08 UTC 2023

Modified Files:
        src/sys/kern: subr_vmem.c
        src/sys/sys: vmem.h vmem_impl.h

Log Message:
Add the notion of "private boundary tags" to vmem.  This allows vmem to
be used VERY early in boot; such consumers statically allocate the vmem
arena and boundary tags, and then explicitly add those static, private
boundary tags to the arena tag free list using the new function vmem_add_bts().

Vmem arenas that use private boundary tags will NOT consume the statically
allocated bootstrap tags used by the vmem system itself; the assumption is
that the consumer of such an arena knows what they're doing, and is responsible
for all necessary resource management.  A macro, VMEM_EST_BTCOUNT(), is
provided to help such consumers size the static boundary tag store based
on the expected number of spans and early allocations.  Once the private
tags are exhausted, the arena will dynamically allocate tags as usual.

To generate a diff of this commit:
cvs rdiff -u -r1.114 -r1.115 src/sys/kern/subr_vmem.c
cvs rdiff -u -r1.24 -r1.25 src/sys/sys/vmem.h
cvs rdiff -u -r1.7 -r1.8 src/sys/sys/vmem_impl.h

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Home | Main Index | Thread Index | Old Index