From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:37520) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Yull4-000776-Cd for qemu-devel@nongnu.org; Tue, 19 May 2015 13:56:51 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Yulkz-0005Q7-DM for qemu-devel@nongnu.org; Tue, 19 May 2015 13:56:50 -0400 Received: from e35.co.us.ibm.com ([32.97.110.153]:59276) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Yulkz-0005Q3-72 for qemu-devel@nongnu.org; Tue, 19 May 2015 13:56:45 -0400 Received: from /spool/local by e35.co.us.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Tue, 19 May 2015 11:56:44 -0600 Received: from b03cxnp08028.gho.boulder.ibm.com (b03cxnp08028.gho.boulder.ibm.com [9.17.130.20]) by d03dlp01.boulder.ibm.com (Postfix) with ESMTP id 623A51FF0030 for ; Tue, 19 May 2015 11:47:52 -0600 (MDT) Received: from d03av03.boulder.ibm.com (d03av03.boulder.ibm.com [9.17.195.169]) by b03cxnp08028.gho.boulder.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id t4JHuFn638731828 for ; Tue, 19 May 2015 10:56:15 -0700 Received: from d03av03.boulder.ibm.com (localhost [127.0.0.1]) by d03av03.boulder.ibm.com (8.14.4/8.14.4/NCO v10.0 AVout) with ESMTP id t4JHufTH013580 for ; Tue, 19 May 2015 11:56:42 -0600 Message-ID: <555B7963.5080106@linux.vnet.ibm.com> Date: Tue, 19 May 2015 12:56:51 -0500 From: "Michael R. Hines" MIME-Version: 1.0 References: <1429545445-28216-1-git-send-email-dgilbert@redhat.com> <1429545445-28216-3-git-send-email-dgilbert@redhat.com> In-Reply-To: <1429545445-28216-3-git-send-email-dgilbert@redhat.com> Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH 02/10] qemu_ram_foreach_block: pass up error value, and down the ramblock name List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: "Dr. David Alan Gilbert (git)" , qemu-devel@nongnu.org Cc: amit.shah@redhat.com, arei.gonglei@huawei.com, mrhines@us.ibm.com, quintela@redhat.com On 04/20/2015 10:57 AM, Dr. David Alan Gilbert (git) wrote: > From: "Dr. David Alan Gilbert" > > check the return value of the function it calls and error if it's non-0 > Fixup qemu_rdma_init_one_block that is the only current caller, > and rdma_add_block the only function it calls using it. > > Pass the name of the ramblock to the function; helps in debugging. > > Signed-off-by: Dr. David Alan Gilbert > Reviewed-by: David Gibson > --- > exec.c | 10 ++++++++-- > include/exec/cpu-common.h | 4 ++-- > migration/rdma.c | 4 ++-- > 3 files changed, 12 insertions(+), 6 deletions(-) > > diff --git a/exec.c b/exec.c > index 874ecfc..7693794 100644 > --- a/exec.c > +++ b/exec.c > @@ -3067,14 +3067,20 @@ bool cpu_physical_memory_is_io(hwaddr phys_addr) > memory_region_is_romd(mr)); > } > > -void qemu_ram_foreach_block(RAMBlockIterFunc func, void *opaque) > +int qemu_ram_foreach_block(RAMBlockIterFunc func, void *opaque) > { > RAMBlock *block; > + int ret = 0; > > rcu_read_lock(); > QLIST_FOREACH_RCU(block, &ram_list.blocks, next) { > - func(block->host, block->offset, block->used_length, opaque); > + ret = func(block->idstr, block->host, block->offset, > + block->used_length, opaque); > + if (ret) { > + break; > + } > } > rcu_read_unlock(); > + return ret; > } > #endif > diff --git a/include/exec/cpu-common.h b/include/exec/cpu-common.h > index fcc3162..2abecac 100644 > --- a/include/exec/cpu-common.h > +++ b/include/exec/cpu-common.h > @@ -125,10 +125,10 @@ void cpu_flush_icache_range(hwaddr start, int len); > extern struct MemoryRegion io_mem_rom; > extern struct MemoryRegion io_mem_notdirty; > > -typedef void (RAMBlockIterFunc)(void *host_addr, > +typedef int (RAMBlockIterFunc)(const char *block_name, void *host_addr, > ram_addr_t offset, ram_addr_t length, void *opaque); > > -void qemu_ram_foreach_block(RAMBlockIterFunc func, void *opaque); > +int qemu_ram_foreach_block(RAMBlockIterFunc func, void *opaque); > > #endif > > diff --git a/migration/rdma.c b/migration/rdma.c > index 089adcf..38e5f44 100644 > --- a/migration/rdma.c > +++ b/migration/rdma.c > @@ -570,10 +570,10 @@ static int rdma_add_block(RDMAContext *rdma, void *host_addr, > * in advanced before the migration starts. This tells us where the RAM blocks > * are so that we can register them individually. > */ > -static void qemu_rdma_init_one_block(void *host_addr, > +static int qemu_rdma_init_one_block(const char *block_name, void *host_addr, > ram_addr_t block_offset, ram_addr_t length, void *opaque) > { > - rdma_add_block(opaque, host_addr, block_offset, length); > + return rdma_add_block(opaque, host_addr, block_offset, length); > } > > /* Shame on me for not checking the return value =) Reviewed-by: Michael R. Hines