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

[Xen-devel] Re: two xenfb bugs for sale ;)

To: Markus Armbruster <armbru@xxxxxxxxxx>
Subject: [Xen-devel] Re: two xenfb bugs for sale ;)
From: Gerd Hoffmann <kraxel@xxxxxxx>
Date: Fri, 02 Mar 2007 12:27:08 +0100
Cc: Xen devel list <xen-devel@xxxxxxxxxxxxxxxxxxx>
Delivery-date: Fri, 02 Mar 2007 03:26:08 -0800
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
In-reply-to: <87lkigvghc.fsf@xxxxxxxxxxxxxxxxx>
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>
Organization: SUSE LINUX Products GmbH, GF: Markus Rex, HRB 16746 (AG Nürnberg)
References: <45C9BB19.708@xxxxxxx> <87lkigvghc.fsf@xxxxxxxxxxxxxxxxx>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
User-agent: Thunderbird 1.5.0.9 (X11/20060911)
Markus Armbruster wrote:
> Gerd Hoffmann <kraxel@xxxxxxx> writes:
> 
>>   Hi,
>>
>> Wondered where some xen-vncfb processes handing around on my machine
>> came from.  After some Investigation I've figured that xen-vncfb never
>> ever exits if you boot a virtual machine with a virtual framebuffer
>> configured, but boot a kernel without framebuffer support.  It sits
>> waiting for the frontend device come up and doesn't exit when the domain
>> goes away.
> 
> Patch to be posted shortly.

Great.

>> Oh, and it also doesn't unmap the framebuffer memory once the frontend
>> enteres the "Closing" state.
> 
> You're right, it only unmaps the two shared pages.  The framebuffer is
> normally unmapped in xenfb_detach_dom(), called from xenfb_delete().
> What's wrong with that?

I've played around with guest kexec and the virtual framebuffer.  To be
exact with a kexec-based bootloader, which then can (unlike pygrub)
present the boot menu on the framebuffer.

The new kernel booted will of course use another set of pages for the
virtual framebuffer.  The frontend keeping the old pages mapped doesn't
work.  In the best case you just get a funny looking screen with random
junk in there.  It can also happen that the new kernel wants to use
pages as page tables which used to be framebuffer pages for the old
kernel.  In that case the kernel simply crashes because the page type
verification fails due to the pages still being mapped by the backend.

> Note that we must not unmap the framebuffer
> while it's still being used by LibVNCServer or SDL.

Map a dummy black screen, maybe with "frontend not (re-)connected yet"
rendered on it?

I think it would be very useful for the virtual framebuffer to be able
to go through a disconnect-reconnect cycle, including unmapping and
remapping the virtual framebuffer memory.  Not only for kexec, it could
also be used to switch the framebuffer resolution at runtime using fbset
within the guest.

cheers,
  Gerd

-- 
Gerd Hoffmann <kraxel@xxxxxxx>

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

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