SMP detection

backyard backyard1454-bsd at yahoo.com
Wed Aug 30 22:13:33 UTC 2006



--- Jordi Carrillo <jordilin at gmail.com> wrote:

> 2006/8/30, backyard <backyard1454-bsd at yahoo.com>:
> >
> >
> >
> > --- Jordi Carrillo <jordilin at gmail.com> 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 at freebsd.org mailing list
> > >
> >
>
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
> > > To unsubscribe, send any mail to
> > > "freebsd-questions-unsubscribe at 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.
> -- 

machdep.hyperthreading_allowed=1 in loader.conf

from my reading on the web...

is the variable you should probably be setting, the
other variable will disable cpu's on the system or
limit how many are used. It does not turn on HT. Linux
does not have an option like this to disable HT, I
believe it must be passed to the kernel at boot and I
don't know what the exact switch is but the Linux
community is not as concerned with the potential
exploit as the *BSD community is and so they let HTs
run under their SMP kernel.

50% is running idle, this is pretty normal, At least
on the systems I've seen when it is building the
system. You have to remember most of compiling is
reading code and libraries then putting it together
and back on the hard drive. Compiling is I/O intensive
more then CPU intensive. If you set 

MAKEOPTS="-j5" 

in make.conf you will compile quicker use more cpu
power, but it will maybe spike around 80%.

usually this is set by 2X CPU_CORES +1 but it makes my
dual p3 550Mhz Xeon build a system with the
quickness... You maybe able to get away with "-j9" as
my little formula might be based on Linux more then
BSD and I know generally BSD allows for more make
processes to be going at once. maybe 4x CPU_CORE +1 is
more in order. Experiment until your loaded as high as
you want to, but its nice to have Gnome/KDE going
while you're building a system and watching a movie;
so having 50% to play with isn't a bad thing...

-brian


More information about the freebsd-questions mailing list