From: Marc-André Lureau <marcandre.lureau@redhat.com>
The replay iteration logic has been moved into the RamDiscardManager,
which now iterates at source granularity using is_populated(). The
source-level replay_populated/replay_discarded methods and their
helpers are no longer called.
Remove the now-dead replay methods, the VirtIOMEMReplayData struct,
the virtio_mem_for_each_plugged/unplugged_section() helpers (only used
by the replay methods), and the virtio_mem_section_cb typedef.
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
---
hw/virtio/virtio-mem.c | 112 -----------------------------------------
1 file changed, 112 deletions(-)
diff --git a/hw/virtio/virtio-mem.c b/hw/virtio/virtio-mem.c
index ec165503205..2b67b2882d2 100644
--- a/hw/virtio/virtio-mem.c
+++ b/hw/virtio/virtio-mem.c
@@ -259,72 +259,6 @@ static int virtio_mem_for_each_plugged_range(VirtIOMEM *vmem, void *arg,
return ret;
}
-typedef int (*virtio_mem_section_cb)(MemoryRegionSection *s, void *arg);
-
-static int virtio_mem_for_each_plugged_section(const VirtIOMEM *vmem,
- const MemoryRegionSection *s,
- void *arg,
- virtio_mem_section_cb cb)
-{
- unsigned long first_bit, last_bit;
- uint64_t offset, size;
- int ret = 0;
-
- first_bit = s->offset_within_region / vmem->block_size;
- first_bit = find_next_bit(vmem->bitmap, vmem->bitmap_size, first_bit);
- while (first_bit < vmem->bitmap_size) {
- MemoryRegionSection tmp = *s;
-
- offset = first_bit * vmem->block_size;
- last_bit = find_next_zero_bit(vmem->bitmap, vmem->bitmap_size,
- first_bit + 1) - 1;
- size = (last_bit - first_bit + 1) * vmem->block_size;
-
- if (!memory_region_section_intersect_range(&tmp, offset, size)) {
- break;
- }
- ret = cb(&tmp, arg);
- if (ret) {
- break;
- }
- first_bit = find_next_bit(vmem->bitmap, vmem->bitmap_size,
- last_bit + 2);
- }
- return ret;
-}
-
-static int virtio_mem_for_each_unplugged_section(const VirtIOMEM *vmem,
- const MemoryRegionSection *s,
- void *arg,
- virtio_mem_section_cb cb)
-{
- unsigned long first_bit, last_bit;
- uint64_t offset, size;
- int ret = 0;
-
- first_bit = s->offset_within_region / vmem->block_size;
- first_bit = find_next_zero_bit(vmem->bitmap, vmem->bitmap_size, first_bit);
- while (first_bit < vmem->bitmap_size) {
- MemoryRegionSection tmp = *s;
-
- offset = first_bit * vmem->block_size;
- last_bit = find_next_bit(vmem->bitmap, vmem->bitmap_size,
- first_bit + 1) - 1;
- size = (last_bit - first_bit + 1) * vmem->block_size;
-
- if (!memory_region_section_intersect_range(&tmp, offset, size)) {
- break;
- }
- ret = cb(&tmp, arg);
- if (ret) {
- break;
- }
- first_bit = find_next_zero_bit(vmem->bitmap, vmem->bitmap_size,
- last_bit + 2);
- }
- return ret;
-}
-
static void virtio_mem_notify_unplug(VirtIOMEM *vmem, uint64_t offset,
uint64_t size)
{
@@ -1667,50 +1601,6 @@ static bool virtio_mem_rds_is_populated(const RamDiscardSource *rds,
return virtio_mem_is_range_plugged(vmem, start_gpa, end_gpa - start_gpa);
}
-struct VirtIOMEMReplayData {
- ReplayRamDiscardState fn;
- void *opaque;
-};
-
-static int virtio_mem_rds_replay_cb(MemoryRegionSection *s, void *arg)
-{
- struct VirtIOMEMReplayData *data = arg;
-
- return data->fn(s, data->opaque);
-}
-
-static int virtio_mem_rds_replay_populated(const RamDiscardSource *rds,
- const MemoryRegionSection *s,
- ReplayRamDiscardState replay_fn,
- void *opaque)
-{
- const VirtIOMEM *vmem = VIRTIO_MEM(rds);
- struct VirtIOMEMReplayData data = {
- .fn = replay_fn,
- .opaque = opaque,
- };
-
- g_assert(s->mr == &vmem->memdev->mr);
- return virtio_mem_for_each_plugged_section(vmem, s, &data,
- virtio_mem_rds_replay_cb);
-}
-
-static int virtio_mem_rds_replay_discarded(const RamDiscardSource *rds,
- const MemoryRegionSection *s,
- ReplayRamDiscardState replay_fn,
- void *opaque)
-{
- const VirtIOMEM *vmem = VIRTIO_MEM(rds);
- struct VirtIOMEMReplayData data = {
- .fn = replay_fn,
- .opaque = opaque,
- };
-
- g_assert(s->mr == &vmem->memdev->mr);
- return virtio_mem_for_each_unplugged_section(vmem, s, &data,
- virtio_mem_rds_replay_cb);
-}
-
static void virtio_mem_unplug_request_check(VirtIOMEM *vmem, Error **errp)
{
if (vmem->unplugged_inaccessible == ON_OFF_AUTO_OFF) {
@@ -1766,8 +1656,6 @@ static void virtio_mem_class_init(ObjectClass *klass, const void *data)
rdsc->get_min_granularity = virtio_mem_rds_get_min_granularity;
rdsc->is_populated = virtio_mem_rds_is_populated;
- rdsc->replay_populated = virtio_mem_rds_replay_populated;
- rdsc->replay_discarded = virtio_mem_rds_replay_discarded;
}
static const TypeInfo virtio_mem_info = {
--
2.53.0