From: Zhenyu Wang <zhenyuw@linux.intel.com>
To: Gerd Hoffmann <kraxel@redhat.com>
Cc: Zhenyu Wang <zhenyuw@linux.intel.com>,
"Zhang, Tina" <tina.zhang@intel.com>,
"intel-gvt-dev@lists.freedesktop.org"
<intel-gvt-dev@lists.freedesktop.org>,
"kvm@vger.kernel.org" <kvm@vger.kernel.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"Lv, Zhiyuan" <zhiyuan.lv@intel.com>,
"Wang, Zhi A" <zhi.a.wang@intel.com>,
"Tian, Kevin" <kevin.tian@intel.com>,
"Yuan, Hang" <hang.yuan@intel.com>,
"alex.williamson@redhat.com" <alex.williamson@redhat.com>
Subject: Re: [RFC PATCH v3 0/4] Deliver vGPU display vblank event to userspace
Date: Fri, 28 Jun 2019 15:23:36 +0800 [thread overview]
Message-ID: <20190628072336.GI9684@zhen-hp.sh.intel.com> (raw)
In-Reply-To: <20190628054346.3uc3k4c4cffrqcy3@sirius.home.kraxel.org>
[-- Attachment #1: Type: text/plain, Size: 3366 bytes --]
On 2019.06.28 07:43:46 +0200, Gerd Hoffmann wrote:
> On Fri, Jun 28, 2019 at 11:21:49AM +0800, Zhenyu Wang wrote:
> > On 2019.06.27 12:31:33 +0200, Gerd Hoffmann wrote:
> > > > > Hi,
> > > > >
> > > > > > Instead of delivering page flip events, we choose to post display
> > > > > > vblank event. Handling page flip events for both primary plane and
> > > > > > cursor plane may make user space quite busy, although we have the
> > > > > > mask/unmask mechansim for mitigation. Besides, there are some cases
> > > > > > that guest app only uses one framebuffer for both drawing and display.
> > > > > > In such case, guest OS won't do the plane page flip when the
> > > > > > framebuffer is updated, thus the user land won't be notified about the
> > > > > updated framebuffer.
> > > > >
> > > > > What happens when the guest is idle and doesn't draw anything to the
> > > > > framebuffer?
> > > > The vblank event will be delivered to userspace as well, unless guest OS disable the pipe.
> > > > Does it make sense to vfio/display?
> > >
> > > Getting notified only in case there are actual display updates would be
> > > a nice optimization, assuming the hardware is able to do that. If the
> > > guest pageflips this is obviously trivial. Not sure this is possible in
> > > case the guest renders directly to the frontbuffer.
> > >
> > > What exactly happens when the guest OS disables the pipe? Is a vblank
> > > event delivered at least once? That would be very useful because it
> > > will be possible for userspace to stop polling altogether without
> > > missing the "guest disabled pipe" event.
> > >
> >
> > It looks like purpose to use vblank here is to replace user space
> > polling totally by kernel event? Which just act as display update
> > event to replace user space timer to make it query and update
> > planes?
>
> I think it makes sense to design it that way, so userspace will either
> use the events (when supported by the driver) or a timer (fallback if
> not) but not both.
Agree. It's more of a userspace choice.
>
> > Although in theory vblank is not appropriate for this which
> > doesn't align with plane update or possible front buffer rendering at
> > all, but looks it's just a compromise e.g not sending event for every
> > cursor position change, etc.
> >
> > I think we need to define semantics for this event properly, e.g user
> > space purely depends on this event for display update, the opportunity
> > for issuing this event is controlled by driver when it's necessary for
> > update, etc. Definitely not named as vblank event or only issue at vblank,
> > that need to happen for other plane change too.
>
> I think it should be "display update notification", i.e. userspace
> should check for plane changes and update the display.
>
> Most events will probably come from vblank (typically plane update are
> actually committed at vblank time to avoid tearing, right?). That is an
> implementation detail though.
>
Yeah, vblank should be a good time, although driver might also do
optimization e.g checking actual plane change between vblank to see if
there's any real change, etc. Also that will depend on driver
implementation.
--
Open Source Technology Center, Intel ltd.
$gpg --keyserver wwwkeys.pgp.net --recv-keys 4D781827
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 195 bytes --]
next prev parent reply other threads:[~2019-06-28 7:26 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-06-27 3:37 [RFC PATCH v3 0/4] Deliver vGPU display vblank event to userspace Tina Zhang
2019-06-27 3:37 ` [RFC PATCH v3 1/4] vfio: Define device specific irq type capability Tina Zhang
2019-06-27 4:07 ` Alex Williamson
2019-06-27 8:40 ` Zhang, Tina
2019-06-27 6:19 ` Gerd Hoffmann
2019-06-27 8:55 ` Zhang, Tina
2019-06-27 10:20 ` Gerd Hoffmann
2019-06-27 3:38 ` [RFC PATCH v3 2/4] vfio: Introduce vGPU display irq type Tina Zhang
2019-06-27 6:20 ` Gerd Hoffmann
2019-06-27 9:11 ` Zhang, Tina
2019-06-27 3:38 ` [RFC PATCH v3 3/4] drm/i915/gvt: Register vGPU display vblank irq Tina Zhang
2019-06-27 3:38 ` [RFC PATCH v3 4/4] drm/i915/gvt: Deliver vGPU vblank event to userspace Tina Zhang
2019-06-27 6:22 ` [RFC PATCH v3 0/4] Deliver vGPU display " Gerd Hoffmann
2019-06-27 8:44 ` Zhang, Tina
2019-06-27 10:31 ` Gerd Hoffmann
2019-06-28 3:21 ` Zhenyu Wang
2019-06-28 5:43 ` Gerd Hoffmann
2019-06-28 7:23 ` Zhenyu Wang [this message]
2019-06-28 8:44 ` Zhang, Tina
2019-06-28 12:43 ` Zhang, Tina
2019-07-01 3:09 ` Zhenyu Wang
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=20190628072336.GI9684@zhen-hp.sh.intel.com \
--to=zhenyuw@linux.intel.com \
--cc=alex.williamson@redhat.com \
--cc=hang.yuan@intel.com \
--cc=intel-gvt-dev@lists.freedesktop.org \
--cc=kevin.tian@intel.com \
--cc=kraxel@redhat.com \
--cc=kvm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=tina.zhang@intel.com \
--cc=zhi.a.wang@intel.com \
--cc=zhiyuan.lv@intel.com \
/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).