From 68a098f38652ad7f4883de7beeba0c3dae9b2a0b Mon Sep 17 00:00:00 2001 From: Juan Quintela Date: Tue, 14 Mar 2017 13:48:42 +0100 Subject: ram: Move last_req_rb to RAMState It was on MigrationState when it is only used inside ram.c for postcopy. Problem is that we need to access it without being able to pass it RAMState directly. Signed-off-by: Juan Quintela Reviewed-by: Peter Xu --- migration/ram.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'migration/ram.c') diff --git a/migration/ram.c b/migration/ram.c index 2f5cbd1727..cec51b4bdc 100644 --- a/migration/ram.c +++ b/migration/ram.c @@ -204,6 +204,8 @@ struct RAMState { QemuMutex bitmap_mutex; /* Ram Bitmap protected by RCU */ RAMBitmap *ram_bitmap; + /* The RAMBlock used in the last src_page_requests */ + RAMBlock *last_req_rb; }; typedef struct RAMState RAMState; @@ -1226,12 +1228,13 @@ int ram_save_queue_pages(MigrationState *ms, const char *rbname, ram_addr_t start, ram_addr_t len) { RAMBlock *ramblock; + RAMState *rs = &ram_state; ms->postcopy_requests++; rcu_read_lock(); if (!rbname) { /* Reuse last RAMBlock */ - ramblock = ms->last_req_rb; + ramblock = rs->last_req_rb; if (!ramblock) { /* @@ -1249,7 +1252,7 @@ int ram_save_queue_pages(MigrationState *ms, const char *rbname, error_report("ram_save_queue_pages no block '%s'", rbname); goto err; } - ms->last_req_rb = ramblock; + rs->last_req_rb = ramblock; } trace_ram_save_queue_pages(ramblock->idstr, start, len); if (start+len > ramblock->used_length) { -- cgit v1.2.3