andrijapanicsb opened a new issue, #13806:
URL: https://github.com/apache/cloudstack/issues/13806

   ## Summary
   
   On KVM, CloudStack does not specify a video model unless `vm.video.hardware` 
(agent
   property) or the `video.hardware` VM setting is set. libvirt then falls back 
to its
   x86 default, **cirrus** — a device QEMU deprecated years ago. With Windows 
Server 2025
   **Core**, the guest boots fine but the console never renders: `LogonUI.exe` 
stays
   completely blank (mouse cursor moves, keyboard input incl. Ctrl-Alt-Del is 
delivered,
   qemu-guest-agent works — only the display output is missing). The VM is 
effectively
   unusable via the console.
   
   Switching the same VM to `video.hardware=vga` renders the logon UI 
immediately.
   
   Reported against 4.22/4.23-era code; the selection logic is unchanged on main
   (`LibvirtComputingResource.createVideoDef()`: uses `vm.video.hardware`, 
default null →
   no `<video>` model emitted → libvirt default cirrus).
   
   ## Reproduction (A/B on the same VM)
   
   Environment: EL9 KVM host (qemu-kvm 9.x), CloudStack KVM agent, guest = 
Windows Server
   2025 Standard Evaluation, **Server Core**, UEFI (OVMF), q35, virtio disk/NIC.
   
   1. Start the VM with no video setting → libvirt gives `<model type='cirrus' 
vram='16384'/>`.
      - Guest boots (qemu-guest-agent responds, `guest-exec` works, CPU active).
      - Console: LogonUI window frame visible, content area entirely black. 
Mouse moves,
        Ctrl-Alt-Del (sent via console and via `virsh send-key`) is accepted 
but nothing
        ever paints. (Screenshots available; can attach on request.)
   2. Stop the VM, set VM setting `video.hardware=vga` (+ `video.ram=32768`), 
start.
      - Same boot, console immediately shows `Press Ctrl-Alt-Del to unlock` at 
high
        resolution. (Screenshot available.)
   
   Data point narrowing the scope: a **Desktop Experience** (full UI) Windows 
Server 2025
   deployed on the same platform renders on cirrus — the total render failure 
appears
   specific to **Server Core**'s minimal logon/display stack. (Cirrus is still 
limited to
   1024x768-ish modes and 16 MB VRAM for every guest.)
   
   ## Why cirrus is the wrong default in 2026 (references)
   
   1. **QEMU deprecation warning, emitted live on EL9** when CloudStack starts 
such a VM:
      `qemu-kvm: warning: 'cirrus-vga' is deprecated, please use a different 
VGA card instead`
   2. **QEMU switched its own default** away from cirrus to `-vga std` in 
**QEMU 2.2 (2014)**
      (see QEMU 2.2 changelog).
   3. **Gerd Hoffmann (QEMU display maintainer), "qemu: using cirrus considered 
harmful"**
      (kraxel.org, 2014): 16 MB VRAM ceiling, no modes beyond 1024x768@24bpp, 
depends on
      ancient guest drivers; recommends stdvga for Windows guests.
   4. **Ecosystem defaults**: virt-manager/virt-install (via libosinfo) select 
vga/QXL/virtio
      for modern guests; Proxmox VE defaults to std VGA; OpenStack Nova moved 
its default
      video model off cirrus. CloudStack is the outlier by inheriting libvirt's 
legacy default.
   
   ## Proposal
   
   - Emit an explicit `<video>` model on KVM instead of inheriting libvirt's 
cirrus default.
     `vga` (standard VBE) is the conservative candidate — every mainstream OS 
since ~2005
     drives it with inbox drivers; virtio-gpu could be opt-in where guest 
drivers exist.
   - A default change needs an OS render matrix (Windows 7/10/11, Server 
2016-2025 Core and
     Desktop, EL7-9, Ubuntu LTS, FreeBSD) — listing it here explicitly so the 
scope is clear.
   - At minimum until then: document that Windows Server 2025 Core requires
     `video.hardware=vga`, and consider defaulting vga for Windows guest-OS 
types.
   
   ## Workarounds (verified)
   
   - Per VM: settings `video.hardware=vga`, `video.ram=32768` (stopped VM), 
then start.
   - Per host: agent property `vm.video.hardware=vga` in `agent.properties`.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to