From owner-freebsd-hackers@FreeBSD.ORG Mon Feb 14 14:45:01 2005 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id D0CD816A4CE for ; Mon, 14 Feb 2005 14:45:01 +0000 (GMT) Received: from comsys.ntu-kpi.kiev.ua (comsys.ntu-kpi.kiev.ua [195.245.194.142]) by mx1.FreeBSD.org (Postfix) with ESMTP id F332B43D2D for ; Mon, 14 Feb 2005 14:44:43 +0000 (GMT) (envelope-from simon@comsys.ntu-kpi.kiev.ua) Received: from pm514-9.comsys.ntu-kpi.kiev.ua (pm514-9.comsys.ntu-kpi.kiev.ua [10.18.54.109]) (authenticated bits=0)j1EEl8l0005879 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Mon, 14 Feb 2005 16:47:09 +0200 (EET) Received: by pm514-9.comsys.ntu-kpi.kiev.ua (Postfix, from userid 1000) id 5B3CD155; Mon, 14 Feb 2005 16:44:15 +0200 (EET) Date: Mon, 14 Feb 2005 16:44:15 +0200 From: Andrey Simonenko To: Ashwin Chandra Message-ID: <20050214144415.GA747@pm514-9.comsys.ntu-kpi.kiev.ua> References: <000c01c5126f$354f81c0$58e243a4@ash> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <000c01c5126f$354f81c0$58e243a4@ash> User-Agent: Mutt/1.4.2.1i X-Spam-Status: No, score=-4.4 required=5.0 tests=ALL_TRUSTED,AWL,BAYES_00 autolearn=ham version=3.0.1 X-Spam-Checker-Version: SpamAssassin 3.0.1 (2004-10-22) on comsys.ntu-kpi.kiev.ua X-Virus-Scanned: ClamAV 0.80/706/Mon Feb 14 02:14:02 2005 clamav-milter version 0.80j on comsys.ntu-kpi.kiev.ua X-Virus-Status: Clean cc: freebsd-hackers@freebsd.org Subject: Re: Kernel Monitor? X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 14 Feb 2005 14:45:01 -0000 On Mon, Feb 14, 2005 at 12:28:47AM -0800, Ashwin Chandra wrote: > FOREACH_PROC_IN_SYSTEM(p) { > mtx_lock(&Giant); > PROC_LOCK(p); > printf("%d %d\n", (int)p->p_stats->p_ru.ru_isrss, (int)p->p_stats->p_ru.ru_idrss); > PROC_UNLOCK(p); > mtx_unlock(&Giant); > } Addition to my previous letter. I'm not sure about Giant, but statclock() is the only one place where ru_isrss and ru_idrss are modified, so I think it should be enough to get sched_lock before fetching ru_isrss and ru_idrss. Also check locks in getrusage().