qemu-kvm: Drop vga dirty logging workarounds
PATCH RESEND 1/1 qemu-kvm: Drop vga dirty logging workarounds
These diffs to upstream should all date back to the days qemu-kvm supported vga dirty logging with restricted/broken kvm kernel modules. We no longer do, so there is no need for those workarounds. Even worse they can trigger internal bug checks these days:
BUG: kvm_dirty_pages_log_change: invalid parameters 00000000000a8000-00000000000affff
---
When the log_start/stop callbacks are upstream and about to be merged back, you likely want this patch to be applied first. :)
hw/cirrus_vga.c | 16 ---------------- hw/vga-pci.c | 2 -- hw/vga.c | 44 ++++++++------------------------------------ 3 files changed, 8 insertions(+), 54 deletions(-)
hw/cirrus_vga.c +0 -16
@@ -32,7 +32,6 @@#include "console.h" #include "vga_int.h" #include "kvm.h" -#include "qemu-kvm.h" #include "loader.h" /*
@@ -2488,7 +2487,6 @@ static CPUWriteMemoryFunc * const cirrus_linear_bitblt_write[3] = {static void map_linear_vram (CirrusVGAState *s) { -vga_dirty_log_stop (&s->vga);if (!s->vga.map_addr && s->vga.lfb_addr && s->vga.lfb_end) { s->vga.map_addr = s->vga.lfb_addr; s->vga.map_end = s->vga.lfb_end;
@@ -2501,16 +2499,11 @@ static void map_linear_vram(CirrusVGAState *s)#ifndef TARGET_IA64 s->vga.lfb_vram_mapped =0 ; -cpu_register_physical_memory (isa_mem_base +0xa0000 ,0x8000 , - (s->vga.vram_offset + s->cirrus_bank_base[0 ]) |IO_MEM_UNASSIGNED ); -cpu_register_physical_memory (isa_mem_base +0xa8000 ,0x8000 , - (s->vga.vram_offset + s->cirrus_bank_base[1 ]) |IO_MEM_UNASSIGNED );if (!(s->cirrus_srcptr != s->cirrus_srcptr_end) && !((s->vga.sr[0x07 ] &0x01 ) ==0 ) && !((s->vga.gr[0x0B ] &0x14 ) ==0x14 ) && !(s->vga.gr[0x0B ] &0x02 )) { -vga_dirty_log_stop (&s->vga);cpu_register_physical_memory (isa_mem_base +0xa0000 ,0x8000 , (s->vga.vram_offset + s->cirrus_bank_base[0 ]) |IO_MEM_RAM ); cpu_register_physical_memory(isa_mem_base + 0xa8000, 0x8000,
@@ -2529,7 +2522,6 @@ static void map_linear_vram(CirrusVGAState *s)static void unmap_linear_vram (CirrusVGAState *s) { -vga_dirty_log_stop (&s->vga);if (s->vga.map_addr && s->vga.lfb_addr && s->vga.lfb_end) { s->vga.map_addr = s->vga.map_end =0 ; cpu_register_physical_memory(s->vga.lfb_addr, s->vga.vram_size,
@@ -2537,8 +2529,6 @@ static void unmap_linear_vram(CirrusVGAState *s) }cpu_register_physical_memory (isa_mem_base +0xa0000 ,0x20000 , s->vga.vga_io_memory); - -vga_dirty_log_start (&s->vga); }/* Compute the memory access functions */
@@ -3073,8 +3063,6 @@ static void cirrus_pci_lfb_map(PCIDevice *d, int region_num, {CirrusVGAState *s = &DO_UPCAST (PCICirrusVGAState, dev, d)->cirrus_vga; -vga_dirty_log_stop (&s->vga); -/* XXX: add byte swapping apertures */ cpu_register_physical_memory (addr, s->vga.vram_size, s->cirrus_linear_io_addr);
@@ -3106,14 +3094,10 @@ static void pci_cirrus_write_config(PCIDevice *d,PCICirrusVGAState *pvs =DO_UPCAST (PCICirrusVGAState, dev, d);CirrusVGAState *s = &pvs->cirrus_vga; -vga_dirty_log_stop (&s->vga); -pci_default_write_config (d, address, val, len);if (s->vga.map_addr && d->io_regions[0 ].addr ==PCI_BAR_UNMAPPED ) s->vga.map_addr =0 ;cirrus_update_memory_access (s); - -vga_dirty_log_start (&s->vga); }static int pci_cirrus_vga_initfn (PCIDevice *dev)
hw/vga-pci.c +0 -2
@@ -65,11 +65,9 @@ static void pci_vga_write_config(PCIDevice *d,PCIVGAState *pvs =container_of (d, PCIVGAState, dev);VGACommonState *s = &pvs->vga; -vga_dirty_log_stop (s);pci_default_write_config (d, address, val, len);if (s->map_addr && pvs->dev.io_regions[0 ].addr ==-1 ) s->map_addr =0 ; -vga_dirty_log_start (s); }static int pci_vga_initfn (PCIDevice *dev)
hw/vga.c +8 -36
88 lines not on this page · raw message
Signature · 1 line
1.7.1
Marcelo Tosatti
AppliedQuoted 5 lines · Jan Kiszka
These diffs to upstream should all date back to the days qemu-kvm supported vga dirty logging with restricted/broken kvm kernel modules. We no longer do, so there is no need for those workarounds. Even worse they can trigger internal bug checks these days:
Quoted 7 lines
BUG: kvm_dirty_pages_log_change: invalid parameters 00000000000a8000-00000000000affffSigned-off-by Jan Kiszka <[email protected]>---
When the log_start/stop callbacks are upstream and about to be merged back, you likely want this patch to be applied first. :)
Applied, thanks.