From: Gerd Hoffmann <kraxel@suse.de>
To: Markus Armbruster <armbru@redhat.com>
Cc: Xen devel list <xen-devel@lists.xensource.com>
Subject: Re: two xenfb bugs for sale ;)
Date: Fri, 02 Mar 2007 12:27:08 +0100 [thread overview]
Message-ID: <45E80A0C.30703@suse.de> (raw)
In-Reply-To: <87lkigvghc.fsf@pike.pond.sub.org>
Markus Armbruster wrote:
> Gerd Hoffmann <kraxel@suse.de> 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@suse.de>
prev parent reply other threads:[~2007-03-02 11:27 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-02-07 11:42 two xenfb bugs for sale ;) Gerd Hoffmann
2007-03-01 20:47 ` Markus Armbruster
2007-03-02 11:27 ` Gerd Hoffmann [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=45E80A0C.30703@suse.de \
--to=kraxel@suse.de \
--cc=armbru@redhat.com \
--cc=xen-devel@lists.xensource.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.