Anthony Liguori wrote: > Can you provide a high-level description of how this virtualization > mechanism works? Very well. First of all, userspace allocates regular memory via malloc() or mmap()s a file. The user address space will equals the virtual machines address space, user space can define an address offset where the virtual machine starts and can define a maximum size of the virtual machine. Both is set in each of the SIE control blocks. Userspace uses open/read/close to read a kernel image into its proper location.
Next, userspace launches a set of pthreads. Each pthread corresponds with a virtual CPU, and each pthread calls the sys_s390host_add_cpu system call. Now the first CPU enters sys_sie to start interpretive execution via sys_s3900host_sie. The CPU will run the virtual cpu context for a while and exit again with an intercept code that indicates the reason for the exit. Now userspace deals with that, and enters sys_s390host_sie again. Later on, all other CPUs get started via an interprocessor signal SIGP. Userspace will also receive this as SIE intercept. Now all pthreads representing the different virtual CPUs will enter the virtual machine context simultaneously. Interprocessor signals (need_resched and such) are handled by the hardware as long as the sender and receiver are both in virtual context. Otherwise, userspace will get control again. In the end, when the machine is halted (or panics), all CPUs will return with an intercept code indicating that execution has ended for this CPU. Userspace will now call sys_s390host_remove_cpu to free things up, then userspace will exit(). > How does MMU virtualization work? s390 does have hardware support for memory management for virutalized environments. The first patch of this series introduces an extension to the page table entry, that tracks dirty/reference bits for host and virtual machine seperately. For the guest, our CPU does transparently merge the real dirty and reference bits stored in a storage key and in the page table entry extension. The virutal machine can set up its own page tables inside the box and use dynamic address translation. This does not require intervention by the host, except that it needs to do its part of dirty and reference tracking in the extended page table entry explicitly. cheers, Carsten ------------------------------------------------------------------------- This SF.net email is sponsored by DB2 Express Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now. http://sourceforge.net/powerbar/db2/ _______________________________________________ kvm-devel mailing list kvm-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/kvm-devel