From owner-freebsd-current@FreeBSD.ORG Mon Sep 27 21:09:22 2010 Return-Path: Delivered-To: current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id B4410106566C; Mon, 27 Sep 2010 21:09:22 +0000 (UTC) (envelope-from seanbru@yahoo-inc.com) Received: from mrout3.yahoo.com (mrout3.yahoo.com [216.145.54.173]) by mx1.freebsd.org (Postfix) with ESMTP id 7C9338FC16; Mon, 27 Sep 2010 21:09:22 +0000 (UTC) Received: from [127.0.0.1] (proxy8.corp.yahoo.com [216.145.48.13]) by mrout3.yahoo.com (8.13.8/8.13.8/y.out) with ESMTP id o8RL8pOn081696; Mon, 27 Sep 2010 14:08:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=yahoo-inc.com; s=cobra; t=1285621731; bh=SvRfQxBqrdO0/mkyAoiPp+Cfu4fzgQfD0UBgW97Wc9k=; h=Subject:From:To:Cc:In-Reply-To:References:Content-Type:Date: Message-ID:Mime-Version:Content-Transfer-Encoding; b=jl6Q/W9E7tcu2Z/sVhug+dARTmQDg5ycsyZT4P+D1mbRRKhSNTTs0gbxGix6OHRIB m7srJkeQ6B/CnION2X1IeYy8dBQK/He9ayDd+nwPxvc/VLdjtC8RBJCbOqX4TDd2KA 7XKT0oipFXOqDWOLifk27CbdT+iZQci1N2W8qRbw= From: Sean Bruno To: Attilio Rao In-Reply-To: References: <1285601161.7245.7.camel@home-yahoo> <4CA0BE08.50408@freebsd.org> <1285604516.7245.16.camel@home-yahoo> Content-Type: text/plain; charset="UTF-8" Date: Mon, 27 Sep 2010 14:08:51 -0700 Message-ID: <1285621731.7245.167.camel@home-yahoo> Mime-Version: 1.0 X-Mailer: Evolution 2.28.3 (2.28.3-1.fc12) Content-Transfer-Encoding: 7bit X-Mailman-Approved-At: Mon, 27 Sep 2010 21:25:49 +0000 Cc: "sbruno@freebsd.org" , "current@freebsd.org" Subject: Re: MAXCPU preparations X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 27 Sep 2010 21:09:22 -0000 On Mon, 2010-09-27 at 12:41 -0500, Attilio Rao wrote: > 2010/9/27 Sean Bruno : > > On Mon, 2010-09-27 at 08:53 -0700, Julian Elischer wrote: > >> On 9/27/10 8:26 AM, Sean Bruno wrote: > >> > Does this look like an appropriate modification to libmemstat? > >> > > >> > Sean > >> > > >> > > >> > ==== //depot/yahoo/ybsd_7/src/lib/libmemstat/memstat.h#4 > >> > - /home/seanbru/ybsd_7/src/lib/libmemstat/memstat.h ==== > >> > @@ -28,12 +28,13 @@ > >> > > >> > #ifndef _MEMSTAT_H_ > >> > #define _MEMSTAT_H_ > >> > +#include > >> > > >> > /* > >> > * Number of CPU slots in library-internal data structures. This > >> > should be > >> > * at least the value of MAXCPU from param.h. > >> > */ > >> > -#define MEMSTAT_MAXCPU 64 > >> > +#define MEMSTAT_MAXCPU MAXCPU /* defined in > >> > sys/${ARCH}/include/param.h */ > >> > > >> > >> > >> wouldn't it be better to do a sysctlbyname() and use the real value > >> for the system? > >> > > > > That was my initial thought (as prodded by scottl and peter). > > > > If it is made dynamic, could this be opening a race condition where the > > call to sysctlbyname() returns a count of CPUS that is in turn changed > > by the offlining of a CPU? Or am I thinking to much about this? > > We still can't support CPU hotplugging so the easy answer is 'don't > bother about variadic CPUs number'. > I don't really know what libmemstat is willing to do with that macro > (and I don't have time to look at it now) maybe you could shade a > light about what's its usage? Does it really needs to know MAXCPUS or > just wants a large enough value to fill anything? > > Thanks, > Attilio > > Give or take, MEMSTAT_MAXCPU is used to allocate an array of per cpu stats (see lib/libmemstat/memstat_internal.h::struct memory_type). If the number of probed CPUs is more that this value, the library returns an error. Sean