Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Disabling HyperThreading?

73 views
Skip to first unread message

Hubert Tournier

unread,
Apr 25, 2010, 12:18:12 PM4/25/10
to

Hello (anybody there?),

Is there a way to disable "Hyper-Threading Technology" in modern FreeBSD
systems?

At the time of FreeBSD-SA-05:09.htt, it was suggested to use the following
workaround:

setting the "machdep.hlt_logical_cpus" tunable:
# echo "machdep.hlt_logical_cpus=1" >> /boot/loader.conf
Use of this workaround is not recommended on "dual-core" systems, as this
workaround will also disable one of the processor cores.

But this OID no longer seems to exist and I do not want to disable other
processor cores.

My use case is a VirtualBox dedicated server where I believe using HTT might
be problematic because:
1/ running two busy virtual machines on the same physical core could
severely impact their performance
2/ the virtualizer might expose the real CPU to the virtual machines, which
might in turn attempt to use HTT for themselves

Best regards,

Hubert

For example on a bi-Xeon X5650 FreeBSD 8.0p2 system, the relevant sysctl
OIDs are:


kern.ccpu: 0
<cpu count="24" mask="0xffffff">0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23</cpu>
<cpu count="12" mask="0xfff">0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11</cpu>
<cpu count="2" mask="0x3">0, 1</cpu>
<cpu count="2" mask="0xc">2, 3</cpu>
<cpu count="2" mask="0x30">4, 5</cpu>
<cpu count="2" mask="0xc0">6, 7</cpu>
<cpu count="2" mask="0x300">8, 9</cpu>
<cpu count="2" mask="0xc00">10, 11</cpu>
<cpu count="12" mask="0xfff000">12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
22, 23</cpu>
<cpu count="2" mask="0x3000">12, 13</cpu>
<cpu count="2" mask="0xc000">14, 15</cpu>
<cpu count="2" mask="0x30000">16, 17</cpu>
<cpu count="2" mask="0xc0000">18, 19</cpu>
<cpu count="2" mask="0x300000">20, 21</cpu>
<cpu count="2" mask="0xc00000">22, 23</cpu>
kern.smp.cpus: 24
debug.kdb.stop_cpus: 1
hw.ncpu: 24
machdep.hlt_cpus: 0

Perhaps by playing with the mask?
--
View this message in context: http://old.nabble.com/Disabling-HyperThreading--tp28357071p28357071.html
Sent from the freebsd-smp mailing list archive at Nabble.com.

_______________________________________________
freeb...@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-smp
To unsubscribe, send any mail to "freebsd-smp...@freebsd.org"

oklahoma

unread,
Apr 25, 2010, 12:49:03 PM4/25/10
to
Hubert Tournier wrote:
> Hello (anybody there?),
>
> Is there a way to disable "Hyper-Threading Technology" in modern FreeBSD
> systems?
>
check your bios settings for hyper-threading technology or similar to
disable it
you may check cpuset(1) to assign one virtual machine per cpu, although
i didn't test this.

Hubert Tournier

unread,
Apr 25, 2010, 6:59:29 PM4/25/10
to

Hello,


membrana wrote:


>
> Hubert Tournier wrote:
>> Is there a way to disable "Hyper-Threading Technology" in modern FreeBSD
>> systems?
> check your bios settings for hyper-threading technology or similar to
> disable it
>

I forgot to specify that the system is a remote dedicated server, for which
i have no physical access.

I could rent a virtual KVM in order to try to access its BIOS settings, but
i'm not sure this would work.

Any other software solution?

> you may check cpuset(1) to assign one virtual machine per cpu, although
> i didn't test this.
>

Thank you. I didn't knew that one!

Best regards,

Hubert
--
View this message in context: http://old.nabble.com/Disabling-HyperThreading--tp28357071p28359495.html


Sent from the freebsd-smp mailing list archive at Nabble.com.

_______________________________________________

oklahoma

unread,
Apr 26, 2010, 5:59:19 AM4/26/10
to
Hubert Tournier wrote:
>
> I forgot to specify that the system is a remote dedicated server, for which
> i have no physical access.
>
> I could rent a virtual KVM in order to try to access its BIOS settings, but
> i'm not sure this would work.
>
> Any other software solution?
if the server is dedicated entirely to you, ask your colo support to
disable it for you.
other thing i find was

machdep.hlt_cpus

is suppose to tell the scheduler that there is extra cores but not to use them.
try to enable and see with top is there app that use logical cores.

John Baldwin

unread,
Apr 26, 2010, 9:48:12 AM4/26/10
to
On Monday 26 April 2010 5:59:19 am oklahoma wrote:
> Hubert Tournier wrote:
> >
> > I forgot to specify that the system is a remote dedicated server, for
which
> > i have no physical access.
> >
> > I could rent a virtual KVM in order to try to access its BIOS settings,
but
> > i'm not sure this would work.
> >
> > Any other software solution?
> if the server is dedicated entirely to you, ask your colo support to
> disable it for you.
> other thing i find was
>
> machdep.hlt_cpus
>
> is suppose to tell the scheduler that there is extra cores but not to use
them.
> try to enable and see with top is there app that use logical cores.

You can manually disable any CPU (except for the boot CPU), via
'hint.lapic.X.disabled=1' in loader.conf. You can find the APIC IDs to use in
place of 'X' in dmesg.

--
John Baldwin

0 new messages