linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v6 0/6] Deliver vGPU display refresh event to userspace
@ 2019-09-24  6:41 Tina Zhang
  2019-09-24  6:41 ` [PATCH v6 1/6] vfio: Define device specific irq type capability Tina Zhang
                   ` (5 more replies)
  0 siblings, 6 replies; 11+ messages in thread
From: Tina Zhang @ 2019-09-24  6:41 UTC (permalink / raw)
  To: intel-gvt-dev, kvm, linux-kernel
  Cc: Tina Zhang, kraxel, zhenyuw, zhiyuan.lv, zhi.a.wang, kevin.tian,
	hang.yuan, alex.williamson, yi.l.liu

This series sends the vGPU display refresh events to user land. A vGPU
display IRQ is proposed to notify user space with all the display
updates events.  With this IRQ supported by vendor driver, user space
can stop the display update timer and fully depend on getting the
notification if an update is needed.

How does gvt-g provide the vGPU display refresh IRQ covering all the
display update events?

Instead of delivering page flip events only or vblank events only, we
choose to combine two of them, i.e. post display refresh event at
vblanks and skip some of them when no page flip happens. Vblanks as
upper bound are safe and skipping no-page-flip vblanks guarantees both
trivial performance impacts and good user experience without screen
tearing. Plus, we have the mask/unmask mechansim providing user space
flexibility to switch between event-notified refresh and classic
timer-based refresh.

In addition, 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. Hence, in single
framebuffer case, we apply a heuristic to determine whether it is the
case or not. If it is, notify user land when each vblank event
triggers.

v6:
- Add more description to VFIO_IRQ_SUBTYPE_GFX_DISPLAY_IRQ and
  VFIO_IRQ_INFO_CAP_DISPLAY. (Alex & Gerd)
- Irq capability index starts from 1
v5:
- Introduce a vGPU display irq cap which can notify user space with
  both primary and cursor plane update events through one eventfd. (Gerd & Alex)
v4:
- Deliver page flip event and single framebuffer refresh event bounded 
by display vblanks. (Kechen)
v3:
- Deliver display vblank event instead of page flip event. (Zhenyu)
v2:
- Use VFIO irq chain to get eventfds from userspace instead of adding
a new ABI. (Alex)
v1:
- https://patchwork.kernel.org/cover/10962341/

Kechen Lu (2):
  drm/i915/gvt: Deliver async primary plane page flip events at vblank
  drm/i915/gvt: Add cursor plane reg update trap emulation handler

Tina Zhang (4):
  vfio: Define device specific irq type capability
  vfio: Introduce vGPU display irq type
  drm/i915/gvt: Register vGPU display event irq
  drm/i915/gvt: Deliver vGPU refresh event to userspace

 drivers/gpu/drm/i915/gvt/cmd_parser.c |   6 +-
 drivers/gpu/drm/i915/gvt/display.c    |  47 +++++-
 drivers/gpu/drm/i915/gvt/display.h    |   3 +
 drivers/gpu/drm/i915/gvt/gvt.h        |   7 +
 drivers/gpu/drm/i915/gvt/handlers.c   |  32 +++-
 drivers/gpu/drm/i915/gvt/hypercall.h  |   1 +
 drivers/gpu/drm/i915/gvt/interrupt.c  |   7 +
 drivers/gpu/drm/i915/gvt/interrupt.h  |   3 +
 drivers/gpu/drm/i915/gvt/kvmgt.c      | 230 +++++++++++++++++++++++++-
 drivers/gpu/drm/i915/gvt/mpt.h        |  17 ++
 include/uapi/linux/vfio.h             |  57 ++++++-
 11 files changed, 391 insertions(+), 19 deletions(-)

-- 
2.17.1


^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2019-09-24 20:35 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-09-24  6:41 [PATCH v6 0/6] Deliver vGPU display refresh event to userspace Tina Zhang
2019-09-24  6:41 ` [PATCH v6 1/6] vfio: Define device specific irq type capability Tina Zhang
2019-09-24  6:41 ` [PATCH v6 2/6] vfio: Introduce vGPU display irq type Tina Zhang
2019-09-24 20:35   ` Alex Williamson
2019-09-24  6:41 ` [PATCH v6 3/6] drm/i915/gvt: Register vGPU display event irq Tina Zhang
2019-09-24  6:41 ` [PATCH v6 4/6] drm/i915/gvt: Deliver vGPU refresh event to userspace Tina Zhang
2019-09-24  9:02   ` kbuild test robot
2019-09-24 20:10   ` Alex Williamson
2019-09-24  6:41 ` [PATCH v6 5/6] drm/i915/gvt: Deliver async primary plane page flip events at vblank Tina Zhang
2019-09-24 20:14   ` Alex Williamson
2019-09-24  6:41 ` [PATCH v6 6/6] drm/i915/gvt: Add cursor plane reg update trap emulation handler Tina Zhang

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).