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

Function exec_release_args_kva

freebsd/kern/kern_exec.c:1335–1353  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1333}
1334
1335static void
1336exec_release_args_kva(struct exec_args_kva *argkva, u_int gen)
1337{
1338 vm_offset_t base;
1339
1340 base = argkva->addr;
1341 if (argkva->gen != gen) {
1342 (void)vm_map_madvise(exec_map, base, base + exec_map_entry_size,
1343 MADV_FREE);
1344 argkva->gen = gen;
1345 }
1346 if (!atomic_cmpset_ptr((uintptr_t *)DPCPU_PTR(exec_args_kva),
1347 (uintptr_t)NULL, (uintptr_t)argkva)) {
1348 mtx_lock(&exec_args_kva_mtx);
1349 SLIST_INSERT_HEAD(&exec_args_kva_freelist, argkva, next);
1350 wakeup_one(&exec_args_kva_freelist);
1351 mtx_unlock(&exec_args_kva_mtx);
1352 }
1353}
1354
1355static void
1356exec_free_args_kva(void *cookie)

Callers 2

exec_free_args_kvaFunction · 0.85
exec_args_kva_lowmemFunction · 0.85

Calls 4

vm_map_madviseFunction · 0.85
mtx_lockFunction · 0.70
wakeup_oneFunction · 0.70
mtx_unlockFunction · 0.70

Tested by

no test coverage detected