Skip to contentSkip to conversation

vexpress: Framebuffer broken with KVM enabled

DISCUSSION Jan Kiszka 3 participants 5 messages Feb 16, 2015

Subsystems (2)
lore
Share & tools
lore

Jan Kiszka

author
#0 lore raw

Hi,

next issue related to KVM/QEMU on the TK1: The guest image I'm running gives proper framebuffer output when in emulation mode. Once KVM is enabled, the screen is - at best - only initially updated. Sometimes I see the famous tux images and a bit of the console texts, but usually it stays black. Explanations?

Jan

#1 lore raw
Quoted 7 lines · Jan Kiszka

Hi,

next issue related to KVM/QEMU on the TK1: The guest image I'm running gives proper framebuffer output when in emulation mode. Once KVM is enabled, the screen is - at best - only initially updated. Sometimes I see the famous tux images and a bit of the console texts, but usually it stays black. Explanations?

The QEMU accesses Guest Video RAM (or any portion of Guest RAM) as cacheable user space memory. The Guest Kernel might access Guest Video RAM as non-cacheable to maintain coherency with video device. If this is the case then all updates by Guest kernel to Guest Video RAM will not be visible to QEMU.

--
Anup

Quoted 6 lines

Jan
_______________________________________________
kvmarm mailing list
[email protected]
https://lists.cs.columbia.edu/mailman/listinfo/kvmarm

author
#2 lore raw
Quoted 9 lines · Anup Patel
Quoted 7 lines · Jan Kiszka

Hi,

next issue related to KVM/QEMU on the TK1: The guest image I'm running gives proper framebuffer output when in emulation mode. Once KVM is enabled, the screen is - at best - only initially updated. Sometimes I see the famous tux images and a bit of the console texts, but usually it stays black. Explanations?

Quoted 5 lines

The QEMU accesses Guest Video RAM (or any portion of Guest RAM) as cacheable user space memory. The Guest Kernel might access Guest Video RAM as non-cacheable to maintain coherency with video device. If this is the case then all updates by Guest kernel to Guest Video RAM will not be visible to QEMU.

On x86, we manage such RAM as coalesced MMIO region, sync'ing it periodically or on specific register accesses into the video card model. I suppose there is nothing like this for the pl111 yet, right?

Jan

#3 lore raw
In reply to Anup Patel
Quoted 7 lines · Jan Kiszka

Hi,

next issue related to KVM/QEMU on the TK1: The guest image I'm running gives proper framebuffer output when in emulation mode. Once KVM is enabled, the screen is - at best - only initially updated. Sometimes I see the famous tux images and a bit of the console texts, but usually it stays black. Explanations?

Hello Jan,

If you want to force rendering, you can do something similar with the following hack:
https://github.com/virtualopensystems/qemu/commit/64dd1b3e3a2353433edb9c63d00271f515bd06fb

Of course expect performance to not be up to par.

Best regards.

_______________________________________________
kvmarm mailing list
[email protected]
https://lists.cs.columbia.edu/mailman/listinfo/kvmarm

author
#4 lore raw
Quoted 9 lines · Alexander Spyridakis
Quoted 7 lines · Jan Kiszka

Hi,

next issue related to KVM/QEMU on the TK1: The guest image I'm running gives proper framebuffer output when in emulation mode. Once KVM is enabled, the screen is - at best - only initially updated. Sometimes I see the famous tux images and a bit of the console texts, but usually it stays black. Explanations?

Quoted 7 lines

Hello Jan,

If you want to force rendering, you can do something similar with the following hack:
https://github.com/virtualopensystems/qemu/commit/64dd1b3e3a2353433edb9c63d00271f515bd06fb

Of course expect performance to not be up to par.

Yep, confirmed - both that it works and that it's slow (better not try this with SDL, exported via X...).

Thanks,
Jan