MCPcopy Create free account
hub / github.com/F-Stack/f-stack / vmem_startup

Function vmem_startup

freebsd/kern/subr_vmem.c:701–725  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

699#endif
700
701void
702vmem_startup(void)
703{
704
705 mtx_init(&vmem_list_lock, "vmem list lock", NULL, MTX_DEF);
706 vmem_zone = uma_zcreate("vmem",
707 sizeof(struct vmem), NULL, NULL, NULL, NULL,
708 UMA_ALIGN_PTR, 0);
709 vmem_bt_zone = uma_zcreate("vmem btag",
710 sizeof(struct vmem_btag), NULL, NULL, NULL, NULL,
711 UMA_ALIGN_PTR, UMA_ZONE_VM);
712#ifndef UMA_MD_SMALL_ALLOC
713 mtx_init(&vmem_bt_lock, "btag lock", NULL, MTX_DEF);
714 uma_prealloc(vmem_bt_zone, BT_MAXALLOC);
715 /*
716 * Reserve enough tags to allocate new tags. We allow multiple
717 * CPUs to attempt to allocate new tags concurrently to limit
718 * false restarts in UMA. vmem_bt_alloc() allocates from a per-domain
719 * arena, which may involve importing a range from the kernel arena,
720 * so we need to keep at least 2 * BT_MAXALLOC tags reserved.
721 */
722 uma_zone_reserve(vmem_bt_zone, 2 * BT_MAXALLOC * mp_ncpus);
723 uma_zone_set_allocf(vmem_bt_zone, vmem_bt_alloc);
724#endif
725}
726
727/* ---- rehash */
728

Callers 1

vm_mem_initFunction · 0.85

Calls 5

mtx_initFunction · 0.85
uma_zcreateFunction · 0.85
uma_preallocFunction · 0.85
uma_zone_reserveFunction · 0.85
uma_zone_set_allocfFunction · 0.85

Tested by

no test coverage detected