WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

RE: [Xen-devel] expose MWAIT to dom0

To: "Kevin Tian" <kevin.tian@xxxxxxxxx>
Subject: RE: [Xen-devel] expose MWAIT to dom0
From: "Jan Beulich" <JBeulich@xxxxxxxxxx>
Date: Thu, 25 Aug 2011 13:37:01 +0100
Cc: Yang Z Zhang <yang.z.zhang@xxxxxxxxx>, "xen-devel@xxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxx>, Keir Fraser <keir@xxxxxxx>, Gang Wei <gang.wei@xxxxxxxxx>
Delivery-date: Thu, 25 Aug 2011 05:37:07 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
In-reply-to: <625BA99ED14B2D499DC4E29D8138F15062F09DB9A7@xxxxxxxxxxxxxxxxxxxxxxxxxxxx>
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
References: <4E4D23370200007800051D2C@xxxxxxxxxxxxxxxxxxxx> <625BA99ED14B2D499DC4E29D8138F15062EB8CC157@xxxxxxxxxxxxxxxxxxxxxxxxxxxx> <4E4E369F0200007800051F2A@xxxxxxxxxxxxxxxxxxxx> <625BA99ED14B2D499DC4E29D8138F15062EB8CC533@xxxxxxxxxxxxxxxxxxxxxxxxxxxx> <4E4E49C40200007800051F7B@xxxxxxxxxxxxxxxxxxxx> <625BA99ED14B2D499DC4E29D8138F15062EB8CC5AC@xxxxxxxxxxxxxxxxxxxxxxxxxxxx> <4E4E9707020000780005206C@xxxxxxxxxxxxxxxxxxxx> <625BA99ED14B2D499DC4E29D8138F15062F09DB9A7@xxxxxxxxxxxxxxxxxxxxxxxxxxxx>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
>>> On 21.08.11 at 07:26, "Tian, Kevin" <kevin.tian@xxxxxxxxx> wrote:
>>  From: Jan Beulich [mailto:JBeulich@xxxxxxxxxx] 
>> Sent: Friday, August 19, 2011 11:02 PM
>> > >> Yet another idea - why don't we simply pass the buffer passed to
>> > >> arch_acpi_set_pdc_bits() down to Xen, rather than fiddling with the
>> > >> bits in Dom0? That would at once allow to not set ACPI_PDC_T_FFH
>> > >> (which I don't think Xen really supports at present).
>> > >>
>> > >> Or really, depending on who controls what, the P, C, and T bits should
>> > >> be set by either Dom0 or Xen (so e.g. let Dom0 do what it currently
>> > >> does, and then let Xen override the bits it ought to control).
>> > >
>> > > _PDC is encoded in AML language, and requires an ACPI parser which
>> > > is one thing we avoid in Xen. If Xen want to override those bits, then
>> > > whole ACPI component needs move down to Xen too.
>> >
>> > No, I'm not saying the evaluation should be happening there. Below is
>> > a draft hypervisor patch (only compile tested so far).
>> 
>> Attached a patch that actually works (with a minimal Dom0 addition).
>> 
> 
> yes, this change looks more straightforward. :-)

With that in, we still have more deficiencies compared to native Linux.

For one, we don't use mwait when ACPI doesn't tell us to, while Linux
does (in the intel_idle driver for deeper C-states, and for C1 also via
mwait_idle()). This is likely a bit more work, but it should be possible to
construct C-state information from CPUID leaf 5 (and, if valid, ignore
information passed down from Dom0), which would match intel_idle's
taking precedence over acpi_idle in Linux.

Second, if only C1 gets announced by ACPI, we end up not using it
because Dom0 simply neglects to let the hypervisor know. This is
because acpi_processor_get_power_info_cst() (back to at least
2.6.16) returns -EFAULT if less than two C-states were found. Simply
prefixing the check with "!processor_pm_external() && " fixes this
(but I don't know whether something similar could be done in Jeremy's
tree).

Jan


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel

<Prev in Thread] Current Thread [Next in Thread>