US 12,265,606 B2
Direct assignment of physical devices to confidential virtual machines
Jin Lin, Seattle, WA (US); Jason Stewart Wohlgemuth, Seattle, WA (US); Michael Bishop Ebersol, Woodinville, WA (US); Aditya Bhandari, Seattle, WA (US); Steven Adrian West, Redmond, WA (US); Emily Cara Clemens, Snohomish, WA (US); Michael Halstead Kelley, Redmond, WA (US); Dexuan Cui, Sammamish, WA (US); Attilio Mainetti, Bellevue, WA (US); Sarah Elizabeth Stephenson, Boston, MA (US); Carolina Cecilia Perez-Vargas, Seattle, WA (US); Antoine Jean Denis Delignat-Lavaud, Cambridge (GB); Kapil Vaswani, Karnataka (IN); Alexander Daniel Grest, Redmond, WA (US); Steve Michel Pronovost, Redmond, WA (US); and David Alan Hepkin, Redmond, WA (US)
Assigned to Microsoft Technology Licensing, LLC, Redmond, WA (US)
Filed by Microsoft Technology Licensing, LLC, Redmond, WA (US)
Filed on Sep. 26, 2022, as Appl. No. 17/953,169.
Prior Publication US 2024/0104193 A1, Mar. 28, 2024
Int. Cl. G06F 21/53 (2013.01); G06F 21/60 (2013.01); G06F 21/79 (2013.01); G06F 9/455 (2018.01); G06F 11/30 (2006.01)
CPC G06F 21/53 (2013.01) [G06F 21/602 (2013.01); G06F 21/79 (2013.01); G06F 9/45533 (2013.01); G06F 9/45558 (2013.01); G06F 2009/45587 (2013.01); G06F 2009/45595 (2013.01); G06F 11/301 (2013.01)] 19 Claims
OG exemplary drawing
 
1. A method, implemented in a host computer system that includes a processor, for securely assigning a direct memory access (DMA) physical device associated with the host computer system to a confidential virtual machine (VM) executing at the host computer system, comprising:
creating a guest partition at the host computer system, the guest partition corresponding to a confidential VM and comprising a first guest privilege context and a second guest privilege context, wherein the second guest privilege context executes a guest operating system (OS) and is restricted from accessing memory associated with the first guest privilege context; and
in the first guest privilege context, enabling DMA access by the confidential VM to the physical device, including:
partitioning a guest physical address space of the guest partition into a private physical address space region that is inaccessible by a host OS of the host computer system and a shared physical address space region that is accessible by the host OS;
identifying a direct assignment of the physical device to the guest partition;
determining, based on a policy, that the physical device is allowed to be directly assigned to the guest partition and to be accessible to the guest partition via DMA;
exposing the physical device on a virtual bus used by the second guest privilege context; and
facilitating communication between the physical device and the second guest privilege context via the shared physical address space region, including forwarding interrupts between the guest OS and the physical device.