From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:59200) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Y306S-0005MH-Ec for qemu-devel@nongnu.org; Mon, 22 Dec 2014 05:20:45 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Y306N-0001KC-Ek for qemu-devel@nongnu.org; Mon, 22 Dec 2014 05:20:40 -0500 Received: from szxga03-in.huawei.com ([119.145.14.66]:7395) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Y306M-0001Jr-DH for qemu-devel@nongnu.org; Mon, 22 Dec 2014 05:20:35 -0500 Message-ID: <5497F060.9040401@huawei.com> Date: Mon, 22 Dec 2014 18:20:16 +0800 From: zhanghailiang MIME-Version: 1.0 References: <1417849159-6568-1-git-send-email-zhang.zhanghailiang@huawei.com> <1417849159-6568-5-git-send-email-zhang.zhanghailiang@huawei.com> <20141221212353.15420.65974@loki> In-Reply-To: <20141221212353.15420.65974@loki> Content-Type: text/plain; charset="utf-8"; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH RFC for-2.3 4/6] qga: implement qmp_guest_set_memory_blocks() for Linux with sysfs List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Michael Roth , qemu-devel@nongnu.org Cc: hangaohuai@huawei.com, peter.huangpeng@huawei.com On 2014/12/22 5:23, Michael Roth wrote: > Quoting zhanghailiang (2014-12-06 00:59:17) >> Signed-off-by: zhanghailiang >> --- >> qga/commands-posix.c | 42 +++++++++++++++++++++++++++++++++++------- >> 1 file changed, 35 insertions(+), 7 deletions(-) >> >> diff --git a/qga/commands-posix.c b/qga/commands-posix.c >> index d3f7d4f..1010e86 100644 >> --- a/qga/commands-posix.c >> +++ b/qga/commands-posix.c >> @@ -2059,6 +2059,34 @@ GuestMemoryBlockList *qmp_guest_get_memory_blocks(Error **errp) >> error_propagate(errp, local_err); >> return NULL; >> } >> + >> +int64_t qmp_guest_set_memory_blocks(GuestMemoryBlockList *mem_blks, >> + Error **errp) >> +{ >> + int64_t processed; >> + Error *local_err = NULL; >> + >> + processed = 0; >> + while (mem_blks != NULL) { >> + transfer_memory_block(mem_blks->value, false, &local_err); >> + if (local_err) { >> + break; >> + } > > The documentation claims to maximize the number of blocks we set in the event > of an error, which would suggest we continue processing the remainder of the > list rather than breaking here. > OK, one more thing, should we fix like that for set-vcpus ? >> + ++processed; >> + mem_blks = mem_blks->next; >> + } >> + >> + if (local_err) { >> + if (processed == 0) { >> + error_propagate(errp, local_err); >> + } else { >> + error_free(local_err); >> + } > > Really think a list of error/status would make it easier for management to make > sense of things. > Agreed :) >> + } >> + >> + return processed; >> +} >> + >> #else /* defined(__linux__) */ >> >> void qmp_guest_suspend_disk(Error **errp) >> @@ -2100,6 +2128,13 @@ GuestMemoryBlockList *qmp_guest_get_memory_blocks(Error **errp) >> return NULL; >> } >> >> +int64_t qmp_guest_set_memory_blocks(GuestMemoryBlockList *mem_blks, >> + Error **errp) >> +{ >> + error_set(errp, QERR_UNSUPPORTED); >> + return -1; >> +} >> + >> #endif >> >> #if !defined(CONFIG_FSFREEZE) >> @@ -2186,13 +2221,6 @@ GList *ga_command_blacklist_init(GList *blacklist) >> return blacklist; >> } >> >> -int64_t qmp_guest_set_memory_blocks(GuestMemoryBlockList *mem_blks, >> - Error **errp) >> -{ >> - error_set(errp, QERR_UNSUPPORTED); >> - return -1; >> -} >> - > > Same comment here as with prior patch > OK, thanks. >> int64_t qmp_guest_get_memory_block_size(Error **errp) >> { >> error_set(errp, QERR_UNSUPPORTED); >> -- >> 1.7.12.4 > > > . >