VMware

« Rethinking the VM creation experience | Main | Using the VMware Visual Studio plugin »

April 10, 2008

Enhanced Execution Record / Replay in Workstation 6.5

By now, many of you have probably heard about the newly enhanced “execution record / replay” feature of Workstation 6.5. You may remember this feature being originally introduced (experimentally) in Workstation 6, and may even have some experience trying it out. However, for a lot of people this is still an entirely new concept, so let us take a step back for a minute…

 

So, what exactly is this feature about? What can you do with it and what’s so awesome about is it?

 

Execution record and replay does exactly what its name implies – it allows you to record the execution of your virtual machine, and then to play it back later. This is where you may think “Oh, just like a movie, right?” Well, actually, not at all. :)

 

It’s not just some movie or a video recorded session – but, rather, much more then that. We are talking about literally recording the entire execution of your VM as it happens. Not just what you see, but everything that happens under the hood as well. Events, interrupts, memory, changes to disk contents, input and output… everything. And when you replay, you essentially get a carbon copy of what your entire VM was like at the same point while recording. All of the execution happens deterministically and in exactly the same fashion as it did while it was recorded! And, since we only record asynchronous events instead of interpreting every instruction to do this, we have a fairly low performance overhead.

 

So, what’s so cool about that? Well, one advantage of execution record / replay is its interactivity. For instance, let’s say that you decided while replaying a session that you would have liked to do something different then what was done at record time. Maybe you want to alter some of your actions half-way thorough the recording, or change the settings of some software running on the VM. Well, you can “take the VM live” as we call it – essentially, stop replaying and start interacting “live” with it from exactly the point of your choice. I guess one could think of the recorded session as prolonged super-snapshot of the VM over a long period of time, which allows you access and modification of said VM at any point during this time.

 

And if that’s not exciting enough for you, let me give you another example of this feature’s power. As everyone who writes code knows, code tends to have bugs. And some bugs, like cockroaches, tend to be worse then others. Anyone who has ever had to deal with a deadlock, a race condition, or any timing-related issue for that matter knows just how annoying and difficult these problems can be. You are sitting there all pumped up and ready to fix the problem, but Murphy’s Law guarantees that it just refuses to even happen for you in the first place – despite anything your try. But sure enough, the second someone else uses your application – or, better yet, you try to demo it – there it is. Sigh. And you are just left wishing you could somehow magically capture the bug as it happens, to be able to investigate it later… But wait, VMware has just right kind of magic! Record the execution of your VM, catch the issue in action once, and then have eternal access to it with the virtual debugger. (Check out Slava’s blog http://stackframe.blogspot.com/ for more details and cool info on debugging inside the guest.)

 

Well, enough of that. Let’s get to the cutting-edge stuff. What is actually new in WS 6.5 as compared to the experimental record / replay in WS 6? Quite a lot of things:

 

Enhanced Support:

- Execution record and replay for 32-bit guests on Intel P4, Core2, and Penryn

- Execution record and replay for 64-bit guests on Intel Penryn processors

- Support for CD-ROM devices

- Support for USB controllers

- Support for SCSI

- Support for LSI

 

Enhanced RecordBeta1record_10

- Save the state of the VM in “Markers” while recording, for faster access during replay.

- Set up disk space quota to limit how large your recording can grow.

- Set up automatic Markers, which get taken periodically as you leave your VM.

- Take a “rolling recording”, only saving the last ~30 minutes of it for example.

- Use VAssert to add replay-time only assertions to your applications.

 

Enhanced Replay:Beta1replay_4

- Easily control replay by pausing, changing replay speed, and going live at will.

- Browse the recording by dragging the play slider around and getting a pre-view of the guest state.

- Randomly access any point in the recording by dropping
                the slider at the target location.

- Add additional Marker points during Replay near points of interest.

- Crop your recording from the beginning or from the end at any Marker.

 

Overall, there are lots of new and cool things in store for you. Execution record / replay is a very powerful feature, so much in fact that it can difficult to truly grasp all of its aspects without trying it out for yourself. And that’s exactly what I urge everyone to do!

 

 

(Thanks to ksc, trowbrds, and slava_malyugin for their help and input.)

 

TrackBack

TrackBack URL for this entry:
http://www.typepad.com/services/trackback/6a00d8341c328153ef00e551da20f48834

Listed below are links to weblogs that reference Enhanced Execution Record / Replay in Workstation 6.5:

Comments

Where can I find more information about vassert? Google didn't return anything. :-(

The programming guide for VAssert can be found here:

http://www.vmware.com/products/beta/ws/VAssert.pdf

As well as other documentation related to the Workstation 6.5 beta, found here:

http://communities.vmware.com/community/beta/workstation6.5

Post a comment

If you have a TypeKey or TypePad account, please Sign In