Dan Horák wrote:
>and with virt-manager it should be even easier, it will hide all the low
>level details and will present a VM that "just work"

Yes, virt-manager is a handy tool (where available).

Alan Altmark wrote:
>Nice piece of work! (I never realized QEMU was a general purpose
>emulator, capable of doing cross-platform emulation.)

There are some occasionally interesting permutations available, such as:

(a) QEMU on a s390x architecture machine can run guests for other 
processor architectures (ARM, x86, MIPS, etc.) I can easily imagine 
certain interesting, development-related use cases for this capability, 
actually. This'll be in TCG mode. (See below.)

(b) QEMU on a s390x architecture machine can run s390x architecture Linux 
guests. For example, you could run s390x Ubuntu 20.04 LTS (which as a 
minimum IBM z13/first generation LinuxONE model baseline) on an IBM z12 
model machine or prior, although this too would have to run in TCG mode. 
(See below.)

(c) There are Docker/OCI container images for QEMU that can be quite handy 
if you're using Docker, Podman, or some other container runtime. Let's 
assume you have Docker or Podman installed on your favorite Linux 
distribution on your laptop or desktop. For example, to install Podman on 
Red Hat Enterprise Linux (RHEL), use these commands:

sudo yum install podman-docker
sudo touch /etc/containers/nodocker

The second command is optional and suppresses a warning message that 
Podman is not Docker.

OK, now try these commands. To display the processor architecture of the 
host Linux operating system:

uname -m

Now try running the same command but in a s390x architecture Ubuntu 
container image:

sudo docker run  --rm -t s390x/ubuntu uname -m

Here I'm assuming you have a network connection to Docker Hub to pull down 
the Ubuntu container image. If you're not running on a s390x architecture 
machine then you should get an error message. OK, let's fix that....

sudo docker run --rm --privileged multiarch/qemu-user-static --reset -p 
yes
sudo docker run --rm -t s390x/ubuntu uname -m

Magic! :-) If you like, try some other commands and see what else you can 
do.

Mark Post wrote:
>It always has been, but SUSE, for example, has never built it with that
>option for our products because the performance is rather horrible.

When you're running a s390 or s390x architecture guest in QEMU, it's 
typically using the fallback TCG accelerator. TCG stands for Tiny Code 
Generator. TCG consists of a frontend and a backend. The frontend 
translates the guest's processor instructions to intermediate/"universal" 
TCG operations. The backend then translates TCG operations into the host 
processor's instructions. This TCG path is written in C/C++ so it's highly 
portable, and it also tends to be correct. It's not particularly designed 
for performance, although the developers still use the word "accelerator" 
since it's faster than earlier technologies.

When the QEMU host is a s390x machine you can run a s390 or s390x guest 
using the KVM accelerator as long as the emulated guest's model profile is 
no higher than the host. That's quite fast since it's basically 
passthrough, but why? Well, the reason you might do that is to emulate an 
earlier machine model environment (a subset) on a later machine model. 
That could be useful for certain functional testing.

More information on QEMU's s390x guest support is available here:

https://www.qemu.org/docs/master/system/target-s390x.html

- - - - - - - - - -
Timothy Sipples
I.T. Architect Executive
Digital Asset & Other Industry Solutions
IBM Z & LinuxONE
- - - - - - - - - -
E-Mail: sipp...@sg.ibm.com

----------------------------------------------------------------------
For LINUX-390 subscribe / signoff / archive access instructions,
send email to lists...@vm.marist.edu with the message: INFO LINUX-390 or visit
http://www2.marist.edu/htbin/wlvindex?LINUX-390

Reply via email to