From owner-freebsd-current@FreeBSD.ORG Thu May 29 16:53:56 2014 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 3B8852E3; Thu, 29 May 2014 16:53:56 +0000 (UTC) Received: from mail-qg0-x231.google.com (mail-qg0-x231.google.com [IPv6:2607:f8b0:400d:c04::231]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id BDF292E46; Thu, 29 May 2014 16:53:55 +0000 (UTC) Received: by mail-qg0-f49.google.com with SMTP id a108so1773730qge.36 for ; Thu, 29 May 2014 09:53:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:date:message-id:subject :from:to:cc:content-type; bh=RdKFMTZkf1uEaItYVfWbNTt4VPZVpC176nvo2SY2IoY=; b=DlnIQpWeUaryrEZR1TCp7KLntim8TvaubJ91XdXgqUNisF038kytlmeECoVxWxnpKM FReNMd2PIAHKf9MfWecAiyQVimDFy3b6Z9AZxi4GQvwo3SWJAu6A9fh/q39Y+E7kabOV mW2g7ou5hJwgzlStp/r9MARyUDC2YNkjscmlZHYoPu+fgKzgy40KcwKDyEHWVua3Twnp XJQ56g1ULeIJr6DKz03oQSl36IMmATX0l00K3nGz65AjqKDXJMHQS40QZaLqTQCizXig FNkz3t7dTMHTEft+c885j2YWHrqtpuo3OygLbQln2UKuOJhTxFXEZmuwmbQ9AkSuEqS1 nPIw== MIME-Version: 1.0 X-Received: by 10.224.37.10 with SMTP id v10mr11932705qad.98.1401382434965; Thu, 29 May 2014 09:53:54 -0700 (PDT) Sender: adrian.chadd@gmail.com Received: by 10.224.191.201 with HTTP; Thu, 29 May 2014 09:53:54 -0700 (PDT) In-Reply-To: <201405281358.35924.jhb@freebsd.org> References: <20140524014713.GF13462@carrick-users.bishnet.net> <201405280956.27800.jhb@freebsd.org> <201405281358.35924.jhb@freebsd.org> Date: Thu, 29 May 2014 09:53:54 -0700 X-Google-Sender-Auth: YfQM9m-HCG67s_1QyNA1ddaWIUQ Message-ID: Subject: Re: Processor cores not properly detected/activated? From: Adrian Chadd To: John Baldwin Content-Type: text/plain; charset=UTF-8 Cc: Attilio Rao , freebsd-current , Jia-Shiun Li , Alan Somers , Tim Bishop X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.18 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: Thu, 29 May 2014 16:53:56 -0000 On 28 May 2014 10:58, John Baldwin wrote: > On Wednesday, May 28, 2014 1:51:28 pm Adrian Chadd wrote: >> On 28 May 2014 06:56, John Baldwin wrote: >> >> >> > Userland cpusets only default to 128 (CPU_MAXSIZE in ). >> > Changing MAXCPU to even 128 is unfortunately a potential KBI change since it >> > changes the size of 'cpuset_t'. We can certainly bump these in HEAD for 11, >> > but we might not be able to MFC them without introducing ABI breakage. >> > (The cpuset APIs do allow the size of cpuset_t to change as the size is >> > encoded in the API calls, so there is that, it's more that if some public >> > structure embeds a cpuset_t in the kernel that we would have problems. I >> > thought 'struct pcpu' did, but it does not.) >> > >> > Hmm, smp_rendezvous() accepts a cpuset_t as its first argument (and is a >> > public symbol used by kernel modules such as dtrace). 'struct rmlock' also >> > embeds a cpuset_t. So, I think we can't bump cpuset_t without breaking >> > the KBI. We can bump it in HEAD however. (Note, if re@ signed off, we could >> > perhaps merge to 10, but we tend to be very hesitant about breaking the KBI.) >> > One thing we could do safely is bump the userland cpuset size to 256 in 10. >> > It's really only MAXCPU that is problematic. >> > >> > In particular, I propose we bump the userland cpuset_t size to 256 now (and >> > go ahead and merge that to 10). In HEAD only we can bump MAXCPU for amd64 >> > to 256. >> >> Since 11 is going to be around for a few years, can we experiment >> bumping it up to something compute-cluster-computer-sized just to get >> it over with? Something stupid, like 4096 or something? > > It costs wired memory to increase it for the kernel. The userland set size > can be increased rather arbitrarily, so we don't need to make it but so large > as it is easy to bump later (even with a branch). Well, what about making the API/KBI use cpuset_t pointers for things rather than including it as a bitmask? Do you think there'd be a noticable performance overhead for the bits where it's indirecting through a pointer to get to the bitmask data? -a