From mboxrd@z Thu Jan 1 00:00:00 1970 From: Umesh Deshpande Subject: Re: [PATCH 3/5] Migration thread mutex Date: Mon, 29 Aug 2011 09:49:45 -0400 Message-ID: <4E5B98F9.6010502@redhat.com> References: Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: kvm@vger.kernel.org, qemu-devel@nongnu.org To: Stefan Hajnoczi Return-path: Received: from mx1.redhat.com ([209.132.183.28]:1273 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750965Ab1H2Ntu (ORCPT ); Mon, 29 Aug 2011 09:49:50 -0400 In-Reply-To: Sender: kvm-owner@vger.kernel.org List-ID: On 08/29/2011 05:04 AM, Stefan Hajnoczi wrote: > On Sat, Aug 27, 2011 at 7:09 PM, Umesh Deshpande wrote: >> This patch implements migrate_ram mutex, which protects the RAMBlock list >> traversal in the migration thread during the transfer of a ram from their >> addition/removal from the iothread. >> >> Note: Combination of iothread mutex and migration thread mutex works as a >> rw-lock. Both mutexes are acquired while modifying the ram_list members or RAM >> block list. >> >> Signed-off-by: Umesh Deshpande >> --- >> arch_init.c | 21 +++++++++++++++++++++ >> cpu-all.h | 3 +++ >> exec.c | 23 +++++++++++++++++++++++ >> qemu-common.h | 2 ++ >> 4 files changed, 49 insertions(+), 0 deletions(-) >> >> diff --git a/arch_init.c b/arch_init.c >> index 484b39d..9d02270 100644 >> --- a/arch_init.c >> +++ b/arch_init.c >> @@ -109,6 +109,7 @@ static int is_dup_page(uint8_t *page, uint8_t ch) >> >> static RAMBlock *last_block; >> static ram_addr_t last_offset; >> +static uint64_t last_version; > [...] >> typedef struct RAMList { >> + QemuMutex mutex; /* Protects RAM block list */ >> uint8_t *phys_dirty; >> + uint32_t version; /* To detect ram block addition/removal */ > Is there a reason why RAMList.version is uint32_t but last_version is uint64_t? No, my bad, they both should be consistent.