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] 32-on-64: pvfb issue

To: Keir Fraser <keir@xxxxxxxxxxxxx>
Subject: Re: [Xen-devel] 32-on-64: pvfb issue
From: Gerd Hoffmann <kraxel@xxxxxxx>
Date: Fri, 19 Jan 2007 12:43:15 +0100
Cc: Xen devel list <xen-devel@xxxxxxxxxxxxxxxxxxx>, Markus Armbruster <armbru@xxxxxxxxxx>
Delivery-date: Fri, 19 Jan 2007 03:42:49 -0800
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
In-reply-to: <C1D657C3.7DFE%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: <C1D657C3.7DFE%keir@xxxxxxxxxxxxx>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
User-agent: Thunderbird 1.5.0.9 (X11/20060911)
Keir Fraser wrote:
> 
> 
> On 19/1/07 09:54, "Gerd Hoffmann" <kraxel@xxxxxxx> wrote:
> 
>>> Make tools
>>> write a default value for pv guests for backward compat.
>> Here is a one-line fix to make the pvfb frontend clear the shared page.
>>  Can this go into both 3.0.4 and unstable please?
> 
> How about a patch to clear the page *and* write a newly-defined protocol
> field? Or are you still planning to kludge the bitwidth check in the
> backend?

That is better, yes.  Minimum patch attached.  For unstable I'll brew a
nicer version with defines and so on when adjusting the backend code to
be able to deal with both protocols.

cheers,
  Gerd

-- 
Gerd Hoffmann <kraxel@xxxxxxx>
---
 linux-2.6-xen-sparse/drivers/xen/fbfront/xenfb.c |    8 +++++++-
 xen/include/public/io/fbif.h                     |    5 +++++
 2 files changed, 12 insertions(+), 1 deletion(-)

Index: build-32-unstable-13495/linux-2.6-xen-sparse/drivers/xen/fbfront/xenfb.c
===================================================================
--- 
build-32-unstable-13495.orig/linux-2.6-xen-sparse/drivers/xen/fbfront/xenfb.c
+++ build-32-unstable-13495/linux-2.6-xen-sparse/drivers/xen/fbfront/xenfb.c
@@ -479,7 +479,7 @@ static int __devinit xenfb_probe(struct 
                goto error_nomem;
 
        /* set up shared page */
-       info->page = (void *)__get_free_page(GFP_KERNEL);
+       info->page = (void *)__get_free_page(GFP_KERNEL | __GFP_ZERO);
        if (!info->page)
                goto error_nomem;
 
@@ -600,6 +600,12 @@ static void xenfb_init_shared_page(struc
        for (i = 0; i < info->nr_pages; i++)
                info->mfns[i] = vmalloc_to_mfn(info->fb + i * PAGE_SIZE);
 
+#if defined(__i386__)
+       info->page->protocol = 1;
+#elif defined(__x86_64__) || defined(__ia64__)
+       info->page->protocol = 2;
+#endif
+
        info->page->pd[0] = vmalloc_to_mfn(info->mfns);
        info->page->pd[1] = 0;
        info->page->width = XENFB_WIDTH;
Index: build-32-unstable-13495/xen/include/public/io/fbif.h
===================================================================
--- build-32-unstable-13495.orig/xen/include/public/io/fbif.h
+++ build-32-unstable-13495/xen/include/public/io/fbif.h
@@ -102,6 +102,11 @@ struct xenfb_page
     uint32_t line_length;   /* the length of a row of pixels (in bytes) */
     uint32_t mem_length;    /* the length of the framebuffer (in bytes) */
     uint8_t depth;          /* the depth of a pixel (in bits) */
+    uint8_t protocol;       /* protocol version
+                             *    1 -- page directory: i386
+                             *    2 -- page directory: x86_64, ia64
+                             *    3 -- grant tables [not yet]
+                             */
 
     /*
      * Framebuffer page directory
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel