Index: vm_map.c =================================================================== --- vm_map.c +++ vm_map.c @@ -2186,7 +2186,17 @@ VM_MAP_ASSERT_LOCKED(map); KASSERT(entry->end > start && entry->start < start, ("_vm_map_clip_start: invalid clip of entry %p", entry)); - vm_map_simplify_entry(map, entry); + if ((entry->eflags & MAP_ENTRY_NOMERGE_MASK) == 0 && + (vm_map_mergeable_neighbors(entry->prev, entry) || + vm_map_mergeable_neighbors(entry, entry->next))) { + printf("%s: simplifying entry start %jx end %jx next_read %jx " + "max_free %jx eflags %jx object-type %d\n", __func__, + (uintmax_t)entry->start, (uintmax_t)entry->end, + (uintmax_t)entry->next_read, (uintmax_t)entry->max_free, + (uintmax_t)entry->eflags, + entry->object.vm_object ? entry->object.vm_object->type : -1); + vm_map_simplify_entry(map, entry); + } /* * Create a backing object now, if none exists, so that more individual