qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Jan Kiszka <jan.kiszka@web.de>
To: Anthony Liguori <aliguori@us.ibm.com>,
	qemu-devel <qemu-devel@nongnu.org>
Cc: Anthony PERARD <anthony.perard@citrix.com>,
	Avi Kivity <avi@redhat.com>,
	"Michael S. Tsirkin" <mst@redhat.com>
Subject: [Qemu-devel] [PATCH v2 10/13] Drop dirty log start/stop infrastructure
Date: Thu, 23 Jun 2011 13:09:10 +0200	[thread overview]
Message-ID: <4E031ED6.1050804@web.de> (raw)
In-Reply-To: <7e392169046f7464027d3916b9cb081abd1f984d.1308070416.git.jan.kiszka@siemens.com>

From: Jan Kiszka <jan.kiszka@siemens.com>

No more users of vga_dirty_log_start/start, thus also no use anymore for
the log_start/stop CPUPhysMemoryClient callbacks. Drop the whole
infrastructure.

CC: Anthony PERARD <anthony.perard@citrix.com>
CC: Michael S. Tsirkin <mst@redhat.com>
CC: Avi Kivity <avi@redhat.com>
Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
---

Changes in v2:
 - rebased over master, removing the freshly added Xen hooks

Avi, does this match your plans for a new memory API? Or would be end up
reintroducing such callbacks after the refactoring?
---
 cpu-all.h    |    6 ------
 cpu-common.h |    4 ----
 exec.c       |   30 ------------------------------
 hw/vga.c     |   36 ------------------------------------
 hw/vga_int.h |    3 ---
 hw/vhost.c   |    2 --
 kvm-all.c    |   47 -----------------------------------------------
 xen-all.c    |   18 ------------------
 8 files changed, 0 insertions(+), 146 deletions(-)

diff --git a/cpu-all.h b/cpu-all.h
index 880f570..ac81a07 100644
--- a/cpu-all.h
+++ b/cpu-all.h
@@ -1015,12 +1015,6 @@ int cpu_physical_memory_get_dirty_tracking(void);
 int cpu_physical_sync_dirty_bitmap(target_phys_addr_t start_addr,
                                    target_phys_addr_t end_addr);
 
-int cpu_physical_log_start(target_phys_addr_t start_addr,
-                           ram_addr_t size);
-
-int cpu_physical_log_stop(target_phys_addr_t start_addr,
-                          ram_addr_t size);
-
 void dump_exec_info(FILE *f, fprintf_function cpu_fprintf);
 #endif /* !CONFIG_USER_ONLY */
 
diff --git a/cpu-common.h b/cpu-common.h
index b027e43..07379c5 100644
--- a/cpu-common.h
+++ b/cpu-common.h
@@ -112,10 +112,6 @@ struct CPUPhysMemoryClient {
                              target_phys_addr_t end_addr);
     int (*migration_log)(struct CPUPhysMemoryClient *client,
                          int enable);
-    int (*log_start)(struct CPUPhysMemoryClient *client,
-                     target_phys_addr_t phys_addr, ram_addr_t size);
-    int (*log_stop)(struct CPUPhysMemoryClient *client,
-                    target_phys_addr_t phys_addr, ram_addr_t size);
     QLIST_ENTRY(CPUPhysMemoryClient) list;
 };
 
diff --git a/exec.c b/exec.c
index b03b5be..56b95ab 100644
--- a/exec.c
+++ b/exec.c
@@ -2127,36 +2127,6 @@ int cpu_physical_sync_dirty_bitmap(target_phys_addr_t start_addr,
     return ret;
 }
 
-int cpu_physical_log_start(target_phys_addr_t start_addr,
-                           ram_addr_t size)
-{
-    CPUPhysMemoryClient *client;
-    QLIST_FOREACH(client, &memory_client_list, list) {
-        if (client->log_start) {
-            int r = client->log_start(client, start_addr, size);
-            if (r < 0) {
-                return r;
-            }
-        }
-    }
-    return 0;
-}
-
-int cpu_physical_log_stop(target_phys_addr_t start_addr,
-                          ram_addr_t size)
-{
-    CPUPhysMemoryClient *client;
-    QLIST_FOREACH(client, &memory_client_list, list) {
-        if (client->log_stop) {
-            int r = client->log_stop(client, start_addr, size);
-            if (r < 0) {
-                return r;
-            }
-        }
-    }
-    return 0;
-}
-
 static inline void tlb_update_dirty(CPUTLBEntry *tlb_entry)
 {
     ram_addr_t ram_addr;
diff --git a/hw/vga.c b/hw/vga.c
index fdfa3c4..a74f581 100644
--- a/hw/vga.c
+++ b/hw/vga.c
@@ -1570,42 +1570,6 @@ static void vga_sync_dirty_bitmap(VGACommonState *s)
 
 }
 
-void vga_dirty_log_start(VGACommonState *s)
-{
-    if (s->map_addr) {
-        cpu_physical_log_start(s->map_addr, s->map_end - s->map_addr);
-    }
-
-    if (s->lfb_vram_mapped) {
-        cpu_physical_log_start(isa_mem_base + 0xa0000, 0x8000);
-        cpu_physical_log_start(isa_mem_base + 0xa8000, 0x8000);
-    }
-
-#ifdef CONFIG_BOCHS_VBE
-    if (s->vbe_mapped) {
-        cpu_physical_log_start(VBE_DISPI_LFB_PHYSICAL_ADDRESS, s->vram_size);
-    }
-#endif
-}
-
-void vga_dirty_log_stop(VGACommonState *s)
-{
-    if (s->map_addr) {
-        cpu_physical_log_stop(s->map_addr, s->map_end - s->map_addr);
-    }
-
-    if (s->lfb_vram_mapped) {
-        cpu_physical_log_stop(isa_mem_base + 0xa0000, 0x8000);
-        cpu_physical_log_stop(isa_mem_base + 0xa8000, 0x8000);
-    }
-
-#ifdef CONFIG_BOCHS_VBE
-    if (s->vbe_mapped) {
-        cpu_physical_log_stop(VBE_DISPI_LFB_PHYSICAL_ADDRESS, s->vram_size);
-    }
-#endif
-}
-
 /*
  * graphic modes
  */
diff --git a/hw/vga_int.h b/hw/vga_int.h
index 5cd9a6e..73328c2 100644
--- a/hw/vga_int.h
+++ b/hw/vga_int.h
@@ -194,9 +194,6 @@ void vga_init(VGACommonState *s);
 int vga_init_io(VGACommonState *s);
 void vga_common_reset(VGACommonState *s);
 
-void vga_dirty_log_start(VGACommonState *s);
-void vga_dirty_log_stop(VGACommonState *s);
-
 extern const VMStateDescription vmstate_vga_common;
 uint32_t vga_ioport_read(void *opaque, uint32_t addr);
 void vga_ioport_write(void *opaque, uint32_t addr, uint32_t val);
diff --git a/hw/vhost.c b/hw/vhost.c
index 80f771e..b7e6284 100644
--- a/hw/vhost.c
+++ b/hw/vhost.c
@@ -668,8 +668,6 @@ int vhost_dev_init(struct vhost_dev *hdev, int devfd, bool force)
     hdev->client.set_memory = vhost_client_set_memory;
     hdev->client.sync_dirty_bitmap = vhost_client_sync_dirty_bitmap;
     hdev->client.migration_log = vhost_client_migration_log;
-    hdev->client.log_start = NULL;
-    hdev->client.log_stop = NULL;
     hdev->mem = qemu_mallocz(offsetof(struct vhost_memory, regions));
     hdev->log = NULL;
     hdev->log_size = 0;
diff --git a/kvm-all.c b/kvm-all.c
index cbc2532..c95a64d 100644
--- a/kvm-all.c
+++ b/kvm-all.c
@@ -100,24 +100,6 @@ static KVMSlot *kvm_alloc_slot(KVMState *s)
     abort();
 }
 
-static KVMSlot *kvm_lookup_matching_slot(KVMState *s,
-                                         target_phys_addr_t start_addr,
-                                         target_phys_addr_t end_addr)
-{
-    int i;
-
-    for (i = 0; i < ARRAY_SIZE(s->slots); i++) {
-        KVMSlot *mem = &s->slots[i];
-
-        if (start_addr == mem->start_addr &&
-            end_addr == mem->start_addr + mem->memory_size) {
-            return mem;
-        }
-    }
-
-    return NULL;
-}
-
 /*
  * Find overlapping slot with lowest start address
  */
@@ -274,33 +256,6 @@ static int kvm_slot_dirty_pages_log_change(KVMSlot *mem, bool log_dirty)
     return kvm_set_user_memory_region(s, mem);
 }
 
-static int kvm_dirty_pages_log_change(target_phys_addr_t phys_addr,
-                                      ram_addr_t size, bool log_dirty)
-{
-    KVMState *s = kvm_state;
-    KVMSlot *mem = kvm_lookup_matching_slot(s, phys_addr, phys_addr + size);
-
-    if (mem == NULL)  {
-        fprintf(stderr, "BUG: %s: invalid parameters " TARGET_FMT_plx "-"
-                TARGET_FMT_plx "\n", __func__, phys_addr,
-                (target_phys_addr_t)(phys_addr + size - 1));
-        return -EINVAL;
-    }
-    return kvm_slot_dirty_pages_log_change(mem, log_dirty);
-}
-
-static int kvm_log_start(CPUPhysMemoryClient *client,
-                         target_phys_addr_t phys_addr, ram_addr_t size)
-{
-    return kvm_dirty_pages_log_change(phys_addr, size, true);
-}
-
-static int kvm_log_stop(CPUPhysMemoryClient *client,
-                        target_phys_addr_t phys_addr, ram_addr_t size)
-{
-    return kvm_dirty_pages_log_change(phys_addr, size, false);
-}
-
 static int kvm_set_migration_log(int enable)
 {
     KVMState *s = kvm_state;
@@ -679,8 +634,6 @@ static CPUPhysMemoryClient kvm_cpu_phys_memory_client = {
     .set_memory = kvm_client_set_memory,
     .sync_dirty_bitmap = kvm_client_sync_dirty_bitmap,
     .migration_log = kvm_client_migration_log,
-    .log_start = kvm_log_start,
-    .log_stop = kvm_log_stop,
 };
 
 static void kvm_handle_interrupt(CPUState *env, int mask)
diff --git a/xen-all.c b/xen-all.c
index fcb106f..3c87b36 100644
--- a/xen-all.c
+++ b/xen-all.c
@@ -416,22 +416,6 @@ static int xen_sync_dirty_bitmap(XenIOState *state,
     return 0;
 }
 
-static int xen_log_start(CPUPhysMemoryClient *client, target_phys_addr_t phys_addr, ram_addr_t size)
-{
-    XenIOState *state = container_of(client, XenIOState, client);
-
-    return xen_sync_dirty_bitmap(state, phys_addr, size);
-}
-
-static int xen_log_stop(CPUPhysMemoryClient *client, target_phys_addr_t phys_addr, ram_addr_t size)
-{
-    XenIOState *state = container_of(client, XenIOState, client);
-
-    state->log_for_dirtybit = NULL;
-    /* Disable dirty bit tracking */
-    return xc_hvm_track_dirty_vram(xen_xc, xen_domid, 0, 0, NULL);
-}
-
 static int xen_client_sync_dirty_bitmap(struct CPUPhysMemoryClient *client,
                                         target_phys_addr_t start_addr,
                                         target_phys_addr_t end_addr)
@@ -451,8 +435,6 @@ static CPUPhysMemoryClient xen_cpu_phys_memory_client = {
     .set_memory = xen_client_set_memory,
     .sync_dirty_bitmap = xen_client_sync_dirty_bitmap,
     .migration_log = xen_client_migration_log,
-    .log_start = xen_log_start,
-    .log_stop = xen_log_stop,
 };
 
 /* VCPU Operations, MMIO, IO ring ... */

  reply	other threads:[~2011-06-23 11:09 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-06-14 16:53 [Qemu-devel] [PATCH 00/13] vga: dirty log cleanup, more linear mapping Jan Kiszka
2011-06-14 16:53 ` [Qemu-devel] [PATCH 01/13] spice: Use cpu_register_physical_memory_log for dirty log enabling Jan Kiszka
2011-06-15  6:42   ` Gerd Hoffmann
2011-06-15  7:23     ` [Qemu-devel] [PATCH v2 " Jan Kiszka
2011-06-15  8:50       ` Gerd Hoffmann
2011-06-14 16:53 ` [Qemu-devel] [PATCH 02/13] vga-pci: " Jan Kiszka
2011-06-14 16:53 ` [Qemu-devel] [PATCH 03/13] cirrus-vga: Drop redundant vga_dirty_log_start Jan Kiszka
2011-06-14 16:53 ` [Qemu-devel] [PATCH 04/13] vmware-vga: Disable verbose mode Jan Kiszka
2011-06-14 16:53 ` [Qemu-devel] [PATCH 05/13] vmware-vga: Remove dead DIRECT_VRAM mode Jan Kiszka
2011-06-14 16:53 ` [Qemu-devel] [PATCH 06/13] vmware-vga: Eliminate vga_dirty_log_restart Jan Kiszka
2011-06-15 23:48   ` andrzej zaborowski
2011-06-14 16:53 ` [Qemu-devel] [PATCH 07/13] vmware_vga: Do not enable dirty logging when in SVGA mode Jan Kiszka
2011-06-16  0:06   ` andrzej zaborowski
2011-06-14 16:53 ` [Qemu-devel] [PATCH 08/13] vmware-vga: Register reset service Jan Kiszka
2011-06-15 23:55   ` andrzej zaborowski
2011-06-14 16:53 ` [Qemu-devel] [PATCH 09/13] vmware-vga: Use cpu_register_physical_memory_log for dirty log enabling Jan Kiszka
2011-06-16  0:06   ` andrzej zaborowski
2011-06-14 16:53 ` [Qemu-devel] [PATCH 10/13] Drop dirty log start/stop infrastructure Jan Kiszka
2011-06-23 11:09   ` Jan Kiszka [this message]
2011-06-23 11:53     ` [Qemu-devel] [PATCH v2 " Avi Kivity
2011-06-14 16:53 ` [Qemu-devel] [PATCH 11/13] vga: Refactor lfb_vram_mapped to vga_mem_mapped Jan Kiszka
2011-06-14 16:53 ` [Qemu-devel] [PATCH 12/13] vga: Move vga_sync_dirty_bitmap Jan Kiszka
2011-06-14 16:53 ` [Qemu-devel] [PATCH 13/13] vga: Use linear mapping + dirty logging in chain 4 memory access mode Jan Kiszka
2011-06-23 11:11 ` [Qemu-devel] [PATCH 00/13] vga: dirty log cleanup, more linear mapping Avi Kivity
2011-06-23 11:39   ` Jan Kiszka
2011-06-23 11:44     ` Avi Kivity
2011-06-23 11:52       ` Jan Kiszka
2011-06-23 11:54         ` Avi Kivity

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4E031ED6.1050804@web.de \
    --to=jan.kiszka@web.de \
    --cc=aliguori@us.ibm.com \
    --cc=anthony.perard@citrix.com \
    --cc=avi@redhat.com \
    --cc=mst@redhat.com \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).