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] [PATCH 0/2] MTRR/PAT virtualization

To: "Su, Disheng" <disheng.su@xxxxxxxxx>, <xen-devel@xxxxxxxxxxxxxxxxxxx>
Subject: Re: [Xen-devel] [PATCH 0/2] MTRR/PAT virtualization
From: Keir Fraser <Keir.Fraser@xxxxxxxxxxxx>
Date: Mon, 08 Oct 2007 10:05:25 +0100
Delivery-date: Mon, 08 Oct 2007 02:01:09 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
In-reply-to: <C32FA17F.E879%Keir.Fraser@xxxxxxxxxxxx>
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>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
Thread-index: AcgJfbiHYf5t3raCT5qrRGbrSVAc4gAAyqLhAAJeet0=
Thread-topic: [Xen-devel] [PATCH 0/2] MTRR/PAT virtualization
User-agent: Microsoft-Entourage/11.3.6.070618
A couple of other comments:
 1. I don't see any changes to shadow code to look at the _PAGE_PAT bit;
only _PAGE_PCD and _PAGE_PWT. Is this correct?
 2. Introducing non-WB types for normal RAM is potentially a problem due to
attribute mismatches (E.g., mappings in Xen and mappings in qemu-dm). Do you
disallow non-WB types for RAM, or handle this in some other way? Disallow
would probably work fine except for a few cases like AGP GART.

Given that this is probably only safe for non-RAM pages, and given that
usually such mappings will be UC anyway, is there any advantage to this
large patch except accelerated access to passed-through video framebuffer
access? The current 'collapse all memory types to UC for non-RAM mappings'
is I believe always safe, and video framebuffer access is the only case I
can think of where there would be a performance loss that we might care
about. We could probably fix that with a much smaller patch with a higher
chance of acceptance for 3.2.0.

 -- Keir

On 8/10/07 08:57, "Keir Fraser" <Keir.Fraser@xxxxxxxxxxxx> wrote:

> The second patch is a bit of a hack-and-slash job. New memory-type
> virtualisation code should go in a new file, instead of being put in host
> MTRR management files (which are mostly unmodified from Linux anyway, and
> shouldn't deviate more than necessary). There are various other one-line
> changes in various MTRR source files that are unexplained (e.g., mask
> changes from |0xf00 to |0x7ff). Initialisation of guest MTRR state will need
> to be moved to hvmloader -- we do not call setvcpucontext for HVM guests any
> more, so the current hack won't work with current xen-unstable. Coding style
> needs cleaning up (looks like there is some spaces vs. tabs mixing up going
> on).
> 
>   -- Keir
> 
> On 8/10/07 08:34, "Su, Disheng" <disheng.su@xxxxxxxxx> wrote:
> 
>> Hi,
>> The following 2 patches add basic MTRR/PAT support into
>> hypervisor. When vt-d enabled, direct IO and RAM
>> could be mapped to different cache attribute, such as UC or WC, which
>> will bring some trouble.
>> xen.patch: some data structures of MTRR in xen are exported.
>> mtrr_pat.patch: The basic idea is listed below:
>>           a. MTRR/PAT MSRs are per vcpu. The value of guest MTRR is
>> initialized in host, after guest E820 table is build. The value of guest
>> PAT is initialized as default. The host PAT is initialized to cover all
>> the page attributes.
>>           b. The guest page attribute is virtualized through shadow page
>> attribute. First, get the effective guest page attribute, by calculating
>> from the combination of guest MTRR/PAT. Then the shadow page attribute
>> is calculated from effective guest page attribute and host MTRR. If
>> conflict occurs(e.g effective guest page attribute is WB, host MTRR of
>> this range is UC, can't set this page attribute as guest required), set
>> this range as UC. Some lookup tables are added to accelerate above
>> procedure.
>> 
>> Signed-off-by: Disheng Su <disheng.su@xxxxxxxxx>
>> 
>> Best Regards,
>> Disheng, Su
>> 
>> _______________________________________________
>> Xen-devel mailing list
>> Xen-devel@xxxxxxxxxxxxxxxxxxx
>> http://lists.xensource.com/xen-devel
> 
> 
> 
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@xxxxxxxxxxxxxxxxxxx
> http://lists.xensource.com/xen-devel



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