FlashBack: Mobile VR

  • Virtual reality applications are extremely graphically demanding and cannot be rendered with full quality on today's weak mobile devices, at least not with a high framerate and low latency. We develop FlashBack, a novel solution which pregenerates a subset of all possible views in a virtual environment into a cache of frames, and then delivers and adjusts these frames for live playback on a mobile device. We distribute the cache across the three-tier storage hierarchy available on mobile devices (GPU VRAM, System RAM, and persistent Flash storage) to realize both high performance and support for large, flexible virtual environments, even with dynamically moving or animated objects. FlashBack offers desktop-quality VR experiences on mobile devices with low latency, high framerate, and excellent energy efficiency.

Scheduler-aware Interrupt Coalescing on Xen

  • Interrupt coalescing is an excellent way to reduce the CPU overhead of delivering interrupts to guests in a virtualized environment. Unfortunately, software interrupt coalescing is wholly absent from the Xen VMM. This project adds traditional coalescing to Xen in the style of VMware's vIC paper, which improves throughput at the cost of increased latency. We reduce this latency increase and even improve throughput by adding scheduler awareness to the coalescing algorithm, enabling the driver domain (dom0) avoid delivering coalesced interrupts to guest domains at inopportune times.
  • Technical Report: PDF     Slides: PDF
    Hypervisor source repository: GitHub
    Driver Domain (dom0) kernel source repository: GitHub

Rio: Mobile I/O Sharing

  • In Unix-like operating systems, everything is abstracted as a file. Device files are the files that abstract I/O devices. We have built Rio, an I/O sharing solution between mobile systems using device files as the boundary, and published this work in MobiSys 2014 where it received Best Paper.

Paradice: I/O Virtualization

  • In Unix-like operating systems, everything is abstracted as a file. Device files are the files that abstract I/O devices. We have explored virtualizing I/O devices using device files as the boundary in this work, published in ASPLOS 2014.

Miscellaneous Paper Presentations