mirror of https://gitee.com/openkylin/qemu.git
cirrus: wrap memory update in a transaction
This prevents spurious unmapping and remapping of the vga windows, which reduces performance. Reviewed-by: Richard Henderson <rth@twiddle.net> Signed-off-by: Avi Kivity <avi@redhat.com>
This commit is contained in:
parent
a4911d6425
commit
64c048f4a8
|
@ -2424,6 +2424,7 @@ static void cirrus_update_memory_access(CirrusVGAState *s)
|
|||
{
|
||||
unsigned mode;
|
||||
|
||||
memory_region_transaction_begin();
|
||||
if ((s->vga.sr[0x17] & 0x44) == 0x44) {
|
||||
goto generic_io;
|
||||
} else if (s->cirrus_srcptr != s->cirrus_srcptr_end) {
|
||||
|
@ -2443,6 +2444,7 @@ static void cirrus_update_memory_access(CirrusVGAState *s)
|
|||
unmap_linear_vram(s);
|
||||
}
|
||||
}
|
||||
memory_region_transaction_commit();
|
||||
}
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue