From owner-svn-src-head@freebsd.org Mon Dec 25 19:36:06 2017 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 17ED3EA227E; Mon, 25 Dec 2017 19:36:06 +0000 (UTC) (envelope-from alc@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 mx1.freebsd.org (Postfix) with ESMTPS id D97D57012B; Mon, 25 Dec 2017 19:36:05 +0000 (UTC) (envelope-from alc@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id vBPJa4TN049938; Mon, 25 Dec 2017 19:36:04 GMT (envelope-from alc@FreeBSD.org) Received: (from alc@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id vBPJa4qY049937; Mon, 25 Dec 2017 19:36:04 GMT (envelope-from alc@FreeBSD.org) Message-Id: <201712251936.vBPJa4qY049937@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: alc set sender to alc@FreeBSD.org using -f From: Alan Cox Date: Mon, 25 Dec 2017 19:36:04 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r327179 - head/sys/vm X-SVN-Group: head X-SVN-Commit-Author: alc X-SVN-Commit-Paths: head/sys/vm X-SVN-Commit-Revision: 327179 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 25 Dec 2017 19:36:06 -0000 Author: alc Date: Mon Dec 25 19:36:04 2017 New Revision: 327179 URL: https://svnweb.freebsd.org/changeset/base/327179 Log: Make the vm object bypass and collapse counters per CPU. Requested by: mjg Reviewed by: kib, markj MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D13611 Modified: head/sys/vm/vm_object.c Modified: head/sys/vm/vm_object.c ============================================================================== --- head/sys/vm/vm_object.c Mon Dec 25 19:08:39 2017 (r327178) +++ head/sys/vm/vm_object.c Mon Dec 25 19:36:04 2017 (r327179) @@ -148,14 +148,25 @@ struct vm_object kernel_object_store; static SYSCTL_NODE(_vm_stats, OID_AUTO, object, CTLFLAG_RD, 0, "VM object stats"); -static long object_collapses; -SYSCTL_LONG(_vm_stats_object, OID_AUTO, collapses, CTLFLAG_RD, - &object_collapses, 0, "VM object collapses"); +static counter_u64_t object_collapses = EARLY_COUNTER; +SYSCTL_COUNTER_U64(_vm_stats_object, OID_AUTO, collapses, CTLFLAG_RD, + &object_collapses, + "VM object collapses"); -static long object_bypasses; -SYSCTL_LONG(_vm_stats_object, OID_AUTO, bypasses, CTLFLAG_RD, - &object_bypasses, 0, "VM object bypasses"); +static counter_u64_t object_bypasses = EARLY_COUNTER; +SYSCTL_COUNTER_U64(_vm_stats_object, OID_AUTO, bypasses, CTLFLAG_RD, + &object_bypasses, + "VM object bypasses"); +static void +counter_startup(void) +{ + + object_collapses = counter_u64_alloc(M_WAITOK); + object_bypasses = counter_u64_alloc(M_WAITOK); +} +SYSINIT(object_counters, SI_SUB_CPU, SI_ORDER_ANY, counter_startup, NULL); + static uma_zone_t obj_zone; static int vm_object_zinit(void *mem, int size, int flags); @@ -1875,7 +1886,7 @@ vm_object_collapse(vm_object_t object) vm_object_destroy(backing_object); vm_object_pip_wakeup(object); - object_collapses++; + counter_u64_add(object_collapses, 1); } else { /* * If we do not entirely shadow the backing object, @@ -1916,7 +1927,7 @@ vm_object_collapse(vm_object_t object) */ backing_object->ref_count--; VM_OBJECT_WUNLOCK(backing_object); - object_bypasses++; + counter_u64_add(object_bypasses, 1); } /*