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

Re: [Xen-devel][RFC] Dynamic modes support for PV xenfb (included)

Pat Campbell <plc@xxxxxxxxxx> writes:

> Markus Armbruster wrote:
>> The current PVFB code shares the framebuffer as follows.  The
>> framebuffer is described by a two level directory.  The first level is
>> the page directory pd[] in the shared page.  pd[] contains the mfns of
>> the second level directory pages.  Those form an array containing the
>> mfns of the framebuffer.
>> Your patch replaces both levels of the page directory by grants, but
>> not the framebuffer itself.  What exactly does that buy us?
> Patch does not replace the pd array.  That is still being used to
> maintain backwards compatibility.  The required framebuffer memory is
> allocated in xenfb_probe() and is never reallocated or changed.  Only
> the mapping to the framebuffer is changed.
> Maybe some pseudo code this will make it clearer.
> Frontend (FE)
>    Determine framebuffer size
>    Allocate framebuffer 
>    Fill in array of mfns
>    Set shared page info to default mem length, width and height
>    Fill in grant refs using array of mfns
>    Back end Connected?
>         Send map extended event (uses grant ref)
>    Map extended done event?
>         Free grant refs
> Backend  (BE)
>    Calculate number of mfns based on mem length from shared  page
>    Map in and point at framebuffer
>    Map extended event?
>          Map in using grant ref
>          Change framebuffer pointer to the new location
>                 (still the same FE memory but now we can reach father
> into it) 
>          Send Map extended done
> At this point the Backend is still treating the framebuffer as
> 800x600x32 but does has access to the extended framebuffer memory but
> does not use it.  When a resize event occurs the screen geometry changes
> but not the framebuffers mappings.


> So to answer what it buys us.  It buys us access to a larger framebuffer
> for higher resolutions support.

I can't see how using grants for the page directory is an improvement
over your previous iteration, which used pd[].  Can you explain?

Xen-devel mailing list



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