Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 21 Apr 2008 12:43:42 -1000 (HST)
From:      Jeff Roberson <jroberson@jroberson.net>
To:        Andrew Gallatin <gallatin@cs.duke.edu>
Cc:        arch@freebsd.org
Subject:   Re: monitor/mwait support for idle
Message-ID:  <20080421124258.M942@desktop>
In-Reply-To: <18444.62681.319881.638165@grasshopper.cs.duke.edu>
References:  <20080419004911.R942@desktop> <18444.62681.319881.638165@grasshopper.cs.duke.edu>

next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, 21 Apr 2008, Andrew Gallatin wrote:

>
> Jeff Roberson writes:
> > http://people.freebsd.org/~jeff/mwait.diff
> >
> > This patch implements support for the x86/amd64 monitor and mwait
> > instructions in the idle loop.  This also implements idle loop selection
> > via a sysctl string.  The following loops are supported, in
> > decreasing order of performance and power consumption:
> >
> > spin      - Simply returns
> > mwait     - Always use mwait to sleep.  CPU enters C0 or C1 depending on
> >              how busy it is.
> > mwait_hlt - Use mwait when busy but fall back to hlt/acpi when not.
> > hlt       - pure hlt loop
> > acpi      - uses acpi_cpu_idle if available and hlt if not.  This is the
> > default.
> >
>
> Something which may be a bit confusing is that machines like recent
> Core2 Xeons will go into C1E when hlt is executed, depending on an MSR
> setting that most BIOSes enable (bit 25, MSR 0x1a0).  I think C1E
> might be a deeper sleep than what is reached by mwait.  I confess that
> I don't know much about C1E, other than it kills network io intensive
> performance, and I turn off this (mis)feature whenever I can.
>
> It will be interesting to see how much mwait helps.  I'm sure it will
> save power over my current workaround of disabling hlt altogether :)

I don't have any useful measurements for power.  For performance I see as 
much as 10-15% in some workloads.  This is due to both latency and cpu 
time reduction in wakeup heavy workloads that also idle a lot.

Jeff

>
> Drew
>



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