×

Virtual machine execution tracing

  • US 10,318,332 B2
  • Filed: 04/14/2017
  • Issued: 06/11/2019
  • Est. Priority Date: 04/01/2017
  • Status: Active Grant
First Claim
Patent Images

1. A method performed by a computing device comprising processing hardware and storage hardware, the method comprising:

  • executing a virtualization layer that manages execution of a plurality of virtual machines on the processing hardware, the plurality of virtual machines comprising a first virtual machine comprising a respective first virtual processor and a respective first guest operating system and a second virtual machine comprising a respective second virtual processor and a respective second guest operating system;

    switching, by the virtualization layer, to a first execution context of the first virtual machine, to enable the first guest operating system to issue a plurality of first instructions to the first virtual processor;

    based on the plurality of first instructions being executed by the first virtual processor, recording first execution trace data comprising (i) the plurality of first instructions executed by the first virtual processor, (ii) first memory portions selected for tracing on the basis of the first memory portions storing inputs and/or outputs of the plurality of first instructions, and (iii) a plurality of first ordering markers inserted into the first execution trace data by the virtualization layer, each of the plurality of first ordering markers corresponding to a respective determination that a first orderable event has occurred between two or more of the plurality of first instructions;

    switching, by the virtualization layer, to a second execution context of the second virtual machine, to enable the second guest operating system to issue a plurality of second instructions to the second virtual processor; and

    based on the plurality of second instructions being executed by the second virtual processor, recording second execution trace data comprising (i) the plurality of second instructions executed by the second virtual processor, (ii) second memory portions selected for tracing on the basis of the second memory portions storing inputs and/or outputs of the plurality of second instructions, and (iii) a plurality of second ordering markers inserted into the second execution trace data by the virtualization layer, each of the plurality of second ordering markers corresponding to a respective determination that a second orderable event has occurred between two or more of the plurality of second instructions,wherein the plurality of first ordering markers and the plurality of second ordering markers also enable a determination of causality between the first orderable event at the first virtual machine and the second orderable event at the second virtual machine.

View all claims
  • 1 Assignment
Timeline View
Assignment View
    ×
    ×