Paravirtual USB System for Multi-Touch Input Virtualization
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current virtualization environments cannot pass through multi-touch and gesture-based inputs from actual hardware to a virtualized environment, and other input devices are not efficiently virtualized.
Innovation Solution
A hardware device is virtualized by detecting input at a human interface device, notifying a control domain, determining the intended guest domain, and passing the input to it, using a hypervisor to receive input interrupts and generate HID-compliant events, which are then routed to a virtual input device on a virtual PCI bus, allowing the guest domain to recognize and drive the virtual device as a HID-compliant device.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If traditional virtualization environments are used, then system stability and security are maintained, but input devices cannot be passed through to virtual machines
Solution Approach 1:
The patent introduces a paravirtual USB system as an intermediary layer between physical input devices and virtual machines. This paravirtual device driver in the control domain acts as a mediator that intercepts USB input events, processes them through HID-compliant event generation, and routes them to the appropriate guest domain. This intermediary approach enables input device virtualization without requiring fundamental changes to the host virtualization architecture, thus resolving the contradiction between adding versatility and maintaining system simplicity.
2Ease of operation
If physical input devices are directly accessed by virtual machines, then input functionality is achieved, but system security and isolation are compromised
Solution Approach 1:
The paravirtual USB system serves as a secure intermediary that all input events must pass through. The control domain's paravirtual device driver intercepts USB events before they reach the guest domain, allowing the system to maintain security isolation while providing input functionality. The driver can validate, filter, and route events appropriately, ensuring that virtual machines access input devices through a controlled interface rather than direct physical access.
Solution Approach 2:
The system creates virtual copies of input devices within the guest domain through HID-compliant event generation. Instead of giving direct access to physical devices, the paravirtual driver generates standardized HID events that replicate the behavior of physical input devices. This copying approach allows virtual machines to operate with virtual input devices that mimic real device functionality while maintaining the security boundaries of the virtualization environment.
3Productivity
If multiple virtual machines share input devices, then resource utilization improves, but input event routing complexity increases
Solution Approach 1:
The paravirtual USB system implements a universal event routing mechanism that handles multiple virtual machines through a single standardized interface. The paravirtual device driver in the control domain provides multi-functional capability to route USB events to any active guest domain that has input focus. This universal routing approach allows efficient resource utilization across multiple VMs without requiring complex individual routing logic for each machine, as the system dynamically determines event destination based on current focus state.
Data Source
AI summary
Methods and systems for performing device virtualization are described herein. Hardware devices may be virtualized for use by multiple operating system instances executing on a single device. The device may be virtualized by detecting input at the device, notifying a control domain of the input, the control domain determining a virtual machine (e.g., a guest domain) for which the input is intended, and passing the input from the control domain to the guest domain. There may be multiple guest domains on the device, each capable of receiving input from the hardware being virtualized. The virtualized hardware may include, e.g., a digitizer such as a touch digitizer capable of recognizing multiple concurrent inputs. Other hardware devices can also be virtualized. Virtualization may be performed using device emulation in the control domain, or using USB passthrough, among other techniques.


