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

Re: [Xen-devel] [Qemu-devel][PATCH] configure: introduce --enable-xen-fb-backend



On Tue, 11 Apr 2017, Oleksandr Andrushchenko wrote:
> From: Oleksandr Andrushchenko <oleksandr_andrushchenko@xxxxxxxx>
> 
> For some use cases when Xen framebuffer/input backend
> is not a part of Qemu it is required to disable it,
> because of conflicting access to input/display devices.
> Introduce additional configuration option for explicit
> input/display control.

In these cases when you don't want xenfb, why don't you just remove
"vfb" from the xl config file? QEMU only starts the xenfb backend when
requested by the toolstack.

Is it because you have an alternative xenfb backend? If so, is it really
fully xenfb compatible, or is it a different protocol? If it is a
different protocol, I suggest you rename your frontend/backend PV device
name to something different from "vfb".


> Signed-off-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@xxxxxxxx>
> ---
>  configure                 | 18 ++++++++++++++++++
>  hw/display/Makefile.objs  |  2 +-
>  hw/xen/xen_backend.c      |  2 ++
>  hw/xenpv/xen_machine_pv.c |  4 ++++
>  4 files changed, 25 insertions(+), 1 deletion(-)
> 
> diff --git a/configure b/configure
> index 476210b1b93f..b805cb908f03 100755
> --- a/configure
> +++ b/configure
> @@ -220,6 +220,7 @@ xen=""
>  xen_ctrl_version=""
>  xen_pv_domain_build="no"
>  xen_pci_passthrough=""
> +xen_fb_backend=""
>  linux_aio=""
>  cap_ng=""
>  attr=""
> @@ -909,6 +910,10 @@ for opt do
>    ;;
>    --enable-xen-pv-domain-build) xen_pv_domain_build="yes"
>    ;;
> +  --disable-xen-fb-backend) xen_fb_backend="no"
> +  ;;
> +  --enable-xen-fb-backend) xen_fb_backend="yes"
> +  ;;
>    --disable-brlapi) brlapi="no"
>    ;;
>    --enable-brlapi) brlapi="yes"
> @@ -1368,6 +1373,7 @@ disabled with --disable-FEATURE, default is enabled if 
> available:
>    virtfs          VirtFS
>    xen             xen backend driver support
>    xen-pci-passthrough
> +  xen-fb-backend  framebuffer/input backend support
>    brlapi          BrlAPI (Braile)
>    curl            curl connectivity
>    fdt             fdt device tree
> @@ -2213,6 +2219,15 @@ if test "$xen_pv_domain_build" = "yes" &&
>              "which requires Xen support."
>  fi
>  
> +if test "$xen_fb_backend" != "no"; then
> +   if test "$xen" = "yes"; then
> +     xen_fb_backend=yes
> +   else
> +     error_exit "User requested feature Xen framebufer backend support" \
> +                " but this feature requires Xen support."
> +   fi
> +fi
> +
>  ##########################################
>  # Sparse probe
>  if test "$sparse" != "no" ; then
> @@ -5444,6 +5459,9 @@ if test "$xen" = "yes" ; then
>    if test "$xen_pv_domain_build" = "yes" ; then
>      echo "CONFIG_XEN_PV_DOMAIN_BUILD=y" >> $config_host_mak
>    fi
> +  if test "$xen_fb_backend" = "yes" ; then
> +    echo "CONFIG_XEN_FB_BACKEND=y" >> $config_host_mak
> +  fi
>  fi
>  if test "$linux_aio" = "yes" ; then
>    echo "CONFIG_LINUX_AIO=y" >> $config_host_mak
> diff --git a/hw/display/Makefile.objs b/hw/display/Makefile.objs
> index 063889beaf4a..f5ec97ed4f48 100644
> --- a/hw/display/Makefile.objs
> +++ b/hw/display/Makefile.objs
> @@ -5,7 +5,7 @@ common-obj-$(CONFIG_JAZZ_LED) += jazz_led.o
>  common-obj-$(CONFIG_PL110) += pl110.o
>  common-obj-$(CONFIG_SSD0303) += ssd0303.o
>  common-obj-$(CONFIG_SSD0323) += ssd0323.o
> -common-obj-$(CONFIG_XEN_BACKEND) += xenfb.o
> +common-obj-$(CONFIG_XEN_FB_BACKEND) += xenfb.o
>  
>  common-obj-$(CONFIG_VGA_PCI) += vga-pci.o
>  common-obj-$(CONFIG_VGA_ISA) += vga-isa.o
> diff --git a/hw/xen/xen_backend.c b/hw/xen/xen_backend.c
> index d1190041ae12..5146cbba6ca5 100644
> --- a/hw/xen/xen_backend.c
> +++ b/hw/xen/xen_backend.c
> @@ -582,7 +582,9 @@ void xen_be_register_common(void)
>      xen_set_dynamic_sysbus();
>  
>      xen_be_register("console", &xen_console_ops);
> +#ifdef CONFIG_XEN_FB_BACKEND
>      xen_be_register("vkbd", &xen_kbdmouse_ops);
> +#endif
>      xen_be_register("qdisk", &xen_blkdev_ops);
>  #ifdef CONFIG_USB_LIBUSB
>      xen_be_register("qusb", &xen_usb_ops);
> diff --git a/hw/xenpv/xen_machine_pv.c b/hw/xenpv/xen_machine_pv.c
> index 79aef4ecc37b..b731344c3f0a 100644
> --- a/hw/xenpv/xen_machine_pv.c
> +++ b/hw/xenpv/xen_machine_pv.c
> @@ -68,7 +68,9 @@ static void xen_init_pv(MachineState *machine)
>      }
>  
>      xen_be_register_common();
> +#ifdef CONFIG_XEN_FB_BACKEND
>      xen_be_register("vfb", &xen_framebuffer_ops);
> +#endif
>      xen_be_register("qnic", &xen_netdev_ops);
>  
>      /* configure framebuffer */
> @@ -95,8 +97,10 @@ static void xen_init_pv(MachineState *machine)
>      /* config cleanup hook */
>      atexit(xen_config_cleanup);
>  
> +#ifdef CONFIG_XEN_FB_BACKEND
>      /* setup framebuffer */
>      xen_init_display(xen_domid);
> +#endif
>  }
>  
>  static void xenpv_machine_init(MachineClass *mc)
> -- 
> 2.7.4
> 

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
https://lists.xen.org/xen-devel

 


Rackspace

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