From owner-freebsd-questions@FreeBSD.ORG Thu Aug 31 00:06:52 2006 Return-Path: X-Original-To: freebsd-questions@freebsd.org Delivered-To: freebsd-questions@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 7C95016A4DA for ; Thu, 31 Aug 2006 00:06:52 +0000 (UTC) (envelope-from mime@traveller.cz) Received: from ss.eunet.cz (ss.eunet.cz [193.85.228.13]) by mx1.FreeBSD.org (Postfix) with ESMTP id 93D8943D46 for ; Thu, 31 Aug 2006 00:06:51 +0000 (GMT) (envelope-from mime@traveller.cz) Received: from localhost.i.cz (ss.eunet.cz [193.85.228.13]) by ss.eunet.cz (8.13.6/8.13.6) with ESMTP id k7V06gkj029384 (version=TLSv1/SSLv3 cipher=RC4-MD5 bits=128 verify=NO); Thu, 31 Aug 2006 02:06:42 +0200 (CEST) (envelope-from mime@traveller.cz) From: Michal Mertl To: skylar@cs.earlham.edu In-Reply-To: <44F6036E.7050203@cs.earlham.edu> References: <94ff3700608301020l34251166nbdb4d72842e1bb86@mail.gmail.com> <20060830181240.65785.qmail@web83106.mail.mud.yahoo.com> <94ff3700608301302n13f9aabcs935fbe6403601d30@mail.gmail.com> <44F6036E.7050203@cs.earlham.edu> Content-Type: text/plain Date: Thu, 31 Aug 2006 02:06:40 +0200 Message-Id: <1156982800.1017.37.camel@genius.i.cz> Mime-Version: 1.0 X-Mailer: Evolution 2.6.3 FreeBSD GNOME Team Port Content-Transfer-Encoding: 7bit Cc: backyard1454-bsd@yahoo.com, Jordi Carrillo , freebsd-questions@freebsd.org Subject: Re: SMP detection X-BeenThere: freebsd-questions@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: User questions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 31 Aug 2006 00:06:52 -0000 Skylar Thompson wrote: > Jordi Carrillo wrote: > > 2006/8/30, backyard : > >> > >> > >> > >> --- Jordi Carrillo wrote: > >> > >> > I've read that SMP should be disabled for > >> > performance issues (I did not know > >> > that before installing freebsd). I have a P4 3GHz > >> > with hyperthreading > >> > technology. I have the SMP-GENERIC kernel and it > >> > only launches one cpu. So, > >> > I've decided to disable SMP from BIOS. Is that ok?, > >> > knowing that I have a > >> > Smp enabled kernel? or should I install one without > >> > smp? If so, is there a > >> > way to install one already precompiled? > >> > Thanks in advance > >> > > >> > -- > >> > http://jordilin.wordpress.com > >> > _______________________________________________ > >> > freebsd-questions@freebsd.org mailing list > >> > > >> http://lists.freebsd.org/mailman/listinfo/freebsd-questions > >> > To unsubscribe, send any mail to > >> > "freebsd-questions-unsubscribe@freebsd.org" > >> > > >> > >> if the system runs with one cpu now and you don't > >> enable smp with HT with the sysctl variable then you > >> should be ok. If your not doing SMP then recompiling > >> the kernel for single processor mode will make things > >> run a little quicker because the SMP code won't come > >> into play. > >> > >> with HT disabling in FreeBSD is more for the security > >> issues about a potential exploit whereby one process > >> in one pipe can access the priveledged information of > >> a process in another pipe because the two cores share > >> one processor cache and thus one cache table. To my > >> knowledge this hasn't been exploited yet. > >> > >> If you just install the generic kernel you it should > >> be only the uniprocessor one. I would just do a: > >> > >> cd /usr/src && make buildworld && make > >> KERNCONF=GENERIC buildkernel && make KERNCONF=GENERIC > >> installkernel > >> > >> as opposed to a binary version assuming you haven't > >> updated yet you won't have to install world but I > >> believe it must have the build in the source tree to > >> build a kernel. On your P4 though the difference > >> between SMP and uniproc may not be worth the trouble > >> because I don't think much of a gain would be made. on > >> a P1 a much different story... > >> > >> if you aren't concerned with bad users or hackers > >> hitting the box I would just enable HT with the sysctl > >> variable. This will not make things run slower at all, > >> just (in theory) less secure, which is why the > >> veriable was created in the first place as I recall. > >> If you are concerned I would wait until you update > >> your system and then just build a GENERIC/CUSTOM > >> kernel without the SMP option set. > >> > >> > >> -brian > >> > > > > > > I will disable smp from bios. If I have a smp kernel, I suppose there > > will > > be no problem after all. Would that be ok? > > The problem with having SMP enabled is that the smp kernel only > > detects one > > cpu and the system monitor only features one cpu as well as gkrellm (in > > Linux it shows two cpus). When compiling the system monitor shows the > > cpu at > > a maximum of 50%, so what's going on with the other 50%? > > writing machdep.hlt_logical_cpus to 2 in loader.conf does not solve > > anything. > I believe FreeBSD uses the other logical CPU to handle hardware > interrupts, which can still help perormance. You can check dmesg to see > how it's actually handling it. No! Kernel threads (e.g. handling interrupts) aren't that much different to normal processes. Logical CPUs on a single HTT capable CPU share most of the CPU logic, especially all the external stuff (handling interrupts). Scheduling handling of interrupts on the "secondary/logical" core wouldn't probably help performance at all (if that is at all possible). When FreeBSD sees logical CPUs it means HTT is either enabled in BIOS or that disabling HTT in BIOS does not hide the CPUs to FreeBSD (bug in BIOS/FreeBSD). Until you enable scheduler to schedule tasks to HTT cores (with machdep.hyperthreading_allowed=1 in loader.conf) (disabled by default due to mentioned security/performance reasons) machine won't utilize the logical HTT CPUs. Therefore total CPU utilization won't be more than 50%, because there are the (unused) logical CPUs which don't get scheduled tasks. As far as know - trying to use HTT normally hurts performance and only a very special load on a machine can show increase in overall performance. Newer Intel CPUs have better HTT (probably meaning less sharing of stuff among the HTT cores - towards current trend - multi-core) and there "they say" it performs quite good with real world load to handle the logical cores as separate CPUs. Of course (if you built purpose built appliance) you can squeeze more from the HW when you exactly know what you need to do - you have some task(s) which do the data analysis and kernel threads which do the interrupt processing/data shifting) - than effectively using HTT might be possible (I have never heard of anyone effectively using HTT). Newest Intel CPUs don't bother with HTT - they are multicore - close to "nothing is shared among (logical) CPUs". You would see each of these CPUs as a CPU in FreeBSD and they will get scheduled tasks to finish. Michal