Message ID | 1600137887-58739-6-git-send-email-zhengchuan@huawei.com |
---|---|
State | New |
Headers | show |
Series | *** A Method for evaluating dirty page rate *** | expand |
Chuan Zheng <zhengchuan@huawei.com> 于2020年9月15日周二 上午10:34写道: > > RAMBLOCK_FOREACH_MIGRATABLE is need in dirtyrate measure, > move the existing definition up into migration/ram.h > > Signed-off-by: Chuan Zheng <zhengchuan@huawei.com> > Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com> > Reviewed-by: David Edmondson <david.edmondson@oracle.com> Reviewed-by: Li Qiang <liq3ea@gmail.com> > --- > migration/dirtyrate.c | 1 + > migration/ram.c | 11 +---------- > migration/ram.h | 10 ++++++++++ > 3 files changed, 12 insertions(+), 10 deletions(-) > > diff --git a/migration/dirtyrate.c b/migration/dirtyrate.c > index ab372ba..7366bf3 100644 > --- a/migration/dirtyrate.c > +++ b/migration/dirtyrate.c > @@ -20,6 +20,7 @@ > #include "qemu/rcu_queue.h" > #include "qapi/qapi-commands-migration.h" > #include "migration.h" > +#include "ram.h" > #include "dirtyrate.h" > > static int CalculatingState = DIRTY_RATE_STATUS_UNSTARTED; > diff --git a/migration/ram.c b/migration/ram.c > index 76d4fee..37ef0da 100644 > --- a/migration/ram.c > +++ b/migration/ram.c > @@ -158,21 +158,12 @@ out: > return ret; > } > > -static bool ramblock_is_ignored(RAMBlock *block) > +bool ramblock_is_ignored(RAMBlock *block) > { > return !qemu_ram_is_migratable(block) || > (migrate_ignore_shared() && qemu_ram_is_shared(block)); > } > > -/* Should be holding either ram_list.mutex, or the RCU lock. */ > -#define RAMBLOCK_FOREACH_NOT_IGNORED(block) \ > - INTERNAL_RAMBLOCK_FOREACH(block) \ > - if (ramblock_is_ignored(block)) {} else > - > -#define RAMBLOCK_FOREACH_MIGRATABLE(block) \ > - INTERNAL_RAMBLOCK_FOREACH(block) \ > - if (!qemu_ram_is_migratable(block)) {} else > - > #undef RAMBLOCK_FOREACH > > int foreach_not_ignored_block(RAMBlockIterFunc func, void *opaque) > diff --git a/migration/ram.h b/migration/ram.h > index 2eeaacf..011e854 100644 > --- a/migration/ram.h > +++ b/migration/ram.h > @@ -37,6 +37,16 @@ extern MigrationStats ram_counters; > extern XBZRLECacheStats xbzrle_counters; > extern CompressionStats compression_counters; > > +bool ramblock_is_ignored(RAMBlock *block); > +/* Should be holding either ram_list.mutex, or the RCU lock. */ > +#define RAMBLOCK_FOREACH_NOT_IGNORED(block) \ > + INTERNAL_RAMBLOCK_FOREACH(block) \ > + if (ramblock_is_ignored(block)) {} else > + > +#define RAMBLOCK_FOREACH_MIGRATABLE(block) \ > + INTERNAL_RAMBLOCK_FOREACH(block) \ > + if (!qemu_ram_is_migratable(block)) {} else > + > int xbzrle_cache_resize(int64_t new_size, Error **errp); > uint64_t ram_bytes_remaining(void); > uint64_t ram_bytes_total(void); > -- > 1.8.3.1 >
diff --git a/migration/dirtyrate.c b/migration/dirtyrate.c index ab372ba..7366bf3 100644 --- a/migration/dirtyrate.c +++ b/migration/dirtyrate.c @@ -20,6 +20,7 @@ #include "qemu/rcu_queue.h" #include "qapi/qapi-commands-migration.h" #include "migration.h" +#include "ram.h" #include "dirtyrate.h" static int CalculatingState = DIRTY_RATE_STATUS_UNSTARTED; diff --git a/migration/ram.c b/migration/ram.c index 76d4fee..37ef0da 100644 --- a/migration/ram.c +++ b/migration/ram.c @@ -158,21 +158,12 @@ out: return ret; } -static bool ramblock_is_ignored(RAMBlock *block) +bool ramblock_is_ignored(RAMBlock *block) { return !qemu_ram_is_migratable(block) || (migrate_ignore_shared() && qemu_ram_is_shared(block)); } -/* Should be holding either ram_list.mutex, or the RCU lock. */ -#define RAMBLOCK_FOREACH_NOT_IGNORED(block) \ - INTERNAL_RAMBLOCK_FOREACH(block) \ - if (ramblock_is_ignored(block)) {} else - -#define RAMBLOCK_FOREACH_MIGRATABLE(block) \ - INTERNAL_RAMBLOCK_FOREACH(block) \ - if (!qemu_ram_is_migratable(block)) {} else - #undef RAMBLOCK_FOREACH int foreach_not_ignored_block(RAMBlockIterFunc func, void *opaque) diff --git a/migration/ram.h b/migration/ram.h index 2eeaacf..011e854 100644 --- a/migration/ram.h +++ b/migration/ram.h @@ -37,6 +37,16 @@ extern MigrationStats ram_counters; extern XBZRLECacheStats xbzrle_counters; extern CompressionStats compression_counters; +bool ramblock_is_ignored(RAMBlock *block); +/* Should be holding either ram_list.mutex, or the RCU lock. */ +#define RAMBLOCK_FOREACH_NOT_IGNORED(block) \ + INTERNAL_RAMBLOCK_FOREACH(block) \ + if (ramblock_is_ignored(block)) {} else + +#define RAMBLOCK_FOREACH_MIGRATABLE(block) \ + INTERNAL_RAMBLOCK_FOREACH(block) \ + if (!qemu_ram_is_migratable(block)) {} else + int xbzrle_cache_resize(int64_t new_size, Error **errp); uint64_t ram_bytes_remaining(void); uint64_t ram_bytes_total(void);