Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 28 Jan 2006 22:12:52 -0800
From:      Nate Lawson <nate@root.org>
To:        Kris Kennaway <kris@obsecurity.org>
Cc:        cvs-src@FreeBSD.org, Nate Lawson <njl@FreeBSD.org>, src-committers@FreeBSD.org, cvs-all@FreeBSD.org
Subject:   Re: cvs commit: src/etc/defaults rc.conf
Message-ID:  <43DC5CE4.3070002@root.org>
In-Reply-To: <20060129060654.GA47495@xor.obsecurity.org>
References:  <200601290551.k0T5pwEC028440@repoman.freebsd.org> <20060129060654.GA47495@xor.obsecurity.org>

next in thread | previous in thread | raw e-mail | index | archive | help
Kris Kennaway wrote:
> On Sun, Jan 29, 2006 at 05:51:58AM +0000, Nate Lawson wrote:
> 
>>njl         2006-01-29 05:51:58 UTC
>>
>>  FreeBSD src repository
>>
>>  Modified files:
>>    etc/defaults         rc.conf 
>>  Log:
>>  Enable the lowest Cx state by default.  This will save power and we have
>>  had enough testing of acpi_cpu to know this is stable now.
> 
> 
> On my desktop system (running RELENG_6 though), setting
> hw.acpi.cpu.cx_lowest=C0 causes atrocious performance.  Is it broken
> in 6.x?

Uh, C0 is not a real C-state.  C1 is the lowest actual one (it's the HLT 
instruction on x86).  What's probably happening is the idle thread is 
spinning instead of HLTing and the time to switch in your active thread 
is slow.

This is from acpi(4):
hw.acpi.cpu.cx_lowest
      Lowest Cx state to use for idling the CPU.  A scheduling algo-
      rithm will select states between C1 and this setting as system
      load dictates.  To enable ACPI CPU idling control,
      machdep.cpu_idle_hlt must be set to 1.

So see if setting machdep.cpu_idle_hlt=0 causes the same problem.  I'll 
also add a check to disallow setting it to C0 and tell the root user to 
use sysctl machdep.cpu_idle_hlt instead.

-- 
Nate



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?43DC5CE4.3070002>