From: [email protected] <[email protected]> On Behalf Of Harold Grovesteen
Sent: Wednesday, March 27, 2024 2:58 PM
To: [email protected]
Subject: Re: [h390-vm] Virtual Machine Memory?
Thanks so much for your responses.
My first question, can the VM's memory contents be "extracted" from the virtual machine and this content be moved from the VM system for processing is in fact possible.? Is it worth doing?? It is clear if I were to go in that direction, it would be a separate utility.
As is frequent with such questions, the concept got expanded somewhat.? Happy to see it stimulated a few "grey/gray cells". ?
I appreciate the suggestion of how to do this with a VM system.? However, I do not have a running VM system.? I gave up all personal interest in system administration of all sorts by the time I retired.? If someone is willing to produce such a dump in a form my Linux PC could read, I would appreciate it.? If not I understand that too.? It would give me an idea of whether this separate utility might be worth looking at developing.
Just a little background:
I have been working on a bare-metal development system (SATK) used outside of a mainframe.? My frustrations working on OpenSolaris support in Hercules drove me to realizing this tool would be of value.? A lot of Hercules tests now use SATK.? My work with QEMU finally drove me to work on closing the loop by producing a memory dump for this development system.
This is unlike your usual experience where everything is developed within VM (CMS), run on VM, and the output examined on VM.? In the SATK environment the bare-metal program is build outside the mainframe, loaded into it, and the output's destination, in this case a dump, is also outside the mainframe, the PC.
Again, thanks so much.? I have a fully working version for the S/370 world.? Does anyone know if this list supports attachments?
Harold Grovesteen
On 3/27/24 04:07, Frank D. Engel, Jr. wrote:
Wondering if the proposed new command could actually be added at the CP level instead of the CMS/MVS level.
CP might save the state of the machine to a prepared location in DASD then restore it when the user next logs in, essentially mimicking the VMWare (for example) suspend/restore capability.? Users can already disconnect and leave the machine intact to reconnect to it later (even leaving it running in the background), so from a user perspective this would extend that with the option to reconnect to it even after a shutdown / re-ipl of VM, but without leaving it running in between.
There would obviously be limits to this when working with dedicated hardware, but for virtualized hardware as with a typical CMS machine, I would think it could be done (granted with a fair amount of effort)?
?
On 3/27/24 00:23, Bertram Moshier wrote:
Hello Harold,
What you desire doesn't exist in VM/370 today, but it is possible.? Cray Supercomputers are real memory systems that use swapping to allow multiple users to use the same real memory space.? IBM went with paging for its solution to this problem.? Seymore Cray rejected this method because it added around seven cycles?to each operation referencing?memory.
Let us see if I understand you correctly.? You want to take a snapshot of a virtual machine's memory (e.g., 0 to maximum storage size of the machine).? How you accomplish this depends upon what you want to do with the image and the memory methodology used by the users' virtual machine operating system.
There are two methods for collecting a copy of the memory for offline examination.? They are:
1) Copy the state of the virtual machine to a binary file.? What we used for the Cray IBM VM Station. When an error occurred, the station would dump all of its memory, registers, etc., to a file. We had tools to examine the station and even run it to the point of failure. (We would use the internal trace to simulate the interrupts and data transmissions (to and from the Cray and users' virtual machines).) This improved the station's stability?so we could catch coding and design issues before shipping the product to customers.
2)? You could (as Bob suggested) use the existing CP DUMP command.? A better solution would be to allow CP to dump the data more than the printer.
On the other hand, if you want to stop and restart an operating system without regard to space or time and support both paging and swapping, you will need to add a new command to the operating system. This would be similar to Windows hibernation but with more functionality.? As this new command is at the operating system level (e.g., MVS), it would support both real and virtual environments.
?
?
For my Stand Alone Tool Kit project I am working on the ability to
create a formatted memory dump.? It depends upon preserving the
machine's memory in a host (Windows, Linux, etc.) platform's host file
system.? With Hercules this is accomplished using the Hercules command
'savecore'.
SATK is sometimes used with z/VM virtual machines.? So, I am asking:
is it possible to transfer the contents of a virtual machine's physical
(absolute storage) memory out of VM (any version, VM/370 or z/VM) in any
manner at all?
The assumption is that a bare-metal program has been executing within
the virtual machine, so CMS is out of the picture.? This would strictly
be CP commands as I understand things.
Assuming the storage contents exists outside of the virtual machine,
whatever format that turns out to be, can be manipulated for use by the
dump program.? Separate problem for later.
Note, I am not opposed to a programmatic approach from within the
virtual machine embedded within the bare-metal program if required to
get the memory content out of the virtual machine, BUT only if that is
the only way.
Asking the experts...
Harold Grovesteen