[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] pvgrub2 is merged



On Wed, 18 Dec 2013, Vladimir 'Ï-coder/phcoder' Serbinenko wrote:
> On 17.12.2013 15:35, Fabio Fantoni wrote:
> > Il 17/12/2013 15:10, Fabio Fantoni ha scritto:
> >> Il 17/12/2013 15:08, Vladimir 'Ï-coder/phcoder' Serbinenko ha scritto:
> >>>> Thanks.
> >>>> Now there is another error, probably introduced by xenfb support:
> >>>>
> >>> doesn't look like related to xenfb. Is it 64-bit or PAE guest?
> >>
> >> 64 bit
> > 
> > I did "git reset --hard" to commit "Remove grub_bios_interrupt on
> > coreboot." and then I applied only
> > "grub-core/lib/x86_64/xen/relocator.S: Fix hypercall ABI violation."
> > commit.
> > Now the Sid domU boot correctly, therefore the regression is caused by
> > "xenfb" or "xen grants to v1" commit, should I find the exact commit
> > that causes that problem or these informations are enough for you?
> 
> It's because of vfb. Apparently vfb framebuffer stays mapped as rw even
> after vfb shutdown
> phcoder@debian:15:52:40:~/grub2$ sudo xenstore-ls
> /local/domain/54/device/vfb
> 0 = ""
>  backend = "/local/domain/0/backend/vfb/54/0"
>  backend-id = "0"
>  state = "1"
> phcoder@debian:15:52:51:~/grub2$ sudo xenstore-ls
> /local/domain/0/backend/vfb/54/0
> frontend = "/local/domain/54/device/vfb/0"
> frontend-id = "54"
> online = "1"
> state = "2"
> domain = "grub"
> vnc = "1"
> vnclisten = "127.0.0.1"
> vncdisplay = "0"
> vncunused = "1"
> sdl = "0"
> opengl = "0"
> feature-resize = "1"
> hotplug-status = "connected"
> 
> When I do "dry vfb": do everything except writing vfb state problem
> disappears. So my question would be:
> - how can I inspect how backend maps framebuffer pages?

There is only one xenfb backend: hw/display/xenfb.c in the QEMU source
tree.


> - Why does it map as rw and not ro? It doesn't need to write to framebuffer?

Actually it is mapping it RO, see hw/display/xenfb.c:xenfb_map_fb


> - How do I force it to drop the mapping?

Theoretically QEMU should drop the mapping at disconnect time:

hw/display/xenfb.c:fb_disconnect

    /*
     * FIXME: qemu can't un-init gfx display (yet?).
     *   Replacing the framebuffer with anonymous shared memory
     *   instead.  This releases the guest pages and keeps qemu happy.
     */
    fb->pixels = mmap(fb->pixels, fb->fbpages * XC_PAGE_SIZE,
                      PROT_READ | PROT_WRITE, MAP_SHARED | MAP_ANON,
                      -1, 0);
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.