Message ID | 20231023203608.26370-24-farosas@suse.de |
---|---|
State | New |
Headers | show |
Series | migration: File based migration with multifd and fixed-ram | expand |
On Mon, Oct 23, 2023 at 05:36:02PM -0300, Fabiano Rosas wrote: > We'll need to set the shadow_bmap bits from outside ram.c soon and > TARGET_PAGE_BITS is poisoned, so add a wrapper to it. > > Signed-off-by: Fabiano Rosas <farosas@suse.de> Merge this into existing patch to add ram.c usage? > --- > migration/ram.c | 5 +++++ > migration/ram.h | 1 + > 2 files changed, 6 insertions(+) > > diff --git a/migration/ram.c b/migration/ram.c > index cea6971ab2..8e34c1b597 100644 > --- a/migration/ram.c > +++ b/migration/ram.c > @@ -3160,6 +3160,11 @@ static void ram_save_shadow_bmap(QEMUFile *f) > } > } > > +void ramblock_set_shadow_bmap_atomic(RAMBlock *block, ram_addr_t offset) > +{ > + set_bit_atomic(offset >> TARGET_PAGE_BITS, block->shadow_bmap); > +} > + > /** > * ram_save_iterate: iterative stage for migration > * > diff --git a/migration/ram.h b/migration/ram.h > index 145c915ca7..1acadffb06 100644 > --- a/migration/ram.h > +++ b/migration/ram.h > @@ -75,6 +75,7 @@ int ram_dirty_bitmap_reload(MigrationState *s, RAMBlock *rb); > bool ramblock_page_is_discarded(RAMBlock *rb, ram_addr_t start); > void postcopy_preempt_shutdown_file(MigrationState *s); > void *postcopy_preempt_thread(void *opaque); > +void ramblock_set_shadow_bmap_atomic(RAMBlock *block, ram_addr_t offset); > > /* ram cache */ > int colo_init_ram_cache(void); > -- > 2.35.3 >
diff --git a/migration/ram.c b/migration/ram.c index cea6971ab2..8e34c1b597 100644 --- a/migration/ram.c +++ b/migration/ram.c @@ -3160,6 +3160,11 @@ static void ram_save_shadow_bmap(QEMUFile *f) } } +void ramblock_set_shadow_bmap_atomic(RAMBlock *block, ram_addr_t offset) +{ + set_bit_atomic(offset >> TARGET_PAGE_BITS, block->shadow_bmap); +} + /** * ram_save_iterate: iterative stage for migration * diff --git a/migration/ram.h b/migration/ram.h index 145c915ca7..1acadffb06 100644 --- a/migration/ram.h +++ b/migration/ram.h @@ -75,6 +75,7 @@ int ram_dirty_bitmap_reload(MigrationState *s, RAMBlock *rb); bool ramblock_page_is_discarded(RAMBlock *rb, ram_addr_t start); void postcopy_preempt_shutdown_file(MigrationState *s); void *postcopy_preempt_thread(void *opaque); +void ramblock_set_shadow_bmap_atomic(RAMBlock *block, ram_addr_t offset); /* ram cache */ int colo_init_ram_cache(void);
We'll need to set the shadow_bmap bits from outside ram.c soon and TARGET_PAGE_BITS is poisoned, so add a wrapper to it. Signed-off-by: Fabiano Rosas <farosas@suse.de> --- migration/ram.c | 5 +++++ migration/ram.h | 1 + 2 files changed, 6 insertions(+)