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

Function vm_fault_zerofill

freebsd/vm/vm_fault.c:1040–1068  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1038}
1039
1040static void
1041vm_fault_zerofill(struct faultstate *fs)
1042{
1043
1044 /*
1045 * If there's no object left, fill the page in the top
1046 * object with zeros.
1047 */
1048 if (fs->object != fs->first_object) {
1049 vm_object_pip_wakeup(fs->object);
1050 fs->object = fs->first_object;
1051 fs->pindex = fs->first_pindex;
1052 }
1053 MPASS(fs->first_m != NULL);
1054 MPASS(fs->m == NULL);
1055 fs->m = fs->first_m;
1056 fs->first_m = NULL;
1057
1058 /*
1059 * Zero the page if necessary and mark it valid.
1060 */
1061 if ((fs->m->flags & PG_ZERO) == 0) {
1062 pmap_zero_page(fs->m);
1063 } else {
1064 VM_CNT_INC(v_ozfod);
1065 }
1066 VM_CNT_INC(v_zfod);
1067 vm_page_valid(fs->m);
1068}
1069
1070/*
1071 * Allocate a page directly or via the object populate method.

Callers 1

vm_faultFunction · 0.85

Calls 3

vm_object_pip_wakeupFunction · 0.85
vm_page_validFunction · 0.85
pmap_zero_pageFunction · 0.50

Tested by

no test coverage detected