From owner-svn-src-stable-12@freebsd.org Mon Jun 15 03:02:20 2020 Return-Path: Delivered-To: svn-src-stable-12@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id D350C34CD2E; Mon, 15 Jun 2020 03:02:20 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 49lbj85Dfkz40np; Mon, 15 Jun 2020 03:02:20 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id AED0A17007; Mon, 15 Jun 2020 03:02:20 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 05F32KAI068470; Mon, 15 Jun 2020 03:02:20 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 05F32JoI068465; Mon, 15 Jun 2020 03:02:19 GMT (envelope-from markj@FreeBSD.org) Message-Id: <202006150302.05F32JoI068465@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Mon, 15 Jun 2020 03:02:19 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r362188 - in stable/12/sys: compat/linux vm X-SVN-Group: stable-12 X-SVN-Commit-Author: markj X-SVN-Commit-Paths: in stable/12/sys: compat/linux vm X-SVN-Commit-Revision: 362188 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable-12@freebsd.org X-Mailman-Version: 2.1.33 Precedence: list List-Id: SVN commit messages for only the 12-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 15 Jun 2020 03:02:20 -0000 Author: markj Date: Mon Jun 15 03:02:19 2020 New Revision: 362188 URL: https://svnweb.freebsd.org/changeset/base/362188 Log: Revert r362187, it contained some unintended changes. This is a direct commit to stable/12. Modified: stable/12/sys/compat/linux/linux_misc.c stable/12/sys/vm/vm_map.c stable/12/sys/vm/vm_map.h stable/12/sys/vm/vm_mmap.c stable/12/sys/vm/vm_unix.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/compat/linux/linux_misc.c ============================================================================== --- stable/12/sys/compat/linux/linux_misc.c Mon Jun 15 03:01:28 2020 (r362187) +++ stable/12/sys/compat/linux/linux_misc.c Mon Jun 15 03:02:19 2020 (r362188) @@ -78,6 +78,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #ifdef COMPAT_LINUX32 @@ -149,6 +150,7 @@ int linux_sysinfo(struct thread *td, struct linux_sysinfo_args *args) { struct l_sysinfo sysinfo; + vm_object_t object; int i, j; struct timespec ts; @@ -166,13 +168,14 @@ linux_sysinfo(struct thread *td, struct linux_sysinfo_ sysinfo.totalram = physmem * PAGE_SIZE; sysinfo.freeram = sysinfo.totalram - vm_wire_count() * PAGE_SIZE; - /* - * sharedram counts pages allocated to named, swap-backed objects such - * as shared memory segments and tmpfs files. There is no cheap way to - * compute this, so just leave the field unpopulated. Linux itself only - * started setting this field in the 3.x timeframe. - */ sysinfo.sharedram = 0; + mtx_lock(&vm_object_list_mtx); + TAILQ_FOREACH(object, &vm_object_list, object_list) + if (object->shadow_count > 1) + sysinfo.sharedram += object->resident_page_count; + mtx_unlock(&vm_object_list_mtx); + + sysinfo.sharedram *= PAGE_SIZE; sysinfo.bufferram = 0; swap_pager_status(&i, &j); Modified: stable/12/sys/vm/vm_map.c ============================================================================== --- stable/12/sys/vm/vm_map.c Mon Jun 15 03:01:28 2020 (r362187) +++ stable/12/sys/vm/vm_map.c Mon Jun 15 03:02:19 2020 (r362188) @@ -3097,7 +3097,7 @@ vm_map_wire_locked(vm_map_t map, vm_offset_t start, vm u_long npages; u_int last_timestamp; int rv; - boolean_t need_wakeup, result, user_wire, user_wire_limit; + boolean_t need_wakeup, result, user_wire; vm_prot_t prot; VM_MAP_ASSERT_LOCKED(map); @@ -3108,7 +3108,6 @@ vm_map_wire_locked(vm_map_t map, vm_offset_t start, vm if (flags & VM_MAP_WIRE_WRITE) prot |= VM_PROT_WRITE; user_wire = (flags & VM_MAP_WIRE_USER) ? TRUE : FALSE; - user_wire_limit = (flags & VM_MAP_WIRE_USER_LIMIT) ? TRUE : FALSE; VM_MAP_RANGE_CHECK(map, start, end); if (!vm_map_lookup_entry(map, start, &first_entry)) { if (flags & VM_MAP_WIRE_HOLESOK) @@ -3189,8 +3188,7 @@ vm_map_wire_locked(vm_map_t map, vm_offset_t start, vm entry->wired_count++; npages = atop(entry->end - entry->start); - if (user_wire_limit && - !vm_map_wire_user_count_add(npages)) { + if (user_wire && !vm_map_wire_user_count_add(npages)) { vm_map_wire_entry_failure(map, entry, entry->start); end = entry->end; @@ -3252,7 +3250,7 @@ vm_map_wire_locked(vm_map_t map, vm_offset_t start, vm last_timestamp = map->timestamp; if (rv != KERN_SUCCESS) { vm_map_wire_entry_failure(map, entry, faddr); - if (user_wire_limit) + if (user_wire) vm_map_wire_user_count_sub(npages); end = entry->end; goto done; @@ -3321,7 +3319,7 @@ done: */ if (entry->wired_count == 1) { vm_map_entry_unwire(map, entry); - if (user_wire_limit) + if (user_wire) vm_map_wire_user_count_sub( atop(entry->end - entry->start)); } else @@ -4457,8 +4455,7 @@ retry: if (rv == KERN_SUCCESS && (map->flags & MAP_WIREFUTURE) != 0) { rv = vm_map_wire_locked(map, grow_start, grow_start + grow_amount, - VM_MAP_WIRE_USER | VM_MAP_WIRE_USER_LIMIT | - VM_MAP_WIRE_NOHOLES); + VM_MAP_WIRE_USER | VM_MAP_WIRE_NOHOLES); } vm_map_lock_downgrade(map); Modified: stable/12/sys/vm/vm_map.h ============================================================================== --- stable/12/sys/vm/vm_map.h Mon Jun 15 03:01:28 2020 (r362187) +++ stable/12/sys/vm/vm_map.h Mon Jun 15 03:02:19 2020 (r362188) @@ -397,8 +397,6 @@ long vmspace_resident_count(struct vmspace *vmspace); #define VM_MAP_WIRE_WRITE 4 /* Validate writable. */ -#define VM_MAP_WIRE_USER_LIMIT 8 /* Enfore the user wiring limit */ - #ifdef _KERNEL boolean_t vm_map_check_protection (vm_map_t, vm_offset_t, vm_offset_t, vm_prot_t); vm_map_t vm_map_create(pmap_t, vm_offset_t, vm_offset_t); Modified: stable/12/sys/vm/vm_mmap.c ============================================================================== --- stable/12/sys/vm/vm_mmap.c Mon Jun 15 03:01:28 2020 (r362187) +++ stable/12/sys/vm/vm_mmap.c Mon Jun 15 03:02:19 2020 (r362188) @@ -1046,7 +1046,7 @@ kern_mlock(struct proc *proc, struct ucred *cred, uint } #endif error = vm_map_wire(map, start, end, - VM_MAP_WIRE_USER | VM_MAP_WIRE_USER_LIMIT | VM_MAP_WIRE_NOHOLES); + VM_MAP_WIRE_USER | VM_MAP_WIRE_NOHOLES); #ifdef RACCT if (racct_enable && error != KERN_SUCCESS) { PROC_LOCK(proc); @@ -1111,8 +1111,7 @@ sys_mlockall(struct thread *td, struct mlockall_args * * calling vm_fault_wire() for each page in the region. */ error = vm_map_wire(map, vm_map_min(map), vm_map_max(map), - VM_MAP_WIRE_USER | VM_MAP_WIRE_USER_LIMIT | - VM_MAP_WIRE_HOLESOK); + VM_MAP_WIRE_USER|VM_MAP_WIRE_HOLESOK); if (error == KERN_SUCCESS) error = 0; else if (error == KERN_RESOURCE_SHORTAGE) @@ -1590,7 +1589,6 @@ vm_mmap_object(vm_map_t map, vm_offset_t *addr, vm_siz if ((map->flags & MAP_WIREFUTURE) != 0) (void)vm_map_wire_locked(map, *addr, *addr + size, VM_MAP_WIRE_USER | - VM_MAP_WIRE_USER_LIMIT | ((flags & MAP_STACK) ? VM_MAP_WIRE_HOLESOK : VM_MAP_WIRE_NOHOLES)); vm_map_unlock(map); Modified: stable/12/sys/vm/vm_unix.c ============================================================================== --- stable/12/sys/vm/vm_unix.c Mon Jun 15 03:01:28 2020 (r362187) +++ stable/12/sys/vm/vm_unix.c Mon Jun 15 03:02:19 2020 (r362188) @@ -185,8 +185,7 @@ kern_break(struct thread *td, uintptr_t *addr) 0); if (rv == KERN_SUCCESS && (map->flags & MAP_WIREFUTURE) != 0) { rv = vm_map_wire_locked(map, old, new, - VM_MAP_WIRE_USER | VM_MAP_WIRE_USER_LIMIT | - VM_MAP_WIRE_NOHOLES); + VM_MAP_WIRE_USER | VM_MAP_WIRE_NOHOLES); if (rv != KERN_SUCCESS) vm_map_delete(map, old, new); }