Re: SMP detection
- From: Michal Mertl <mime@xxxxxxxxxxxx>
- Date: Thu, 31 Aug 2006 02:06:40 +0200
Skylar Thompson wrote:
Jordi Carrillo wrote:
2006/8/30, backyard <backyard1454-bsd@xxxxxxxxx>:
--- Jordi Carrillo <jordilin@xxxxxxxxx> wrote:
I've read that SMP should be disabled forhttp://lists.freebsd.org/mailman/listinfo/freebsd-questions
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@xxxxxxxxxxx mailing list
To unsubscribe, send any mail to
"freebsd-questions-unsubscribe@xxxxxxxxxxx"
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
_______________________________________________
freebsd-questions@xxxxxxxxxxx mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to "freebsd-questions-unsubscribe@xxxxxxxxxxx"
- Follow-Ups:
- Re: SMP detection
- From: backyard
- Re: SMP detection
- From: Skylar Thompson
- Re: SMP detection
- References:
- SMP detection
- From: Jordi Carrillo
- Re: SMP detection
- From: backyard
- Re: SMP detection
- From: Jordi Carrillo
- Re: SMP detection
- From: Skylar Thompson
- SMP detection
- Prev by Date: Re: Resolved??? Re: Apache 2.2 http accept filter
- Next by Date: Re: SMP detection
- Previous by thread: Re: SMP detection
- Next by thread: Re: SMP detection
- Index(es):
Relevant Pages
|