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

Re: [Xen-devel] frame buffer shared by domains on arch arm linux



Please don't use HTML in emails.

On Fri, 23 Jan 2015, Mao Mingy wrote:
> On 22/01/2015 19:56, Stefano Stabellini wrote:
> 
> On Thu, 22 Jan 2015, Mao Mingy wrote:
> 
> On 21/01/2015 18:51, Stefano Stabellini wrote:
> 
> On Wed, 21 Jan 2015, Mao Mingy wrote:
> 
> I am trying to run the PVHVM guest on omap5 (arm arch) so that I can get
> the
> frame buffer shared by Domains. my setup are:
> 1. run xen4.5 after the u-boot.
> 2. start the dom0 (on linux kernel 3.12) on xen.
> 
> 3.12 is pretty old now
> 
> 
> 3. run the qemu (from xen 4.5) and HVM backend on xen.
> 
> Is this the QEMU binary that gets compiled as part of the Xen 4.5 build
> and started automatically by xl if you configure the VM with a
> framebuffer?
> 
> Yes. it's compiled from Xen 4.5. exact location @ "
> ./xen_4.5/dist/install/usr/local/lib/xen/bin/qemu-system-i386 "
> 
> 4. run the guest domain as "Machine: Dummy Virtual Machine, model:
> XENVM-4.5"
> 5. try to build a frame buffer on guest domain by
>      CONFIG_XEN_FBDEV_FRONTEND = y
>      CONFIG_FB_VIRTUAL=y
> 
> after change to domain checking in the first list of xenfb_init(...) in
> xen-fbfront.c from
>      if (!xen_pv_domain()) --->    if (!xen_domain())
> the /dev/fb0 is built up on guest domain. However, writing to this fb has
> no
> response from screen.
> 
> Why xenfb_init limited to PV domain only?
> 
> No it is not. In fact if you use a more recent Linux kernel, you won't
> need to make any modifications and it should work out of the box.
> 
> Thanks. Check the latest kernel source. it's already modified to if
> (!xen_domain())
> 
> Is the PVHVM mode supported by xen4.5 and linux3.12?
> 
> We don't call "PVHVM" guests on ARM: on ARM we only have one type of
> guest. From the Linux kernel perspective, they are HVM domains.
> 
> 
> Looks at the xen.h at the linux kernel source:
> enum xen_domain_type {
>      XEN_NATIVE,        /* running on bare hardware    */
>      XEN_PV_DOMAIN,        /* running in a PV domain      */
>      XEN_HVM_DOMAIN,        /* running in a Xen hvm domain */
> };
> seems PVHVM is not there yet?
> 
> In this context PVHVM would just be XEN_PV_DOMAIN.
> 
> 
> Kindly enlighten me what could be the solution to get the frame buffer
> shared
> by Domains?
> 
> It should work out of the box with the latest Linux kernel and Xen 4.5,
> if you add
> 
> vfb=['vnc=1']
> 
> to the VM config file.
> 
> Unfortunately, It's still no work after add the vfb=[ 'vnc=1' ]. fb
> open/write/ioctl/close from guest
> linux user space program return no error. However, just the screen do NOT
> display the contents wrote to vfb.
> Here is the configuration file when create the guest linux
> 
> kernel = "/xen/images/zImage"
> memory = "128"
> name = "omap5"
> bootargs = "mem=128M vram=16M xencons=hvc"
> vcpus = 1
> extra ="console=hvc0 xencons=hvc root=/dev/xvda ro"
> 
> You might want to use console=tty0 if you want to see the kernel output on 
> the framebuffer.
> 
> Thanks. I got the kernel trace output for my guest Linux.
> 
> disk = [ 'phy:/dev/loop0,xvda,w' ]
> vfb=['vnc=1']
> 
> Kindly advise what could be the reason?
> 
> Do you have
> 
> CONFIG_XEN_FBDEV_FRONTEND=y
> CONFIG_INPUT_XEN_KBDDEV_FRONTEND=y
> CONFIG_FRAMEBUFFER_CONSOLE=y
> 
> in your guest kernel config?
> 
> Could you please post the output of xenstore-ls, executing the command
> after creating the VM?
> 
> Yes. The CONFIG_XXX mentioned above is in my guest kernel config. I've 
> attached the related CONFIG_XXX of
> the guest Linux.
> 
> Unfortunately, it's not an option for me to go for latest Linux kernel right 
> now, so I debugged the
> problem by adding tracing information into the kernel and qemu source code to 
> trace the issue.
> On guest Linux, when writing to frame buffer, the call path is
> xenfb_write()
> ÂÂÂ xenfb_refresh()
> ÂÂÂ ÂÂÂ xenfb_do_update() <---- here the XENFB_TYPE_UPDATE event is sent out.
> 
> However, in the QEMU size on Dom0, There is NO XENFB_TYPE_UPDATE event is 
> observed in
> xenfb_handle_events() of xenfb.c
> 
> Shoud the XENFB_TYPE_UPDATE event sent by guest Linux reach the QEMU and 
> processed and write to real
> hardware by QEMU?
> If so. why it's not received? any point to check?
> 
> So far, I checked the following two points
> 1. QEMU's start up parameter, changed the original from Xen4.5
> /usr/local/lib/xen/bin/qemu-system-i386 -xen-domid 0 -xen-attach -name dom0 
> -nographic -M xenpv
> -daemonize -monitor /dev/null -serial /dev/null -parallel /dev/null -pidfile 
> /var/run/qemu-dom0.pid
> to
> /usr/local/lib/xen/bin/qemu-system-i386 -xen-domid 0 -xen-attach -name dom0 
> -vga xenfb -M xenpv
> -daemonize -monitor /dev/null -serial /dev/null -parallel /dev/null -pidfile 
> /var/run/qemu-dom0.pid
> but it does NOT make any different for this aspect.
> 
> 2. The return value of xen_be_register("vfb", &xen_framebuffer_ops) of 
> xen_machine_pv.c of the QEMU
> it's checked and return 0. Looks not a problem

As a matter of fact the output of xenstore-ls that you posted looks
good: everything seems to be up and running.
_______________________________________________
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®.