From owner-p4-projects@FreeBSD.ORG Mon Jan 30 07:48:44 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 473D916A423; Mon, 30 Jan 2006 07:48:44 +0000 (GMT) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id F3BE116A420 for ; Mon, 30 Jan 2006 07:48:43 +0000 (GMT) (envelope-from alc@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id BEE3143D45 for ; Mon, 30 Jan 2006 07:48:43 +0000 (GMT) (envelope-from alc@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k0U7mhfw061608 for ; Mon, 30 Jan 2006 07:48:43 GMT (envelope-from alc@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k0U7mhEN061605 for perforce@freebsd.org; Mon, 30 Jan 2006 07:48:43 GMT (envelope-from alc@freebsd.org) Date: Mon, 30 Jan 2006 07:48:43 GMT Message-Id: <200601300748.k0U7mhEN061605@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to alc@freebsd.org using -f From: Alan Cox To: Perforce Change Reviews Cc: Subject: PERFORCE change 90670 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 30 Jan 2006 07:48:45 -0000 http://perforce.freebsd.org/chv.cgi?CH=90670 Change 90670 by alc@alc_home on 2006/01/30 07:48:35 Add a sysctl for displaying the cache queue. Affected files ... .. //depot/projects/superpages/src/sys/vm/vm_buddy.c#12 edit Differences ... ==== //depot/projects/superpages/src/sys/vm/vm_buddy.c#12 (text+ko) ==== @@ -53,6 +53,11 @@ SYSCTL_OID(_vm, OID_AUTO, buddy, CTLTYPE_STRING | CTLFLAG_RD, NULL, 0, sysctl_vm_buddy, "A", "Buddy Info"); +static int sysctl_vm_cacheq(SYSCTL_HANDLER_ARGS); + +SYSCTL_OID(_vm, OID_AUTO, cacheq, CTLTYPE_STRING | CTLFLAG_RD, + NULL, 0, sysctl_vm_cacheq, "A", "Cache Queue Info"); + static __inline void buddyq_insert(int baseq, int q, vm_page_t m); static __inline void buddyq_remove(vm_page_t m); static __inline void buddyq_split(vm_page_t m, int q, int Q); @@ -87,6 +92,31 @@ /* * */ +static int +sysctl_vm_cacheq(SYSCTL_HANDLER_ARGS) +{ + struct sbuf sbuf; + char *cbuf; + const int cbufsize = (BUDDY_QUEUES + 1)*81; + int error, q; + + cbuf = malloc(cbufsize, M_TEMP, M_WAITOK | M_ZERO); + sbuf_new(&sbuf, cbuf, cbufsize, SBUF_FIXEDLEN); + sbuf_printf(&sbuf, "\nORDER SIZE NUMBER\n\n"); + for (q = BUDDY_QUEUES - 1; q >= 0; q--) + sbuf_printf(&sbuf, "%5.5d: %6.6dK, %6.6d\n", q, + 1 << (PAGE_SHIFT - 10 + q), + vm_page_queues[PQ_CACHE + q].lcnt); + sbuf_finish(&sbuf); + error = SYSCTL_OUT(req, sbuf_data(&sbuf), sbuf_len(&sbuf)); + sbuf_delete(&sbuf); + free(cbuf, M_TEMP); + return (error); +} + +/* + * + */ static __inline void buddyq_insert(int baseq, int q, vm_page_t m) {