SlideShare a Scribd company logo
1 of 19
Download to read offline
Zero-­‐Copy	
  Display	
  of	
  Guest	
  
Framebuffers	
  using	
  GEM	
  
John	
  Baboval	
  
Citrix	
  Systems,	
  Inc.	
  
October	
  24th,	
  2013	
  
Agenda	
  
•  Xen	
  video	
  basics	
  
•  ExisNng	
  OpNmizaNons	
  
•  GEM	
  

October	
  24th,	
  2013	
  

Citrix	
  Systems,	
  Inc	
  

2	
  
Overview	
  of	
  QEMU	
  Graphics	
  
(The	
  quick	
  version)	
  
QEMU	
  

Video	
  Device	
  Driver	
  

VM	
  

HW	
  
UI	
  
(device	
  specific)	
  
(device	
  independent)	
  
I/O	
  port	
  handlers	
  
dpy_update()	
  
	
  
•  Called	
  by	
  HW	
  when	
  
Linear	
  Framebuffer	
  
scanlines	
  change	
  
	
  
	
  
gfx_hw_update()	
  
dpy_refresh()	
  
•  Called	
  on	
  interval	
  to	
  
•  Called	
  on	
  interval	
  to	
  
process	
  guest	
  pixel	
  data	
  
update	
  display	
  
into	
  DisplaySurface	
  
	
  
DisplaySurface	
  

October	
  24th,	
  2013	
  

Citrix	
  Systems,	
  Inc	
  

Output	
  
Device	
  
X11,	
  TCP…	
  

3	
  
Worst	
  Case	
  Scenario	
  
•  Emulated	
  VRAM	
  
domU	
  

dom0	
  
QEMU	
  
Virtual	
  
VRAM	
  

Display	
  
Surface	
  
SDL	
  
Surface	
  
(window)	
  

ComposiNng	
  
Buffer	
  

Back	
  
Buffer	
  

libSDL	
  
X.org	
  
Linux/DRM	
  

Xen	
  

October	
  24th,	
  2013	
  

Citrix	
  Systems,	
  Inc	
  

4	
  
ExisNng	
  OpNmizaNons	
  
•  Foreign	
  Page	
  Mapping	
  (Shared	
  Memory)	
  
domU	
  

dom0	
  
QEMU	
  
Virtual	
  VRAM	
  

Dirty	
  Page	
  Data	
  

Display	
  
Surface	
  
SDL	
  
Surface	
  
(window)	
  

ComposiNng	
  
Buffer	
  

Back	
  
Buffer	
  

libSDL	
  
X.org	
  
Linux/DRM	
  

Xen	
  

October	
  24th,	
  2013	
  

Citrix	
  Systems,	
  Inc	
  

5	
  
ExisNng	
  OpNmizaNons	
  
•  Shared	
  Buffer	
  Mode	
  +	
  Foreign	
  Page	
  Mapping	
  
domU	
  

dom0	
  
QEMU	
  
Virtual	
  VRAM	
  
Display	
  
Surface	
  

Dirty	
  Page	
  Data	
  

SDL	
  
Surface	
  
(window)	
  

ComposiNng	
  
Buffer	
  

Back	
  
Buffer	
  

libSDL	
  
X.org	
  
Linux/DRM	
  

Xen	
  

October	
  24th,	
  2013	
  

Citrix	
  Systems,	
  Inc	
  

6	
  
Graphics	
  Hardware	
  
(The	
  REALLY	
  Short	
  Version)	
  
•  Systems	
  commonly	
  have	
  a	
  unified	
  memory	
  
architecture	
  (UMA)	
  
–  GPU	
  is	
  connected	
  to	
  the	
  same	
  memory	
  bus	
  as	
  the	
  CPU	
  
–  Can	
  scan	
  directly	
  out	
  of	
  system	
  RAM	
  

•  UMA	
  GPUs	
  have	
  their	
  own	
  virtual	
  address	
  space	
  
–  Can	
  access	
  any	
  domain’s	
  memory	
  if	
  the	
  GPU’s	
  page	
  
table	
  is	
  appropriately	
  programmed…	
  
–  …and…	
  well,	
  it’s	
  the	
  REALLY	
  short	
  version	
  

October	
  24th,	
  2013	
  

Citrix	
  Systems,	
  Inc	
  

7	
  
The	
  Obvious	
  SoluNon!	
  
•  Map	
  the	
  linear	
  framebuffer	
  into	
  the	
  GPU	
  page	
  
table	
  
•  Program	
  the	
  CRTC	
  base	
  address	
  so	
  that	
  the	
  
GPU	
  scans	
  out	
  of	
  the	
  framebuffer	
  
•  Simple!	
  

October	
  24th,	
  2013	
  

Citrix	
  Systems,	
  Inc	
  

8	
  
Unpleasant	
  Reality	
  
•  GPUs	
  are	
  complicated	
  
•  GPU	
  vendors	
  are	
  secreNve	
  
•  GPUs	
  change	
  constantly	
  
•  You	
  probably	
  want	
  to	
  use	
  your	
  GPU	
  for	
  more	
  
than	
  one	
  thing	
  at	
  a	
  Nme	
  

October	
  24th,	
  2013	
  

Citrix	
  Systems,	
  Inc	
  

9	
  
GEM	
  
•  Linux	
  already	
  knows	
  how	
  to	
  program	
  your	
  GPU	
  
•  The	
  API	
  is	
  “standardized”	
  

•  …but	
  we	
  want	
  to	
  tell	
  it	
  WHICH	
  pages	
  to	
  use.	
  

October	
  24th,	
  2013	
  

Citrix	
  Systems,	
  Inc	
  

10	
  
GEM	
  Objects	
  
•  Basically	
  a	
  bunch	
  of	
  GPU	
  specific	
  state	
  
tracking	
  and	
  a	
  scaner-­‐gather	
  list	
  of	
  pages	
  
•  Add	
  an	
  interface	
  that	
  fills	
  in	
  the	
  scaner-­‐gather	
  
list	
  with	
  the	
  right	
  pages	
  
•  Pass	
  the	
  object	
  to	
  KMS	
  	
  

•  …	
  but	
  which	
  pages?	
  
October	
  24th,	
  2013	
  

Citrix	
  Systems,	
  Inc	
  

11	
  
Foreign	
  pages?	
  
•  Mapping	
  the	
  guest’s	
  foreign	
  pages	
  provides	
  
virtual	
  addresses	
  to	
  the	
  memory	
  
•  No	
  machine	
  addresses	
  
•  Not	
  Linux	
  memory,	
  so	
  no	
  page	
  structs	
  to	
  add	
  
to	
  the	
  scaner	
  gather	
  list	
  

October	
  24th,	
  2013	
  

Citrix	
  Systems,	
  Inc	
  

12	
  
Grants?	
  
• 
• 
• 
• 

domU	
  allocates	
  a	
  big	
  grant	
  table	
  
Creates	
  a	
  grantref	
  for	
  each	
  page	
  in	
  the	
  framebuffer	
  
Passes	
  the	
  table	
  address	
  and	
  size	
  to	
  the	
  device	
  model	
  
Grant	
  mappings	
  get	
  added	
  to	
  the	
  m2p_override	
  table,	
  so	
  we	
  
have	
  page	
  structs	
  

•  Requires	
  a	
  cooperaNve	
  guest	
  
•  Uses	
  a	
  lot	
  of	
  grant	
  refs	
  
•  Sets	
  up	
  mappings	
  that	
  never	
  get	
  used	
  

October	
  24th,	
  2013	
  

Citrix	
  Systems,	
  Inc	
  

13	
  
Manual	
  m2p_override	
  
•  Use	
  the	
  translate_gpfn_list	
  hypercall	
  to	
  get	
  a	
  
list	
  of	
  MFNs	
  
•  Use	
  the	
  m2p_override	
  infrastructure	
  from	
  the	
  
grant	
  code	
  to	
  redirect	
  pages	
  
•  Use	
  redirected	
  pages	
  in	
  the	
  scaner	
  gather	
  list	
  
•  No	
  guest	
  knowledge	
  
•  No	
  unnecessary	
  mappings	
  
October	
  24th,	
  2013	
  

Citrix	
  Systems,	
  Inc	
  

14	
  
Foreign-­‐backed	
  GEM	
  Objects	
  
•  Add	
  new	
  ioctl	
  to	
  create	
  i915_gem_foreign_object	
  
•  Standard	
  GEM	
  object,	
  but	
  override	
  get_pages	
  and	
  
put_pages	
  handlers	
  using	
  exisNng	
  hooks	
  
•  Create	
  m2p_override	
  mappings	
  for	
  framebuffer	
  
pages	
  
•  Fill	
  in	
  the	
  scaner-­‐gather	
  list	
  with	
  the	
  overridden	
  
pages	
  
•  Pass	
  the	
  object	
  to	
  KMS	
  
•  Success!	
  
October	
  24th,	
  2013	
  

Citrix	
  Systems,	
  Inc	
  

15	
  
New	
  DRM	
  ioctl	
  
•  (intel)	
  
•  I915_GEM_FOREIGN	
  
–  In:	
  
•  GFN	
  
•  Size	
  
•  Domain	
  ID	
  

–  Out:	
  
•  GEM	
  handle	
  

October	
  24th,	
  2013	
  

Citrix	
  Systems,	
  Inc	
  

16	
  
ExisNng	
  OpNmizaNons	
  
•  GEM	
  Object	
  +	
  libDRM	
  UI	
  
domU	
  

dom0	
  
QEMU	
  
Virtual	
  VRAM	
  

CRTC	
  
Scanout	
  
Buffer	
  

Linux/DRM	
  

Display	
  
Surface	
  

Xen	
  

October	
  24th,	
  2013	
  

Citrix	
  Systems,	
  Inc	
  

17	
  
What	
  to	
  do	
  With	
  Your	
  GEM	
  Object	
  
•  Take	
  over	
  the	
  scanout	
  buffer	
  of	
  an	
  enNre	
  vt	
  

–  Lowest	
  runNme	
  overhead	
  (none)	
  
–  Requires	
  source	
  of	
  input	
  events	
  (/dev/event/*)	
  

•  Convert	
  it	
  to	
  a	
  Prime	
  object	
  for	
  use	
  with	
  DRI2/DRI3	
  X	
  
extensions	
  
•  Convert	
  it	
  to	
  an	
  EGL	
  named	
  image,	
  and	
  bind	
  it	
  to	
  a	
  texture	
  
–  Hardware	
  accelerated	
  framebuffer	
  tricks	
  
• 
• 
• 
• 

Scaling	
  
RotaNon	
  
ComposiNng	
  
Effects	
  

•  Use	
  it	
  to	
  display	
  XenGT	
  hardware	
  accelerated	
  framebuffers	
  
–  Be	
  sure	
  to	
  see	
  Haitao	
  Shan’s	
  XenGT	
  presentaNon	
  tomorrow…	
  

October	
  24th,	
  2013	
  

Citrix	
  Systems,	
  Inc	
  

18	
  
Demo	
  

October	
  24th,	
  2013	
  

Citrix	
  Systems,	
  Inc	
  

19	
  

More Related Content

What's hot

XPDDS18: Memory Overcommitment in XEN - Huang Zhichao, Huawei
XPDDS18: Memory Overcommitment in XEN - Huang Zhichao, HuaweiXPDDS18: Memory Overcommitment in XEN - Huang Zhichao, Huawei
XPDDS18: Memory Overcommitment in XEN - Huang Zhichao, HuaweiThe Linux Foundation
 
XPDDS18: Unikraft: An easy way of crafting Unikernels on Arm - Kaly Xin, ARM
XPDDS18: Unikraft: An easy way of crafting Unikernels on Arm - Kaly Xin, ARMXPDDS18: Unikraft: An easy way of crafting Unikernels on Arm - Kaly Xin, ARM
XPDDS18: Unikraft: An easy way of crafting Unikernels on Arm - Kaly Xin, ARMThe Linux Foundation
 
XPDDS18: Performance tuning on Xen platform - Bo Zhang & Yifei Jiang, Huawei
XPDDS18: Performance tuning on Xen platform - Bo Zhang & Yifei Jiang, HuaweiXPDDS18: Performance tuning on Xen platform - Bo Zhang & Yifei Jiang, Huawei
XPDDS18: Performance tuning on Xen platform - Bo Zhang & Yifei Jiang, HuaweiThe Linux Foundation
 
XPDDS18: NVDIMM Overview - George Dunlap, Citrix
XPDDS18: NVDIMM Overview - George Dunlap, Citrix XPDDS18: NVDIMM Overview - George Dunlap, Citrix
XPDDS18: NVDIMM Overview - George Dunlap, Citrix The Linux Foundation
 
XPDDS18: Design and Implementation of Automotive: Virtualization Based on Xen...
XPDDS18: Design and Implementation of Automotive: Virtualization Based on Xen...XPDDS18: Design and Implementation of Automotive: Virtualization Based on Xen...
XPDDS18: Design and Implementation of Automotive: Virtualization Based on Xen...The Linux Foundation
 
Cloud os launch journey to cloud os with windows server 2012 r2
Cloud os launch   journey to cloud os with windows server 2012 r2 Cloud os launch   journey to cloud os with windows server 2012 r2
Cloud os launch journey to cloud os with windows server 2012 r2 Susantha Silva
 
Xen and the Art of Virtualization
Xen and the Art of VirtualizationXen and the Art of Virtualization
Xen and the Art of VirtualizationSusheel Thakur
 
XPDS13: Xen in OSS based In–Vehicle Infotainment Systems - Artem Mygaiev, Glo...
XPDS13: Xen in OSS based In–Vehicle Infotainment Systems - Artem Mygaiev, Glo...XPDS13: Xen in OSS based In–Vehicle Infotainment Systems - Artem Mygaiev, Glo...
XPDS13: Xen in OSS based In–Vehicle Infotainment Systems - Artem Mygaiev, Glo...The Linux Foundation
 
Demand-Based Coordinated Scheduling for SMP VMs
Demand-Based Coordinated Scheduling for SMP VMsDemand-Based Coordinated Scheduling for SMP VMs
Demand-Based Coordinated Scheduling for SMP VMsHwanju Kim
 
3. CPU virtualization and scheduling
3. CPU virtualization and scheduling3. CPU virtualization and scheduling
3. CPU virtualization and schedulingHwanju Kim
 
XPDDS18: Introducing ViryaOS: Secure Containers for Embedded and IoT - Stefan...
XPDDS18: Introducing ViryaOS: Secure Containers for Embedded and IoT - Stefan...XPDDS18: Introducing ViryaOS: Secure Containers for Embedded and IoT - Stefan...
XPDDS18: Introducing ViryaOS: Secure Containers for Embedded and IoT - Stefan...The Linux Foundation
 
CPU Scheduling for Virtual Desktop Infrastructure
CPU Scheduling for Virtual Desktop InfrastructureCPU Scheduling for Virtual Desktop Infrastructure
CPU Scheduling for Virtual Desktop InfrastructureHwanju Kim
 
XPDDS18: Xenwatch Multithreading - Dongli Zhang, Oracle
XPDDS18: Xenwatch Multithreading - Dongli Zhang, OracleXPDDS18: Xenwatch Multithreading - Dongli Zhang, Oracle
XPDDS18: Xenwatch Multithreading - Dongli Zhang, OracleThe Linux Foundation
 
XPDDS18: The Art of Virtualizing Cache Maintenance - Julien Grall, Arm
XPDDS18: The Art of Virtualizing Cache Maintenance - Julien Grall, ArmXPDDS18: The Art of Virtualizing Cache Maintenance - Julien Grall, Arm
XPDDS18: The Art of Virtualizing Cache Maintenance - Julien Grall, ArmThe Linux Foundation
 
Scheduler Support for Video-oriented Multimedia on Client-side Virtualization
Scheduler Support for Video-oriented Multimedia on Client-side VirtualizationScheduler Support for Video-oriented Multimedia on Client-side Virtualization
Scheduler Support for Video-oriented Multimedia on Client-side VirtualizationHwanju Kim
 
6. Live VM migration
6. Live VM migration6. Live VM migration
6. Live VM migrationHwanju Kim
 
RapidFire - the Easy Route to low Latency Cloud Gaming Solutions - AMD at GDC14
RapidFire - the Easy Route to low Latency Cloud Gaming Solutions - AMD at GDC14RapidFire - the Easy Route to low Latency Cloud Gaming Solutions - AMD at GDC14
RapidFire - the Easy Route to low Latency Cloud Gaming Solutions - AMD at GDC14AMD Developer Central
 

What's hot (20)

XPDDS18: Memory Overcommitment in XEN - Huang Zhichao, Huawei
XPDDS18: Memory Overcommitment in XEN - Huang Zhichao, HuaweiXPDDS18: Memory Overcommitment in XEN - Huang Zhichao, Huawei
XPDDS18: Memory Overcommitment in XEN - Huang Zhichao, Huawei
 
XPDDS18: Unikraft: An easy way of crafting Unikernels on Arm - Kaly Xin, ARM
XPDDS18: Unikraft: An easy way of crafting Unikernels on Arm - Kaly Xin, ARMXPDDS18: Unikraft: An easy way of crafting Unikernels on Arm - Kaly Xin, ARM
XPDDS18: Unikraft: An easy way of crafting Unikernels on Arm - Kaly Xin, ARM
 
XPDDS18: Performance tuning on Xen platform - Bo Zhang & Yifei Jiang, Huawei
XPDDS18: Performance tuning on Xen platform - Bo Zhang & Yifei Jiang, HuaweiXPDDS18: Performance tuning on Xen platform - Bo Zhang & Yifei Jiang, Huawei
XPDDS18: Performance tuning on Xen platform - Bo Zhang & Yifei Jiang, Huawei
 
XPDDS18: NVDIMM Overview - George Dunlap, Citrix
XPDDS18: NVDIMM Overview - George Dunlap, Citrix XPDDS18: NVDIMM Overview - George Dunlap, Citrix
XPDDS18: NVDIMM Overview - George Dunlap, Citrix
 
XPDDS18: Design and Implementation of Automotive: Virtualization Based on Xen...
XPDDS18: Design and Implementation of Automotive: Virtualization Based on Xen...XPDDS18: Design and Implementation of Automotive: Virtualization Based on Xen...
XPDDS18: Design and Implementation of Automotive: Virtualization Based on Xen...
 
Xen io
Xen ioXen io
Xen io
 
2. OS vs. VMM
2. OS vs. VMM2. OS vs. VMM
2. OS vs. VMM
 
Cloud os launch journey to cloud os with windows server 2012 r2
Cloud os launch   journey to cloud os with windows server 2012 r2 Cloud os launch   journey to cloud os with windows server 2012 r2
Cloud os launch journey to cloud os with windows server 2012 r2
 
Xen and the Art of Virtualization
Xen and the Art of VirtualizationXen and the Art of Virtualization
Xen and the Art of Virtualization
 
XPDS13: Xen in OSS based In–Vehicle Infotainment Systems - Artem Mygaiev, Glo...
XPDS13: Xen in OSS based In–Vehicle Infotainment Systems - Artem Mygaiev, Glo...XPDS13: Xen in OSS based In–Vehicle Infotainment Systems - Artem Mygaiev, Glo...
XPDS13: Xen in OSS based In–Vehicle Infotainment Systems - Artem Mygaiev, Glo...
 
Demand-Based Coordinated Scheduling for SMP VMs
Demand-Based Coordinated Scheduling for SMP VMsDemand-Based Coordinated Scheduling for SMP VMs
Demand-Based Coordinated Scheduling for SMP VMs
 
3. CPU virtualization and scheduling
3. CPU virtualization and scheduling3. CPU virtualization and scheduling
3. CPU virtualization and scheduling
 
XPDDS18: Introducing ViryaOS: Secure Containers for Embedded and IoT - Stefan...
XPDDS18: Introducing ViryaOS: Secure Containers for Embedded and IoT - Stefan...XPDDS18: Introducing ViryaOS: Secure Containers for Embedded and IoT - Stefan...
XPDDS18: Introducing ViryaOS: Secure Containers for Embedded and IoT - Stefan...
 
Xen & virtualization
Xen & virtualizationXen & virtualization
Xen & virtualization
 
CPU Scheduling for Virtual Desktop Infrastructure
CPU Scheduling for Virtual Desktop InfrastructureCPU Scheduling for Virtual Desktop Infrastructure
CPU Scheduling for Virtual Desktop Infrastructure
 
XPDDS18: Xenwatch Multithreading - Dongli Zhang, Oracle
XPDDS18: Xenwatch Multithreading - Dongli Zhang, OracleXPDDS18: Xenwatch Multithreading - Dongli Zhang, Oracle
XPDDS18: Xenwatch Multithreading - Dongli Zhang, Oracle
 
XPDDS18: The Art of Virtualizing Cache Maintenance - Julien Grall, Arm
XPDDS18: The Art of Virtualizing Cache Maintenance - Julien Grall, ArmXPDDS18: The Art of Virtualizing Cache Maintenance - Julien Grall, Arm
XPDDS18: The Art of Virtualizing Cache Maintenance - Julien Grall, Arm
 
Scheduler Support for Video-oriented Multimedia on Client-side Virtualization
Scheduler Support for Video-oriented Multimedia on Client-side VirtualizationScheduler Support for Video-oriented Multimedia on Client-side Virtualization
Scheduler Support for Video-oriented Multimedia on Client-side Virtualization
 
6. Live VM migration
6. Live VM migration6. Live VM migration
6. Live VM migration
 
RapidFire - the Easy Route to low Latency Cloud Gaming Solutions - AMD at GDC14
RapidFire - the Easy Route to low Latency Cloud Gaming Solutions - AMD at GDC14RapidFire - the Easy Route to low Latency Cloud Gaming Solutions - AMD at GDC14
RapidFire - the Easy Route to low Latency Cloud Gaming Solutions - AMD at GDC14
 

Similar to XPDS13: Zero-copy display of guest framebuffers using GEM - John Baboval, Citrix

Memory Management in TIZEN - Samsung SW Platform Team
Memory Management in TIZEN - Samsung SW Platform TeamMemory Management in TIZEN - Samsung SW Platform Team
Memory Management in TIZEN - Samsung SW Platform TeamRyo Jin
 
Getting Cloudy with Remote Graphics and GPU Compute Using G2 instances (CPN21...
Getting Cloudy with Remote Graphics and GPU Compute Using G2 instances (CPN21...Getting Cloudy with Remote Graphics and GPU Compute Using G2 instances (CPN21...
Getting Cloudy with Remote Graphics and GPU Compute Using G2 instances (CPN21...Amazon Web Services
 
The Rise of Parallel Computing
The Rise of Parallel ComputingThe Rise of Parallel Computing
The Rise of Parallel Computingbakers84
 
Presentation ING for ISC2 Secure Summits EMEA
Presentation ING for ISC2 Secure Summits EMEAPresentation ING for ISC2 Secure Summits EMEA
Presentation ING for ISC2 Secure Summits EMEAThijs Ebbers
 
GPU Renderfarm with Integrated Asset Management & Production System (AMPS)
GPU Renderfarm with Integrated Asset Management & Production System (AMPS)GPU Renderfarm with Integrated Asset Management & Production System (AMPS)
GPU Renderfarm with Integrated Asset Management & Production System (AMPS)Budianto Tandianus
 
Freedreno on Android – XDC 2023
Freedreno on Android          – XDC 2023Freedreno on Android          – XDC 2023
Freedreno on Android – XDC 2023Igalia
 
[Unite Seoul 2019] Mali GPU Architecture and Mobile Studio
[Unite Seoul 2019] Mali GPU Architecture and Mobile Studio [Unite Seoul 2019] Mali GPU Architecture and Mobile Studio
[Unite Seoul 2019] Mali GPU Architecture and Mobile Studio Owen Wu
 
Introduction to virtualisation
Introduction to virtualisationIntroduction to virtualisation
Introduction to virtualisationsagaroceanic11
 
Kubernetes at Spreadshirt - First steps to production
Kubernetes at Spreadshirt - First steps to productionKubernetes at Spreadshirt - First steps to production
Kubernetes at Spreadshirt - First steps to productionJens Hadlich
 
NDH2k12 Cloud Computing Security
NDH2k12 Cloud Computing SecurityNDH2k12 Cloud Computing Security
NDH2k12 Cloud Computing SecurityMatthieu Bouthors
 
[CB19] Attacking DRM subsystem to gain kernel privilege on Chromebooks by Di ...
[CB19] Attacking DRM subsystem to gain kernel privilege on Chromebooks by Di ...[CB19] Attacking DRM subsystem to gain kernel privilege on Chromebooks by Di ...
[CB19] Attacking DRM subsystem to gain kernel privilege on Chromebooks by Di ...CODE BLUE
 
Software is Eating The Data center
Software is Eating The Data centerSoftware is Eating The Data center
Software is Eating The Data centerMatthias Grawinkel
 
S0333 gtc2012-gmac-programming-cuda
S0333 gtc2012-gmac-programming-cudaS0333 gtc2012-gmac-programming-cuda
S0333 gtc2012-gmac-programming-cudamistercteam
 
【Unite 2017 Tokyo】インスタンシングを用いた美麗なグラフィックの実現方法
【Unite 2017 Tokyo】インスタンシングを用いた美麗なグラフィックの実現方法【Unite 2017 Tokyo】インスタンシングを用いた美麗なグラフィックの実現方法
【Unite 2017 Tokyo】インスタンシングを用いた美麗なグラフィックの実現方法Unite2017Tokyo
 
【Unite 2017 Tokyo】インスタンシングを用いた美麗なグラフィックの実現方法
【Unite 2017 Tokyo】インスタンシングを用いた美麗なグラフィックの実現方法【Unite 2017 Tokyo】インスタンシングを用いた美麗なグラフィックの実現方法
【Unite 2017 Tokyo】インスタンシングを用いた美麗なグラフィックの実現方法Unity Technologies Japan K.K.
 
Unity Internals: Memory and Performance
Unity Internals: Memory and PerformanceUnity Internals: Memory and Performance
Unity Internals: Memory and PerformanceDevGAMM Conference
 
Ironic 140622212631-phpapp02
Ironic 140622212631-phpapp02Ironic 140622212631-phpapp02
Ironic 140622212631-phpapp02Narender Kumar
 

Similar to XPDS13: Zero-copy display of guest framebuffers using GEM - John Baboval, Citrix (20)

Memory Management in TIZEN - Samsung SW Platform Team
Memory Management in TIZEN - Samsung SW Platform TeamMemory Management in TIZEN - Samsung SW Platform Team
Memory Management in TIZEN - Samsung SW Platform Team
 
Getting Cloudy with Remote Graphics and GPU Compute Using G2 instances (CPN21...
Getting Cloudy with Remote Graphics and GPU Compute Using G2 instances (CPN21...Getting Cloudy with Remote Graphics and GPU Compute Using G2 instances (CPN21...
Getting Cloudy with Remote Graphics and GPU Compute Using G2 instances (CPN21...
 
The Rise of Parallel Computing
The Rise of Parallel ComputingThe Rise of Parallel Computing
The Rise of Parallel Computing
 
Cloud Computing - Basics
Cloud Computing - BasicsCloud Computing - Basics
Cloud Computing - Basics
 
Presentation ING for ISC2 Secure Summits EMEA
Presentation ING for ISC2 Secure Summits EMEAPresentation ING for ISC2 Secure Summits EMEA
Presentation ING for ISC2 Secure Summits EMEA
 
GPU Renderfarm with Integrated Asset Management & Production System (AMPS)
GPU Renderfarm with Integrated Asset Management & Production System (AMPS)GPU Renderfarm with Integrated Asset Management & Production System (AMPS)
GPU Renderfarm with Integrated Asset Management & Production System (AMPS)
 
Freedreno on Android – XDC 2023
Freedreno on Android          – XDC 2023Freedreno on Android          – XDC 2023
Freedreno on Android – XDC 2023
 
[Unite Seoul 2019] Mali GPU Architecture and Mobile Studio
[Unite Seoul 2019] Mali GPU Architecture and Mobile Studio [Unite Seoul 2019] Mali GPU Architecture and Mobile Studio
[Unite Seoul 2019] Mali GPU Architecture and Mobile Studio
 
Introduction to virtualisation
Introduction to virtualisationIntroduction to virtualisation
Introduction to virtualisation
 
Kubernetes at Spreadshirt - First steps to production
Kubernetes at Spreadshirt - First steps to productionKubernetes at Spreadshirt - First steps to production
Kubernetes at Spreadshirt - First steps to production
 
NDH2k12 Cloud Computing Security
NDH2k12 Cloud Computing SecurityNDH2k12 Cloud Computing Security
NDH2k12 Cloud Computing Security
 
[CB19] Attacking DRM subsystem to gain kernel privilege on Chromebooks by Di ...
[CB19] Attacking DRM subsystem to gain kernel privilege on Chromebooks by Di ...[CB19] Attacking DRM subsystem to gain kernel privilege on Chromebooks by Di ...
[CB19] Attacking DRM subsystem to gain kernel privilege on Chromebooks by Di ...
 
Software is Eating The Data center
Software is Eating The Data centerSoftware is Eating The Data center
Software is Eating The Data center
 
S0333 gtc2012-gmac-programming-cuda
S0333 gtc2012-gmac-programming-cudaS0333 gtc2012-gmac-programming-cuda
S0333 gtc2012-gmac-programming-cuda
 
distcom-short-20140112-1600
distcom-short-20140112-1600distcom-short-20140112-1600
distcom-short-20140112-1600
 
【Unite 2017 Tokyo】インスタンシングを用いた美麗なグラフィックの実現方法
【Unite 2017 Tokyo】インスタンシングを用いた美麗なグラフィックの実現方法【Unite 2017 Tokyo】インスタンシングを用いた美麗なグラフィックの実現方法
【Unite 2017 Tokyo】インスタンシングを用いた美麗なグラフィックの実現方法
 
【Unite 2017 Tokyo】インスタンシングを用いた美麗なグラフィックの実現方法
【Unite 2017 Tokyo】インスタンシングを用いた美麗なグラフィックの実現方法【Unite 2017 Tokyo】インスタンシングを用いた美麗なグラフィックの実現方法
【Unite 2017 Tokyo】インスタンシングを用いた美麗なグラフィックの実現方法
 
Unity Internals: Memory and Performance
Unity Internals: Memory and PerformanceUnity Internals: Memory and Performance
Unity Internals: Memory and Performance
 
Server 2016 sneak peek
Server 2016 sneak peekServer 2016 sneak peek
Server 2016 sneak peek
 
Ironic 140622212631-phpapp02
Ironic 140622212631-phpapp02Ironic 140622212631-phpapp02
Ironic 140622212631-phpapp02
 

More from The Linux Foundation

ELC2019: Static Partitioning Made Simple
ELC2019: Static Partitioning Made SimpleELC2019: Static Partitioning Made Simple
ELC2019: Static Partitioning Made SimpleThe Linux Foundation
 
XPDDS19: How TrenchBoot is Enabling Measured Launch for Open-Source Platform ...
XPDDS19: How TrenchBoot is Enabling Measured Launch for Open-Source Platform ...XPDDS19: How TrenchBoot is Enabling Measured Launch for Open-Source Platform ...
XPDDS19: How TrenchBoot is Enabling Measured Launch for Open-Source Platform ...The Linux Foundation
 
XPDDS19 Keynote: Xen in Automotive - Artem Mygaiev, Director, Technology Solu...
XPDDS19 Keynote: Xen in Automotive - Artem Mygaiev, Director, Technology Solu...XPDDS19 Keynote: Xen in Automotive - Artem Mygaiev, Director, Technology Solu...
XPDDS19 Keynote: Xen in Automotive - Artem Mygaiev, Director, Technology Solu...The Linux Foundation
 
XPDDS19 Keynote: Xen Project Weather Report 2019 - Lars Kurth, Director of Op...
XPDDS19 Keynote: Xen Project Weather Report 2019 - Lars Kurth, Director of Op...XPDDS19 Keynote: Xen Project Weather Report 2019 - Lars Kurth, Director of Op...
XPDDS19 Keynote: Xen Project Weather Report 2019 - Lars Kurth, Director of Op...The Linux Foundation
 
XPDDS19 Keynote: Unikraft Weather Report
XPDDS19 Keynote:  Unikraft Weather ReportXPDDS19 Keynote:  Unikraft Weather Report
XPDDS19 Keynote: Unikraft Weather ReportThe Linux Foundation
 
XPDDS19 Keynote: Secret-free Hypervisor: Now and Future - Wei Liu, Software E...
XPDDS19 Keynote: Secret-free Hypervisor: Now and Future - Wei Liu, Software E...XPDDS19 Keynote: Secret-free Hypervisor: Now and Future - Wei Liu, Software E...
XPDDS19 Keynote: Secret-free Hypervisor: Now and Future - Wei Liu, Software E...The Linux Foundation
 
XPDDS19 Keynote: Xen Dom0-less - Stefano Stabellini, Principal Engineer, Xilinx
XPDDS19 Keynote: Xen Dom0-less - Stefano Stabellini, Principal Engineer, XilinxXPDDS19 Keynote: Xen Dom0-less - Stefano Stabellini, Principal Engineer, Xilinx
XPDDS19 Keynote: Xen Dom0-less - Stefano Stabellini, Principal Engineer, XilinxThe Linux Foundation
 
XPDDS19 Keynote: Patch Review for Non-maintainers - George Dunlap, Citrix Sys...
XPDDS19 Keynote: Patch Review for Non-maintainers - George Dunlap, Citrix Sys...XPDDS19 Keynote: Patch Review for Non-maintainers - George Dunlap, Citrix Sys...
XPDDS19 Keynote: Patch Review for Non-maintainers - George Dunlap, Citrix Sys...The Linux Foundation
 
XPDDS19: Memories of a VM Funk - Mihai Donțu, Bitdefender
XPDDS19: Memories of a VM Funk - Mihai Donțu, BitdefenderXPDDS19: Memories of a VM Funk - Mihai Donțu, Bitdefender
XPDDS19: Memories of a VM Funk - Mihai Donțu, BitdefenderThe Linux Foundation
 
OSSJP/ALS19: The Road to Safety Certification: Overcoming Community Challeng...
OSSJP/ALS19:  The Road to Safety Certification: Overcoming Community Challeng...OSSJP/ALS19:  The Road to Safety Certification: Overcoming Community Challeng...
OSSJP/ALS19: The Road to Safety Certification: Overcoming Community Challeng...The Linux Foundation
 
OSSJP/ALS19: The Road to Safety Certification: How the Xen Project is Making...
 OSSJP/ALS19: The Road to Safety Certification: How the Xen Project is Making... OSSJP/ALS19: The Road to Safety Certification: How the Xen Project is Making...
OSSJP/ALS19: The Road to Safety Certification: How the Xen Project is Making...The Linux Foundation
 
XPDDS19: Speculative Sidechannels and Mitigations - Andrew Cooper, Citrix
XPDDS19: Speculative Sidechannels and Mitigations - Andrew Cooper, CitrixXPDDS19: Speculative Sidechannels and Mitigations - Andrew Cooper, Citrix
XPDDS19: Speculative Sidechannels and Mitigations - Andrew Cooper, CitrixThe Linux Foundation
 
XPDDS19: Keeping Coherency on Arm: Reborn - Julien Grall, Arm ltd
XPDDS19: Keeping Coherency on Arm: Reborn - Julien Grall, Arm ltdXPDDS19: Keeping Coherency on Arm: Reborn - Julien Grall, Arm ltd
XPDDS19: Keeping Coherency on Arm: Reborn - Julien Grall, Arm ltdThe Linux Foundation
 
XPDDS19: QEMU PV Backend 'qdevification'... What Does it Mean? - Paul Durrant...
XPDDS19: QEMU PV Backend 'qdevification'... What Does it Mean? - Paul Durrant...XPDDS19: QEMU PV Backend 'qdevification'... What Does it Mean? - Paul Durrant...
XPDDS19: QEMU PV Backend 'qdevification'... What Does it Mean? - Paul Durrant...The Linux Foundation
 
XPDDS19: Status of PCI Emulation in Xen - Roger Pau Monné, Citrix Systems R&D
XPDDS19: Status of PCI Emulation in Xen - Roger Pau Monné, Citrix Systems R&DXPDDS19: Status of PCI Emulation in Xen - Roger Pau Monné, Citrix Systems R&D
XPDDS19: Status of PCI Emulation in Xen - Roger Pau Monné, Citrix Systems R&DThe Linux Foundation
 
XPDDS19: [ARM] OP-TEE Mediator in Xen - Volodymyr Babchuk, EPAM Systems
XPDDS19: [ARM] OP-TEE Mediator in Xen - Volodymyr Babchuk, EPAM SystemsXPDDS19: [ARM] OP-TEE Mediator in Xen - Volodymyr Babchuk, EPAM Systems
XPDDS19: [ARM] OP-TEE Mediator in Xen - Volodymyr Babchuk, EPAM SystemsThe Linux Foundation
 
XPDDS19: Bringing Xen to the Masses: The Story of Building a Community-driven...
XPDDS19: Bringing Xen to the Masses: The Story of Building a Community-driven...XPDDS19: Bringing Xen to the Masses: The Story of Building a Community-driven...
XPDDS19: Bringing Xen to the Masses: The Story of Building a Community-driven...The Linux Foundation
 
XPDDS19: Will Robots Automate Your Job Away? Streamlining Xen Project Contrib...
XPDDS19: Will Robots Automate Your Job Away? Streamlining Xen Project Contrib...XPDDS19: Will Robots Automate Your Job Away? Streamlining Xen Project Contrib...
XPDDS19: Will Robots Automate Your Job Away? Streamlining Xen Project Contrib...The Linux Foundation
 
XPDDS19: Client Virtualization Toolstack in Go - Nick Rosbrook & Brendan Kerr...
XPDDS19: Client Virtualization Toolstack in Go - Nick Rosbrook & Brendan Kerr...XPDDS19: Client Virtualization Toolstack in Go - Nick Rosbrook & Brendan Kerr...
XPDDS19: Client Virtualization Toolstack in Go - Nick Rosbrook & Brendan Kerr...The Linux Foundation
 
XPDDS19: Core Scheduling in Xen - Jürgen Groß, SUSE
XPDDS19: Core Scheduling in Xen - Jürgen Groß, SUSEXPDDS19: Core Scheduling in Xen - Jürgen Groß, SUSE
XPDDS19: Core Scheduling in Xen - Jürgen Groß, SUSEThe Linux Foundation
 

More from The Linux Foundation (20)

ELC2019: Static Partitioning Made Simple
ELC2019: Static Partitioning Made SimpleELC2019: Static Partitioning Made Simple
ELC2019: Static Partitioning Made Simple
 
XPDDS19: How TrenchBoot is Enabling Measured Launch for Open-Source Platform ...
XPDDS19: How TrenchBoot is Enabling Measured Launch for Open-Source Platform ...XPDDS19: How TrenchBoot is Enabling Measured Launch for Open-Source Platform ...
XPDDS19: How TrenchBoot is Enabling Measured Launch for Open-Source Platform ...
 
XPDDS19 Keynote: Xen in Automotive - Artem Mygaiev, Director, Technology Solu...
XPDDS19 Keynote: Xen in Automotive - Artem Mygaiev, Director, Technology Solu...XPDDS19 Keynote: Xen in Automotive - Artem Mygaiev, Director, Technology Solu...
XPDDS19 Keynote: Xen in Automotive - Artem Mygaiev, Director, Technology Solu...
 
XPDDS19 Keynote: Xen Project Weather Report 2019 - Lars Kurth, Director of Op...
XPDDS19 Keynote: Xen Project Weather Report 2019 - Lars Kurth, Director of Op...XPDDS19 Keynote: Xen Project Weather Report 2019 - Lars Kurth, Director of Op...
XPDDS19 Keynote: Xen Project Weather Report 2019 - Lars Kurth, Director of Op...
 
XPDDS19 Keynote: Unikraft Weather Report
XPDDS19 Keynote:  Unikraft Weather ReportXPDDS19 Keynote:  Unikraft Weather Report
XPDDS19 Keynote: Unikraft Weather Report
 
XPDDS19 Keynote: Secret-free Hypervisor: Now and Future - Wei Liu, Software E...
XPDDS19 Keynote: Secret-free Hypervisor: Now and Future - Wei Liu, Software E...XPDDS19 Keynote: Secret-free Hypervisor: Now and Future - Wei Liu, Software E...
XPDDS19 Keynote: Secret-free Hypervisor: Now and Future - Wei Liu, Software E...
 
XPDDS19 Keynote: Xen Dom0-less - Stefano Stabellini, Principal Engineer, Xilinx
XPDDS19 Keynote: Xen Dom0-less - Stefano Stabellini, Principal Engineer, XilinxXPDDS19 Keynote: Xen Dom0-less - Stefano Stabellini, Principal Engineer, Xilinx
XPDDS19 Keynote: Xen Dom0-less - Stefano Stabellini, Principal Engineer, Xilinx
 
XPDDS19 Keynote: Patch Review for Non-maintainers - George Dunlap, Citrix Sys...
XPDDS19 Keynote: Patch Review for Non-maintainers - George Dunlap, Citrix Sys...XPDDS19 Keynote: Patch Review for Non-maintainers - George Dunlap, Citrix Sys...
XPDDS19 Keynote: Patch Review for Non-maintainers - George Dunlap, Citrix Sys...
 
XPDDS19: Memories of a VM Funk - Mihai Donțu, Bitdefender
XPDDS19: Memories of a VM Funk - Mihai Donțu, BitdefenderXPDDS19: Memories of a VM Funk - Mihai Donțu, Bitdefender
XPDDS19: Memories of a VM Funk - Mihai Donțu, Bitdefender
 
OSSJP/ALS19: The Road to Safety Certification: Overcoming Community Challeng...
OSSJP/ALS19:  The Road to Safety Certification: Overcoming Community Challeng...OSSJP/ALS19:  The Road to Safety Certification: Overcoming Community Challeng...
OSSJP/ALS19: The Road to Safety Certification: Overcoming Community Challeng...
 
OSSJP/ALS19: The Road to Safety Certification: How the Xen Project is Making...
 OSSJP/ALS19: The Road to Safety Certification: How the Xen Project is Making... OSSJP/ALS19: The Road to Safety Certification: How the Xen Project is Making...
OSSJP/ALS19: The Road to Safety Certification: How the Xen Project is Making...
 
XPDDS19: Speculative Sidechannels and Mitigations - Andrew Cooper, Citrix
XPDDS19: Speculative Sidechannels and Mitigations - Andrew Cooper, CitrixXPDDS19: Speculative Sidechannels and Mitigations - Andrew Cooper, Citrix
XPDDS19: Speculative Sidechannels and Mitigations - Andrew Cooper, Citrix
 
XPDDS19: Keeping Coherency on Arm: Reborn - Julien Grall, Arm ltd
XPDDS19: Keeping Coherency on Arm: Reborn - Julien Grall, Arm ltdXPDDS19: Keeping Coherency on Arm: Reborn - Julien Grall, Arm ltd
XPDDS19: Keeping Coherency on Arm: Reborn - Julien Grall, Arm ltd
 
XPDDS19: QEMU PV Backend 'qdevification'... What Does it Mean? - Paul Durrant...
XPDDS19: QEMU PV Backend 'qdevification'... What Does it Mean? - Paul Durrant...XPDDS19: QEMU PV Backend 'qdevification'... What Does it Mean? - Paul Durrant...
XPDDS19: QEMU PV Backend 'qdevification'... What Does it Mean? - Paul Durrant...
 
XPDDS19: Status of PCI Emulation in Xen - Roger Pau Monné, Citrix Systems R&D
XPDDS19: Status of PCI Emulation in Xen - Roger Pau Monné, Citrix Systems R&DXPDDS19: Status of PCI Emulation in Xen - Roger Pau Monné, Citrix Systems R&D
XPDDS19: Status of PCI Emulation in Xen - Roger Pau Monné, Citrix Systems R&D
 
XPDDS19: [ARM] OP-TEE Mediator in Xen - Volodymyr Babchuk, EPAM Systems
XPDDS19: [ARM] OP-TEE Mediator in Xen - Volodymyr Babchuk, EPAM SystemsXPDDS19: [ARM] OP-TEE Mediator in Xen - Volodymyr Babchuk, EPAM Systems
XPDDS19: [ARM] OP-TEE Mediator in Xen - Volodymyr Babchuk, EPAM Systems
 
XPDDS19: Bringing Xen to the Masses: The Story of Building a Community-driven...
XPDDS19: Bringing Xen to the Masses: The Story of Building a Community-driven...XPDDS19: Bringing Xen to the Masses: The Story of Building a Community-driven...
XPDDS19: Bringing Xen to the Masses: The Story of Building a Community-driven...
 
XPDDS19: Will Robots Automate Your Job Away? Streamlining Xen Project Contrib...
XPDDS19: Will Robots Automate Your Job Away? Streamlining Xen Project Contrib...XPDDS19: Will Robots Automate Your Job Away? Streamlining Xen Project Contrib...
XPDDS19: Will Robots Automate Your Job Away? Streamlining Xen Project Contrib...
 
XPDDS19: Client Virtualization Toolstack in Go - Nick Rosbrook & Brendan Kerr...
XPDDS19: Client Virtualization Toolstack in Go - Nick Rosbrook & Brendan Kerr...XPDDS19: Client Virtualization Toolstack in Go - Nick Rosbrook & Brendan Kerr...
XPDDS19: Client Virtualization Toolstack in Go - Nick Rosbrook & Brendan Kerr...
 
XPDDS19: Core Scheduling in Xen - Jürgen Groß, SUSE
XPDDS19: Core Scheduling in Xen - Jürgen Groß, SUSEXPDDS19: Core Scheduling in Xen - Jürgen Groß, SUSE
XPDDS19: Core Scheduling in Xen - Jürgen Groß, SUSE
 

Recently uploaded

SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 

Recently uploaded (20)

SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 

XPDS13: Zero-copy display of guest framebuffers using GEM - John Baboval, Citrix

  • 1. Zero-­‐Copy  Display  of  Guest   Framebuffers  using  GEM   John  Baboval   Citrix  Systems,  Inc.   October  24th,  2013  
  • 2. Agenda   •  Xen  video  basics   •  ExisNng  OpNmizaNons   •  GEM   October  24th,  2013   Citrix  Systems,  Inc   2  
  • 3. Overview  of  QEMU  Graphics   (The  quick  version)   QEMU   Video  Device  Driver   VM   HW   UI   (device  specific)   (device  independent)   I/O  port  handlers   dpy_update()     •  Called  by  HW  when   Linear  Framebuffer   scanlines  change       gfx_hw_update()   dpy_refresh()   •  Called  on  interval  to   •  Called  on  interval  to   process  guest  pixel  data   update  display   into  DisplaySurface     DisplaySurface   October  24th,  2013   Citrix  Systems,  Inc   Output   Device   X11,  TCP…   3  
  • 4. Worst  Case  Scenario   •  Emulated  VRAM   domU   dom0   QEMU   Virtual   VRAM   Display   Surface   SDL   Surface   (window)   ComposiNng   Buffer   Back   Buffer   libSDL   X.org   Linux/DRM   Xen   October  24th,  2013   Citrix  Systems,  Inc   4  
  • 5. ExisNng  OpNmizaNons   •  Foreign  Page  Mapping  (Shared  Memory)   domU   dom0   QEMU   Virtual  VRAM   Dirty  Page  Data   Display   Surface   SDL   Surface   (window)   ComposiNng   Buffer   Back   Buffer   libSDL   X.org   Linux/DRM   Xen   October  24th,  2013   Citrix  Systems,  Inc   5  
  • 6. ExisNng  OpNmizaNons   •  Shared  Buffer  Mode  +  Foreign  Page  Mapping   domU   dom0   QEMU   Virtual  VRAM   Display   Surface   Dirty  Page  Data   SDL   Surface   (window)   ComposiNng   Buffer   Back   Buffer   libSDL   X.org   Linux/DRM   Xen   October  24th,  2013   Citrix  Systems,  Inc   6  
  • 7. Graphics  Hardware   (The  REALLY  Short  Version)   •  Systems  commonly  have  a  unified  memory   architecture  (UMA)   –  GPU  is  connected  to  the  same  memory  bus  as  the  CPU   –  Can  scan  directly  out  of  system  RAM   •  UMA  GPUs  have  their  own  virtual  address  space   –  Can  access  any  domain’s  memory  if  the  GPU’s  page   table  is  appropriately  programmed…   –  …and…  well,  it’s  the  REALLY  short  version   October  24th,  2013   Citrix  Systems,  Inc   7  
  • 8. The  Obvious  SoluNon!   •  Map  the  linear  framebuffer  into  the  GPU  page   table   •  Program  the  CRTC  base  address  so  that  the   GPU  scans  out  of  the  framebuffer   •  Simple!   October  24th,  2013   Citrix  Systems,  Inc   8  
  • 9. Unpleasant  Reality   •  GPUs  are  complicated   •  GPU  vendors  are  secreNve   •  GPUs  change  constantly   •  You  probably  want  to  use  your  GPU  for  more   than  one  thing  at  a  Nme   October  24th,  2013   Citrix  Systems,  Inc   9  
  • 10. GEM   •  Linux  already  knows  how  to  program  your  GPU   •  The  API  is  “standardized”   •  …but  we  want  to  tell  it  WHICH  pages  to  use.   October  24th,  2013   Citrix  Systems,  Inc   10  
  • 11. GEM  Objects   •  Basically  a  bunch  of  GPU  specific  state   tracking  and  a  scaner-­‐gather  list  of  pages   •  Add  an  interface  that  fills  in  the  scaner-­‐gather   list  with  the  right  pages   •  Pass  the  object  to  KMS     •  …  but  which  pages?   October  24th,  2013   Citrix  Systems,  Inc   11  
  • 12. Foreign  pages?   •  Mapping  the  guest’s  foreign  pages  provides   virtual  addresses  to  the  memory   •  No  machine  addresses   •  Not  Linux  memory,  so  no  page  structs  to  add   to  the  scaner  gather  list   October  24th,  2013   Citrix  Systems,  Inc   12  
  • 13. Grants?   •  •  •  •  domU  allocates  a  big  grant  table   Creates  a  grantref  for  each  page  in  the  framebuffer   Passes  the  table  address  and  size  to  the  device  model   Grant  mappings  get  added  to  the  m2p_override  table,  so  we   have  page  structs   •  Requires  a  cooperaNve  guest   •  Uses  a  lot  of  grant  refs   •  Sets  up  mappings  that  never  get  used   October  24th,  2013   Citrix  Systems,  Inc   13  
  • 14. Manual  m2p_override   •  Use  the  translate_gpfn_list  hypercall  to  get  a   list  of  MFNs   •  Use  the  m2p_override  infrastructure  from  the   grant  code  to  redirect  pages   •  Use  redirected  pages  in  the  scaner  gather  list   •  No  guest  knowledge   •  No  unnecessary  mappings   October  24th,  2013   Citrix  Systems,  Inc   14  
  • 15. Foreign-­‐backed  GEM  Objects   •  Add  new  ioctl  to  create  i915_gem_foreign_object   •  Standard  GEM  object,  but  override  get_pages  and   put_pages  handlers  using  exisNng  hooks   •  Create  m2p_override  mappings  for  framebuffer   pages   •  Fill  in  the  scaner-­‐gather  list  with  the  overridden   pages   •  Pass  the  object  to  KMS   •  Success!   October  24th,  2013   Citrix  Systems,  Inc   15  
  • 16. New  DRM  ioctl   •  (intel)   •  I915_GEM_FOREIGN   –  In:   •  GFN   •  Size   •  Domain  ID   –  Out:   •  GEM  handle   October  24th,  2013   Citrix  Systems,  Inc   16  
  • 17. ExisNng  OpNmizaNons   •  GEM  Object  +  libDRM  UI   domU   dom0   QEMU   Virtual  VRAM   CRTC   Scanout   Buffer   Linux/DRM   Display   Surface   Xen   October  24th,  2013   Citrix  Systems,  Inc   17  
  • 18. What  to  do  With  Your  GEM  Object   •  Take  over  the  scanout  buffer  of  an  enNre  vt   –  Lowest  runNme  overhead  (none)   –  Requires  source  of  input  events  (/dev/event/*)   •  Convert  it  to  a  Prime  object  for  use  with  DRI2/DRI3  X   extensions   •  Convert  it  to  an  EGL  named  image,  and  bind  it  to  a  texture   –  Hardware  accelerated  framebuffer  tricks   •  •  •  •  Scaling   RotaNon   ComposiNng   Effects   •  Use  it  to  display  XenGT  hardware  accelerated  framebuffers   –  Be  sure  to  see  Haitao  Shan’s  XenGT  presentaNon  tomorrow…   October  24th,  2013   Citrix  Systems,  Inc   18  
  • 19. Demo   October  24th,  2013   Citrix  Systems,  Inc   19