macOS App Nap feature gradually freezes QEMU process
macOS version: 10.15.2 QEMU versions: 5.2.0 (from MacPorts) 5.2.92 (v6.0.0-rc2-23-g9692c7b0)
If the QEMU window is not visible (hidden, minimized or another application is in full screen mode), the QEMU process gradually freezes: it still runs, but the VM does not respond to external requests such as Telnet or SSH until the QEMU window is visible on the desktop.
This behavior is due to the work of the macOS App Nap function: https://developer.apple.com/library/archive/documentation/Performance/Conceptual/power_efficiency_guidelines_osx/AppNap.html#//apple_ref/doc/uid/TP40013929-CH2-SW1
It doesn't matter how the process is started -- as a background job or as a foreground shell process in case QEMU has a desktop window.
My VM does not have a display output, only a serial line, most likely if the VM was using OpenGL, or playing sound (or any other App Nap triggers), then the problem would never have been detected.
In my case only one starting way without this problem:
sudo stty -tostop
sudo qemu-system-x86_64 -nodefaults
-cpu host -accel hvf -smp 1 -m 384
-device virtio-blk-pci,drive=flash0
-drive file=/vios-adventerprisek9-m.vmdk.SPA.156-1.T.vmdk,if=none,format=vmdk,id=flash0
-device e1000,netdev=local -netdev tap,id=local,ifname=tap0,script=no,downscript=no
-serial telnet:127.0.0.1:49152,server,nowait -display none &
disown
The typical way from the internet to disable App Nap doesn't work: defaults write NSGlobalDomain NSAppSleepDisabled -bool YES