linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Oleksandr Andrushchenko <andr2000@gmail.com>
To: Juergen Gross <jgross@suse.com>,
	xen-devel@lists.xenproject.org, linux-kernel@vger.kernel.org,
	dri-devel@lists.freedesktop.org, airlied@linux.ie,
	daniel.vetter@intel.com, seanpaul@chromium.org,
	gustavo@padovan.org, boris.ostrovsky@oracle.com,
	konrad.wilk@oracle.com
Cc: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
Subject: Re: [PATCH 1/9] drm/xen-front: Introduce Xen para-virtualized frontend driver
Date: Wed, 21 Feb 2018 11:11:05 +0200	[thread overview]
Message-ID: <95653e33-b0a0-e061-ba9e-35552b5a8037@gmail.com> (raw)
In-Reply-To: <4b20fcdd-2618-71a8-d94e-37c802973a02@suse.com>

On 02/21/2018 11:09 AM, Juergen Gross wrote:
> On 21/02/18 09:47, Oleksandr Andrushchenko wrote:
>> On 02/21/2018 10:19 AM, Juergen Gross wrote:
>>> On 21/02/18 09:03, Oleksandr Andrushchenko wrote:
>>>> From: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
>>>>
>>>> Introduce skeleton of the para-virtualized Xen display
>>>> frontend driver. This patch only adds required
>>>> essential stubs.
>>>>
>>>> Signed-off-by: Oleksandr Andrushchenko
>>>> <oleksandr_andrushchenko@epam.com>
>>>> ---
>>>>    drivers/gpu/drm/Kconfig             |  2 +
>>>>    drivers/gpu/drm/Makefile            |  1 +
>>>>    drivers/gpu/drm/xen/Kconfig         | 17 ++++++++
>>>>    drivers/gpu/drm/xen/Makefile        |  5 +++
>>>>    drivers/gpu/drm/xen/xen_drm_front.c | 83
>>>> +++++++++++++++++++++++++++++++++++++
>>>>    5 files changed, 108 insertions(+)
>>>>    create mode 100644 drivers/gpu/drm/xen/Kconfig
>>>>    create mode 100644 drivers/gpu/drm/xen/Makefile
>>>>    create mode 100644 drivers/gpu/drm/xen/xen_drm_front.c
>>>>
>>>> diff --git a/drivers/gpu/drm/Kconfig b/drivers/gpu/drm/Kconfig
>>>> index deeefa7a1773..757825ac60df 100644
>>>> --- a/drivers/gpu/drm/Kconfig
>>>> +++ b/drivers/gpu/drm/Kconfig
>>>> @@ -289,6 +289,8 @@ source "drivers/gpu/drm/pl111/Kconfig"
>>>>      source "drivers/gpu/drm/tve200/Kconfig"
>>>>    +source "drivers/gpu/drm/xen/Kconfig"
>>>> +
>>>>    # Keep legacy drivers last
>>>>      menuconfig DRM_LEGACY
>>>> diff --git a/drivers/gpu/drm/Makefile b/drivers/gpu/drm/Makefile
>>>> index 50093ff4479b..9d66657ea117 100644
>>>> --- a/drivers/gpu/drm/Makefile
>>>> +++ b/drivers/gpu/drm/Makefile
>>>> @@ -103,3 +103,4 @@ obj-$(CONFIG_DRM_MXSFB)    += mxsfb/
>>>>    obj-$(CONFIG_DRM_TINYDRM) += tinydrm/
>>>>    obj-$(CONFIG_DRM_PL111) += pl111/
>>>>    obj-$(CONFIG_DRM_TVE200) += tve200/
>>>> +obj-$(CONFIG_DRM_XEN) += xen/
>>>> diff --git a/drivers/gpu/drm/xen/Kconfig b/drivers/gpu/drm/xen/Kconfig
>>>> new file mode 100644
>>>> index 000000000000..4cca160782ab
>>>> --- /dev/null
>>>> +++ b/drivers/gpu/drm/xen/Kconfig
>>>> @@ -0,0 +1,17 @@
>>>> +config DRM_XEN
>>>> +    bool "DRM Support for Xen guest OS"
>>>> +    depends on XEN
>>>> +    help
>>>> +      Choose this option if you want to enable DRM support
>>>> +      for Xen.
>>>> +
>>>> +config DRM_XEN_FRONTEND
>>>> +    tristate "Para-virtualized frontend driver for Xen guest OS"
>>>> +    depends on DRM_XEN
>>>> +    depends on DRM
>>>> +    select DRM_KMS_HELPER
>>>> +    select VIDEOMODE_HELPERS
>>>> +    select XEN_XENBUS_FRONTEND
>>>> +    help
>>>> +      Choose this option if you want to enable a para-virtualized
>>>> +      frontend DRM/KMS driver for Xen guest OSes.
>>>> diff --git a/drivers/gpu/drm/xen/Makefile b/drivers/gpu/drm/xen/Makefile
>>>> new file mode 100644
>>>> index 000000000000..967074d348f6
>>>> --- /dev/null
>>>> +++ b/drivers/gpu/drm/xen/Makefile
>>>> @@ -0,0 +1,5 @@
>>>> +# SPDX-License-Identifier: GPL-2.0
>>>> +
>>>> +drm_xen_front-objs := xen_drm_front.o
>>>> +
>>>> +obj-$(CONFIG_DRM_XEN_FRONTEND) += drm_xen_front.o
>>>> diff --git a/drivers/gpu/drm/xen/xen_drm_front.c
>>>> b/drivers/gpu/drm/xen/xen_drm_front.c
>>>> new file mode 100644
>>>> index 000000000000..fd372fb464a1
>>>> --- /dev/null
>>>> +++ b/drivers/gpu/drm/xen/xen_drm_front.c
>>>> @@ -0,0 +1,83 @@
>>>> +/*
>>>> + *  Xen para-virtual DRM device
>>>> + *
>>>> + *   This program is free software; you can redistribute it and/or
>>>> modify
>>>> + *   it under the terms of the GNU General Public License as
>>>> published by
>>>> + *   the Free Software Foundation; either version 2 of the License, or
>>>> + *   (at your option) any later version.
>>>> + *
>>>> + *   This program is distributed in the hope that it will be useful,
>>>> + *   but WITHOUT ANY WARRANTY; without even the implied warranty of
>>>> + *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
>>>> + *   GNU General Public License for more details.
>>> Use SPDX identifier instead (same applies for all other new
>>> sources):
>>>
>>> // SPDX-License-Identifier: GPL-2.0
>> Will update, thank you
>>>> + *
>>>> + * Copyright (C) 2016-2018 EPAM Systems Inc.
>>>> + *
>>>> + * Author: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
>>>> + */
>>>> +
>>>> +#include <drm/drmP.h>
>>>> +
>>>> +#include <xen/platform_pci.h>
>>>> +#include <xen/xen.h>
>>>> +#include <xen/xenbus.h>
>>>> +
>>>> +#include <xen/interface/io/displif.h>
>>>> +
>>>> +static void backend_on_changed(struct xenbus_device *xb_dev,
>>>> +        enum xenbus_state backend_state)
>>>> +{
>>>> +}
>>>> +
>>>> +static int xen_drv_probe(struct xenbus_device *xb_dev,
>>>> +        const struct xenbus_device_id *id)
>>>> +{
>>>> +    return 0;
>>>> +}
>>>> +
>>>> +static int xen_drv_remove(struct xenbus_device *dev)
>>>> +{
>>>> +    return 0;
>>>> +}
>>>> +
>>>> +static const struct xenbus_device_id xen_drv_ids[] = {
>>>> +    { XENDISPL_DRIVER_NAME },
>>>> +    { "" }
>>>> +};
>>>> +
>>>> +static struct xenbus_driver xen_driver = {
>>>> +    .ids = xen_drv_ids,
>>>> +    .probe = xen_drv_probe,
>>>> +    .remove = xen_drv_remove,
>>>> +    .otherend_changed = backend_on_changed,
>>>> +};
>>>> +
>>>> +static int __init xen_drv_init(void)
>>>> +{
>>>> +    if (!xen_domain())
>>>> +        return -ENODEV;
>>>> +
>>>> +    if (xen_initial_domain()) {
>>>> +        DRM_ERROR(XENDISPL_DRIVER_NAME " cannot run in initial
>>>> domain\n");
>>>> +        return -ENODEV;
>>>> +    }
>>> Why not? Wouldn't that be possible in case of the backend living in a
>>> driver domain?
>> It is possible (and in my use-case backend indeed runs in
>> a driver domain). I was just not sure if it is really a
>> good idea to allow that. If you think this is ok, then
>> I'll remove this check
> I don't think the driver should decide that. This would be the job of
> Xen tools IMO.
Agree, will remove
>
> Juergen

  reply	other threads:[~2018-02-21  9:11 UTC|newest]

Thread overview: 63+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-02-21  8:03 [PATCH 0/9] drm/xen-front: Add support for Xen PV display frontend Oleksandr Andrushchenko
2018-02-21  8:03 ` [PATCH 1/9] drm/xen-front: Introduce Xen para-virtualized frontend driver Oleksandr Andrushchenko
2018-02-21  8:19   ` Juergen Gross
2018-02-21  8:47     ` Oleksandr Andrushchenko
2018-02-21  9:09       ` Juergen Gross
2018-02-21  9:11         ` Oleksandr Andrushchenko [this message]
2018-02-21  9:17   ` [Xen-devel] " Roger Pau Monné
2018-02-21  9:42     ` Oleksandr Andrushchenko
2018-02-21 10:19       ` Roger Pau Monné
2018-02-21 10:25         ` Oleksandr Andrushchenko
2018-02-22 22:23   ` Boris Ostrovsky
2018-02-23  6:37     ` Oleksandr Andrushchenko
2018-02-23 14:39       ` Boris Ostrovsky
2018-02-23 14:51         ` Oleksandr Andrushchenko
2018-02-21  8:03 ` [PATCH 2/9] drm/xen-front: Implement Xen bus state handling Oleksandr Andrushchenko
2018-02-21  8:23   ` Juergen Gross
2018-02-21  8:50     ` Oleksandr Andrushchenko
2018-02-21  8:03 ` [PATCH 3/9] drm/xen-front: Read driver configuration from Xen store Oleksandr Andrushchenko
2018-02-22 23:20   ` Boris Ostrovsky
2018-02-23  6:46     ` Oleksandr Andrushchenko
2018-02-21  8:03 ` [PATCH 4/9] drm/xen-front: Implement Xen event channel handling Oleksandr Andrushchenko
2018-02-22 23:50   ` Boris Ostrovsky
2018-02-23  7:00     ` Oleksandr Andrushchenko
2018-02-23 14:44       ` Boris Ostrovsky
2018-02-23 14:49         ` Oleksandr Andrushchenko
2018-02-21  8:03 ` [PATCH 5/9] drm/xen-front: Implement handling of shared display buffers Oleksandr Andrushchenko
2018-02-23  0:25   ` Boris Ostrovsky
2018-02-23  7:53     ` Oleksandr Andrushchenko
2018-02-23 14:36       ` Boris Ostrovsky
2018-02-23 14:45         ` Oleksandr Andrushchenko
2018-02-21  8:03 ` [PATCH 6/9] drm/xen-front: Introduce DRM/KMS virtual display driver Oleksandr Andrushchenko
2018-02-23 15:12   ` Boris Ostrovsky
2018-02-23 15:19     ` Oleksandr Andrushchenko
2018-03-05  9:13   ` Daniel Vetter
2018-03-05  9:19     ` Oleksandr Andrushchenko
2018-02-21  8:03 ` [PATCH 7/9] drm/xen-front: Implement KMS/connector handling Oleksandr Andrushchenko
2018-03-05  9:23   ` Daniel Vetter
2018-03-05 12:59     ` Oleksandr Andrushchenko
2018-03-06  7:22       ` Daniel Vetter
2018-03-06  7:29         ` Oleksandr Andrushchenko
2018-02-21  8:03 ` [PATCH 8/9] drm/xen-front: Implement GEM operations Oleksandr Andrushchenko
2018-02-23 15:26   ` Boris Ostrovsky
2018-02-23 15:35     ` Oleksandr Andrushchenko
2018-02-26 23:47       ` Boris Ostrovsky
2018-02-27  6:52         ` Oleksandr Andrushchenko
2018-02-28 19:46           ` Boris Ostrovsky
2018-02-28 19:52             ` Oleksandr Andrushchenko
2018-03-05  9:32   ` Daniel Vetter
2018-03-05 13:46     ` Oleksandr Andrushchenko
2018-03-06  7:26       ` Daniel Vetter
2018-03-06  7:43         ` Oleksandr Andrushchenko
2018-02-21  8:03 ` [PATCH 9/9] drm/xen-front: Implement communication with backend Oleksandr Andrushchenko
2018-03-05  9:25   ` Daniel Vetter
2018-03-05  9:30     ` Oleksandr Andrushchenko
2018-03-06  9:26       ` Daniel Vetter
2018-03-06  9:45         ` Oleksandr Andrushchenko
2018-02-26  8:21 ` [PATCH 0/9] drm/xen-front: Add support for Xen PV display frontend Oleksandr Andrushchenko
2018-02-27 12:40   ` Oleksandr Andrushchenko
2018-02-28 14:08     ` [Xen-devel] " Julien Grall
2018-03-01  1:42       ` Stefano Stabellini
2018-03-01  8:26     ` Gerd Hoffmann
2018-03-01  8:49       ` Oleksandr Andrushchenko
2018-03-01  1:14 ` Stefano Stabellini

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=95653e33-b0a0-e061-ba9e-35552b5a8037@gmail.com \
    --to=andr2000@gmail.com \
    --cc=airlied@linux.ie \
    --cc=boris.ostrovsky@oracle.com \
    --cc=daniel.vetter@intel.com \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=gustavo@padovan.org \
    --cc=jgross@suse.com \
    --cc=konrad.wilk@oracle.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=oleksandr_andrushchenko@epam.com \
    --cc=seanpaul@chromium.org \
    --cc=xen-devel@lists.xenproject.org \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).