Is it normal that Write-Combining has no effect on QEMU

Question about which tools to use, bugs, the best way to implement a function, etc should go here. Don't forget to see if your question is answered in the wiki first! When in doubt post here.
Post Reply
devc1
Member
Member
Posts: 439
Joined: Fri Feb 11, 2022 4:55 am
Location: behind the keyboard

Is it normal that Write-Combining has no effect on QEMU

Post by devc1 »

I recently implemented a full Page-Attribute-Table (PAT), With WB as default, and UC, WC, WT, WP... When I activate write combining on the Frame Buffer it doesn't have any effect on QEMU. But it has an 1000x Effect on Real Hardware. I am just curious, is this normal ??
User avatar
iansjack
Member
Member
Posts: 4703
Joined: Sat Mar 31, 2012 3:07 am
Location: Chichester, UK

Re: Is it normal that Write-Combining has no effect on QEMU

Post by iansjack »

devc1
Member
Member
Posts: 439
Joined: Fri Feb 11, 2022 4:55 am
Location: behind the keyboard

Re: Is it normal that Write-Combining has no effect on QEMU

Post by devc1 »

No, My hardware doesn't support HAXM (I only need VMX). I tried Windows on QEMU and since it is well known that it has Write-Combining. It is seen that Graphics in it are veeryyy slow like mines without WC. Is this right ?? QEMU doesn't show any effects with WC ?
Octocontrabass
Member
Member
Posts: 5563
Joined: Mon Mar 25, 2013 7:01 pm

Re: Is it normal that Write-Combining has no effect on QEMU

Post by Octocontrabass »

QEMU's emulated framebuffer is in ordinary RAM. Ordinary RAM does not benefit from write-combining the same way a framebuffer attached to the PCI(e) bus would.
devc1
Member
Member
Posts: 439
Joined: Fri Feb 11, 2022 4:55 am
Location: behind the keyboard

Re: Is it normal that Write-Combining has no effect on QEMU

Post by devc1 »

I agree. So With SSE in QEMU lets say I can write 1 GB in a second. To fill 0-255 colors in a 1920p frame buffer it took almost 2.5 seconds. So, 1920*1080*4 is 8MB then to fill from black to white (255 white shades) you will need 2gb. Considering the latency that QEMU can take to show each of these pixel we can state that we're actually writing to RAM.

This maybe true, or QEMU is just putting on some latency with a Sleep() or a timer.
Post Reply