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] early_cpu_init() and identify_cpu()

To: <xen-devel@xxxxxxxxxxxxxxxxxxx>,"Keir Fraser" <keir@xxxxxxxxxxxxx>
Subject: Re: [Xen-devel] early_cpu_init() and identify_cpu()
From: "Jan Beulich" <jbeulich@xxxxxxxxxx>
Date: Mon, 16 Jul 2007 07:14:45 +0100
Delivery-date: Sun, 15 Jul 2007 23:11:23 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
In-reply-to: <C2BD6653.126CC%keir@xxxxxxxxxxxxx>
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/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
References: <4697C16D.76E4.0078.0@xxxxxxxxxx> <C2BD6653.126CC%keir@xxxxxxxxxxxxx>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
>>> Keir Fraser <keir@xxxxxxxxxxxxx> 13.07.07 18:26 >>>
>On 13/7/07 17:16, "Jan Beulich" <jbeulich@xxxxxxxxxx> wrote:
>
>> Is there any reason (other than having things inherited this way from Linux)
>> that
>> we cannot call identify_cpu() for the boot CPU at the end of early_cpu_init()
>> rather than explicitly from __start_xen()? And if not, it would seem
>> reasonable
>> to me to at once move the two CR4 twiddling pieces out of __start_xen, too.
>> 
>> (I'm not asking because I want to beautify the code, but because I want the
>> identify to happen earlier, namely I want to fully set up the VESA console as
>> early as possible, but there I'd like to be able to set MTRRs, which in turn
>> depends on identify_cpu() having executed.
>
>Isn't it a fairly safe bet that the BIOS will have done this for us and, if
>not, that the penalty is a performance loss (probably using WB or UC instead
>of WC) rather than a correctness issue? And hence, if we bother to update
>the MTRRs at all, then it can at least be left until later in the boot?

I've never seen a BIOS set the frame buffer to WC (or anything other than
uncachable), presumably not the least because the address space may get
laid out anew by the OS. And the performance loss in our case is quite
significant (though I assume WC would at best help a little, I'm considering
other approaches, too): Scrolling a 1280x1024x16 screen takes, on the test
system I'm primarily trying this out on, on the order of a second. This is
because we will want to not disturb what dom0 may have written to the
screen, and hence we can't simply redraw. And I'm not certain I want to
special case boot time here (although I may have no other option - delay
in that order can easily lead to other failures [like CPUs not properly coming
up]).

Of course, I could make the two stage vesafb initialization as it is right now
a three stage one, doing just the MTRR request in the last. But I wanted to
avoid making the code more spaghetti like than necessary just because of
this little feature...

Jan


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