The branch main has been updated by markj:

URL: 
https://cgit.FreeBSD.org/src/commit/?id=0cb2610ee2dccfde2e385f8e8a10d0b8d6bc0687

commit 0cb2610ee2dccfde2e385f8e8a10d0b8d6bc0687
Author:     Mark Johnston <ma...@freebsd.org>
AuthorDate: 2022-07-16 15:29:19 +0000
Commit:     Mark Johnston <ma...@freebsd.org>
CommitDate: 2022-07-17 11:09:48 +0000

    vm: Remove handling for OBJT_DEFAULT objects
    
    Now that OBJT_DEFAULT objects can't be instantiated, we can simplify
    checks of the form object->type == OBJT_DEFAULT || (object->flags &
    OBJ_SWAP) != 0.  No functional change intended.
    
    Reviewed by:    alc, kib
    Tested by:      pho
    Sponsored by:   The FreeBSD Foundation
    Differential Revision:  https://reviews.freebsd.org/D35788
---
 sys/vm/vm_fault.c   |  3 +--
 sys/vm/vm_map.c     | 12 ++----------
 sys/vm/vm_mmap.c    |  6 ++----
 sys/vm/vm_object.c  | 16 +++-------------
 sys/vm/vm_page.c    |  6 ++----
 sys/vm/vm_pageout.c | 10 +++-------
 6 files changed, 13 insertions(+), 40 deletions(-)

diff --git a/sys/vm/vm_fault.c b/sys/vm/vm_fault.c
index d398be941e84..0433b6dd3d7e 100644
--- a/sys/vm/vm_fault.c
+++ b/sys/vm/vm_fault.c
@@ -2040,8 +2040,7 @@ vm_fault_copy_entry(vm_map_t dst_map, vm_map_t src_map 
__unused,
                dst_object->cred = curthread->td_ucred;
                crhold(dst_object->cred);
                *fork_charge += dst_object->charge;
-       } else if ((dst_object->type == OBJT_DEFAULT ||
-           (dst_object->flags & OBJ_SWAP) != 0) &&
+       } else if ((dst_object->flags & OBJ_SWAP) != 0 &&
            dst_object->cred == NULL) {
                KASSERT(dst_entry->cred != NULL, ("no cred for entry %p",
                    dst_entry));
diff --git a/sys/vm/vm_map.c b/sys/vm/vm_map.c
index 7e528fae7453..04310e42218f 100644
--- a/sys/vm/vm_map.c
+++ b/sys/vm/vm_map.c
@@ -2825,8 +2825,7 @@ again:
                }
 
                VM_OBJECT_WLOCK(obj);
-               if (obj->type != OBJT_DEFAULT &&
-                   (obj->flags & OBJ_SWAP) == 0) {
+               if ((obj->flags & OBJ_SWAP) == 0) {
                        VM_OBJECT_WUNLOCK(obj);
                        continue;
                }
@@ -4136,14 +4135,7 @@ vm_map_copy_entry(
                 */
                size = src_entry->end - src_entry->start;
                if ((src_object = src_entry->object.vm_object) != NULL) {
-                       /*
-                        * Swap-backed objects need special handling.  Note that
-                        * this is an unlocked check, so it is possible to race
-                        * with an OBJT_DEFAULT -> OBJT_SWAP conversion.
-                        */
-                       if (src_object->type == OBJT_DEFAULT ||
-                           src_object->type == OBJT_SWAP ||
-                           (src_object->flags & OBJ_SWAP) != 0) {
+                       if ((src_object->flags & OBJ_SWAP) != 0) {
                                vm_map_copy_swap_object(src_entry, dst_entry,
                                    size, fork_charge);
                                /* May have split/collapsed, reload obj. */
diff --git a/sys/vm/vm_mmap.c b/sys/vm/vm_mmap.c
index 1c02ba35fcfe..56345fcaf560 100644
--- a/sys/vm/vm_mmap.c
+++ b/sys/vm/vm_mmap.c
@@ -940,8 +940,7 @@ retry:
                                        object = current->object.vm_object;
                                        VM_OBJECT_WLOCK(object);
                                }
-                               if (object->type == OBJT_DEFAULT ||
-                                   (object->flags & OBJ_SWAP) != 0 ||
+                               if ((object->flags & OBJ_SWAP) != 0 ||
                                    object->type == OBJT_VNODE) {
                                        pindex = OFF_TO_IDX(current->offset +
                                            (addr - current->start));
@@ -1368,8 +1367,7 @@ vm_mmap_vnode(struct thread *td, vm_size_t objsize,
                        goto done;
                }
        } else {
-               KASSERT(obj->type == OBJT_DEFAULT || obj->type == OBJT_SWAP ||
-                   (obj->flags & OBJ_SWAP) != 0, ("wrong object type"));
+               KASSERT((obj->flags & OBJ_SWAP) != 0, ("wrong object type"));
                vm_object_reference(obj);
 #if VM_NRESERVLEVEL > 0
                if ((obj->flags & OBJ_COLORED) == 0) {
diff --git a/sys/vm/vm_object.c b/sys/vm/vm_object.c
index bb29568ab5e4..7fd82239c13b 100644
--- a/sys/vm/vm_object.c
+++ b/sys/vm/vm_object.c
@@ -414,9 +414,6 @@ vm_object_allocate(objtype_t type, vm_pindex_t size)
        switch (type) {
        case OBJT_DEAD:
                panic("vm_object_allocate: can't create OBJT_DEAD");
-       case OBJT_DEFAULT:
-               flags = OBJ_COLORED;
-               break;
        case OBJT_SWAP:
                flags = OBJ_COLORED | OBJ_SWAP;
                break;
@@ -688,8 +685,7 @@ vm_object_deallocate(vm_object_t object)
                umtx_shm_object_terminated(object);
                temp = object->backing_object;
                if (temp != NULL) {
-                       KASSERT(object->type == OBJT_DEFAULT ||
-                           object->type == OBJT_SWAP,
+                       KASSERT(object->type == OBJT_SWAP,
                            ("shadowed tmpfs v_object 2 %p", object));
                        vm_object_backing_remove(object);
                }
@@ -969,8 +965,7 @@ vm_object_terminate(vm_object_t object)
                vm_reserv_break_all(object);
 #endif
 
-       KASSERT(object->cred == NULL || object->type == OBJT_DEFAULT ||
-           (object->flags & OBJ_SWAP) != 0,
+       KASSERT(object->cred == NULL || (object->flags & OBJ_SWAP) != 0,
            ("%s: non-swap obj %p has cred", __func__, object));
 
        /*
@@ -1306,8 +1301,7 @@ vm_object_madvise_freespace(vm_object_t object, int 
advice, vm_pindex_t pindex,
  *
  *         Deactivate the specified pages if they are resident.
  *
- *     MADV_FREE       (OBJT_DEFAULT/OBJT_SWAP objects,
- *                      OBJ_ONEMAPPING only)
+ *     MADV_FREE       (OBJT_SWAP objects, OBJ_ONEMAPPING only)
  *
  *         Deactivate and clean the specified pages if they are
  *         resident.  This permits the process to reuse the pages
@@ -1529,10 +1523,6 @@ vm_object_split(vm_map_entry_t entry)
        offidxstart = OFF_TO_IDX(entry->offset);
        size = atop(entry->end - entry->start);
 
-       /*
-        * If swap_pager_copy() is later called, it will convert new_object
-        * into a swap object.
-        */
        new_object = vm_object_allocate_anon(size, orig_object,
            orig_object->cred, ptoa(size));
 
diff --git a/sys/vm/vm_page.c b/sys/vm/vm_page.c
index 127406c0d582..cb7ce428db28 100644
--- a/sys/vm/vm_page.c
+++ b/sys/vm/vm_page.c
@@ -2693,8 +2693,7 @@ retry:
                                goto retry;
                        }
                        /* Don't care: PG_NODUMP, PG_ZERO. */
-                       if (object->type != OBJT_DEFAULT &&
-                           (object->flags & OBJ_SWAP) == 0 &&
+                       if ((object->flags & OBJ_SWAP) == 0 &&
                            object->type != OBJT_VNODE) {
                                run_ext = 0;
 #if VM_NRESERVLEVEL > 0
@@ -2831,8 +2830,7 @@ vm_page_reclaim_run(int req_class, int domain, u_long 
npages, vm_page_t m_run,
                        VM_OBJECT_WLOCK(object);
                        /* Don't care: PG_NODUMP, PG_ZERO. */
                        if (m->object != object ||
-                           (object->type != OBJT_DEFAULT &&
-                           (object->flags & OBJ_SWAP) == 0 &&
+                           ((object->flags & OBJ_SWAP) == 0 &&
                            object->type != OBJT_VNODE))
                                error = EINVAL;
                        else if (object->memattr != VM_MEMATTR_DEFAULT)
diff --git a/sys/vm/vm_pageout.c b/sys/vm/vm_pageout.c
index 74439d5884ef..bb12a7e335d5 100644
--- a/sys/vm/vm_pageout.c
+++ b/sys/vm/vm_pageout.c
@@ -896,11 +896,8 @@ free_page:
                        vm_page_free(m);
                        VM_CNT_INC(v_dfree);
                } else if ((object->flags & OBJ_DEAD) == 0) {
-                       if ((object->flags & OBJ_SWAP) == 0 &&
-                           object->type != OBJT_DEFAULT)
-                               pageout_ok = true;
-                       else if (disable_swap_pageouts)
-                               pageout_ok = false;
+                       if ((object->flags & OBJ_SWAP) != 0)
+                               pageout_ok = disable_swap_pageouts == 0;
                        else
                                pageout_ok = true;
                        if (!pageout_ok) {
@@ -1886,8 +1883,7 @@ vm_pageout_oom_pagecount(struct vmspace *vmspace)
                if ((entry->eflags & MAP_ENTRY_NEEDS_COPY) != 0 &&
                    obj->ref_count != 1)
                        continue;
-               if (obj->type == OBJT_DEFAULT || obj->type == OBJT_SWAP ||
-                   obj->type == OBJT_PHYS || obj->type == OBJT_VNODE ||
+               if (obj->type == OBJT_PHYS || obj->type == OBJT_VNODE ||
                    (obj->flags & OBJ_SWAP) != 0)
                        res += obj->resident_page_count;
        }

Reply via email to