xpds16: display handler, a client display framework for xen - brendan kerrigan, assured information...

29
1 Display Handler A framework and implementation for client virtualization interaction Brendan Kerrigan

Upload: the-linux-foundation

Post on 07-Feb-2017

125 views

Category:

Technology


3 download

TRANSCRIPT

Page 1: XPDS16:  Display Handler, a Client Display Framework for Xen - Brendan Kerrigan, Assured Information Security, Inc

1

Display Handler A framework and implementation for client virtualization

interaction

Brendan Kerrigan

Page 2: XPDS16:  Display Handler, a Client Display Framework for Xen - Brendan Kerrigan, Assured Information Security, Inc

2

Outline

• Background • Goals • Design • Features • Future Goals and Development

Page 3: XPDS16:  Display Handler, a Client Display Framework for Xen - Brendan Kerrigan, Assured Information Security, Inc

3

Background

• Previously we had created a secure compositing technology on top of surfman, within XenClientXT

• At the time we were limited to working within a proprietary solution

• Uncertainty in XCXT’s future prompted us to find an independent way forward

Page 4: XPDS16:  Display Handler, a Client Display Framework for Xen - Brendan Kerrigan, Assured Information Security, Inc

4

Background

• Began design in Fall 2013 after a period of survey and experimentation with what existed in open source

• Several prototypes were made: • Wayland • Mir • eGL • DRM

Page 5: XPDS16:  Display Handler, a Client Display Framework for Xen - Brendan Kerrigan, Assured Information Security, Inc

5

Background •  We settled on a design that would utilize a plugin

architecture •  Minimize damage of lock-in to a specific

technology •  Allow extension by outside parties •  LGPL was the intended license to allow for 3rd

parties to develop proprietary bits that were interoperable

•  Initial support would be based on DRM dumb buffer rendering

Page 6: XPDS16:  Display Handler, a Client Display Framework for Xen - Brendan Kerrigan, Assured Information Security, Inc

6

Outline

• Background • Goals • Design • Features • Future Goals and Development

Page 7: XPDS16:  Display Handler, a Client Display Framework for Xen - Brendan Kerrigan, Assured Information Security, Inc

7

Goals

• Modular, testable codebase • Flexible multi-monitor support

(extended, cloned, pinned, seamless)

•  Intuitive monitor hotplugging • Lower the surrounding code

necessary to prototype new rendering technologies

Page 8: XPDS16:  Display Handler, a Client Display Framework for Xen - Brendan Kerrigan, Assured Information Security, Inc

8

Goals

• Up to 6 monitor support • 4K resolution support • Minimize the effort in bringing in

new hardware compatibility

Page 9: XPDS16:  Display Handler, a Client Display Framework for Xen - Brendan Kerrigan, Assured Information Security, Inc

9

Outline

• Background • Goals • Design • Features • Future Goals and Development

Page 10: XPDS16:  Display Handler, a Client Display Framework for Xen - Brendan Kerrigan, Assured Information Security, Inc

10

Architecture

Renderer Full Screen Compositor

Input Server PV Backend Qemu

Backend

libivc Guest

Manager

OXT FB XPDM Qemu

DCL

libivc libivc libivc

Dis(play) Man(ager)

Xec XL libivc

Page 11: XPDS16:  Display Handler, a Client Display Framework for Xen - Brendan Kerrigan, Assured Information Security, Inc

11

Architecture

Renderer Full Screen Compositor

Input Server PV Backend Qemu

Backend

libivc Guest

Manager

OXT FB XPDM Qemu

DCL

libivc libivc libivc

Dis(play) Man(ager)

Xec XL libivc

Interface with the applicable toolstack module (currently support xec and xl)

Guest Manager

Page 12: XPDS16:  Display Handler, a Client Display Framework for Xen - Brendan Kerrigan, Assured Information Security, Inc

12

Architecture

Renderer Full Screen Compositor

Input Server PV Backend Qemu

Backend

libivc Guest

Manager

OXT FB XPDM Qemu

DCL

libivc libivc libivc

Dis(play) Man(ager)

Xec XL libivc

Somewhat poorly named, more like a window manager

Full Screen Compositor

Page 13: XPDS16:  Display Handler, a Client Display Framework for Xen - Brendan Kerrigan, Assured Information Security, Inc

13

Architecture

Renderer Full Screen Compositor

Input Server PV Backend Qemu

Backend

libivc Guest

Manager

OXT FB XPDM Qemu

DCL

libivc libivc libivc

Dis(play) Man(ager)

Xec XL libivc

Does the final blitting to the scanout buffer (currently DRM dumb buffer support is included)

Renderer

Page 14: XPDS16:  Display Handler, a Client Display Framework for Xen - Brendan Kerrigan, Assured Information Security, Inc

14

Architecture

Renderer Full Screen Compositor

Input Server PV Backend Qemu

Backend

libivc Guest

Manager

OXT FB XPDM Qemu

DCL

libivc libivc libivc

Dis(play) Man(ager)

Xec XL libivc

Provides information about currently available displays’ orientation, resolution, and layout

Dis(play) Man(ager)

Page 15: XPDS16:  Display Handler, a Client Display Framework for Xen - Brendan Kerrigan, Assured Information Security, Inc

15

Architecture

Renderer Full Screen Compositor

Input Server PV Backend Qemu

Backend

libivc Guest

Manager

OXT FB XPDM Qemu

DCL

libivc libivc libivc

Dis(play) Man(ager)

Xec XL libivc

A new input server module is included, and this brings the input server back into the same process space as the rest of the display code

Input Server

Page 16: XPDS16:  Display Handler, a Client Display Framework for Xen - Brendan Kerrigan, Assured Information Security, Inc

16

Architecture Input Sources

libinput

vnc

???

Input Server Core

Filter List

VM List

QEmu

Input Sinks

Focus VM

PV KBD

Debug

Page 17: XPDS16:  Display Handler, a Client Display Framework for Xen - Brendan Kerrigan, Assured Information Security, Inc

17

Outline

• Background • Goals • Design • Features • Future Goals and Development

Page 18: XPDS16:  Display Handler, a Client Display Framework for Xen - Brendan Kerrigan, Assured Information Security, Inc

18

Features

• Three modes of operation • Extended – in focus VM displays

to all monitors • Cloned – in focus VM displays to

all monitors, but the image is replicated on each monitor

• Pinned – VMs can be assigned a subset of available displays

Page 19: XPDS16:  Display Handler, a Client Display Framework for Xen - Brendan Kerrigan, Assured Information Security, Inc

19

Features

• Extended mode

<VM Switch>

Page 20: XPDS16:  Display Handler, a Client Display Framework for Xen - Brendan Kerrigan, Assured Information Security, Inc

20

Features

• Cloned mode

<VM Switch>

Page 21: XPDS16:  Display Handler, a Client Display Framework for Xen - Brendan Kerrigan, Assured Information Security, Inc

21

Features

• Pinned mode

<VM Switch>

Page 22: XPDS16:  Display Handler, a Client Display Framework for Xen - Brendan Kerrigan, Assured Information Security, Inc

22

Features

• Configure displays from the UIVM

Page 23: XPDS16:  Display Handler, a Client Display Framework for Xen - Brendan Kerrigan, Assured Information Security, Inc

23

Features

• Monitor hotplugging is well supported

• Optional banner that displays VM name and administrator configurable string

• Guest/host resolution independence (auto scaling if necessary)

Page 24: XPDS16:  Display Handler, a Client Display Framework for Xen - Brendan Kerrigan, Assured Information Security, Inc

24

Features

• Performance impact is small • With multiple HD videos playing full

screen, CPU utilization sits at ~6% • Audio processing actually uses

more cycles during ad hoc video playback testing

Page 25: XPDS16:  Display Handler, a Client Display Framework for Xen - Brendan Kerrigan, Assured Information Security, Inc

25

Features •  Currently works on both OpenXT and

upstream Xen •  Large set of unittests accompany the code •  PV display drivers for Windows 7 and 10

(XPDM and KMDOD) •  LinuxFB PV driver •  Experimental DRM driver for multi-monitor

support in Linux •  Qemu guest support (limited resolution)

Page 26: XPDS16:  Display Handler, a Client Display Framework for Xen - Brendan Kerrigan, Assured Information Security, Inc

26

Outline

• Background • Goals • Architecture • Features • Future Goals and Development

Page 27: XPDS16:  Display Handler, a Client Display Framework for Xen - Brendan Kerrigan, Assured Information Security, Inc

27

Future Goals and Development

•  Open sourcing effort is beginning shortly •  Building community •  Unit testing coverage will be extended •  Taking suggestions for a name!

Page 28: XPDS16:  Display Handler, a Client Display Framework for Xen - Brendan Kerrigan, Assured Information Security, Inc

28

Future Goals and Development

•  Additional renderers are being investigated: •  Intel GVT-g as a renderer, providing

mediated GPU acceleration using native Intel drivers in guest

•  GL based renderer, providing some improvement in performance and power consumption (especially in scaling cases)

•  virGL based renderer, providing API forwarding style 3D graphics to guests

Page 29: XPDS16:  Display Handler, a Client Display Framework for Xen - Brendan Kerrigan, Assured Information Security, Inc

29

Future Goals and Development

•  Extending the input server to support some more modern input technologies •  Better touch integration and passthrough •  Supporting other sensor data being sent to

guests •  Accelerometer •  GPS

•  UI configuration of gesture control