From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:39978) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1T8p5N-00056Z-FR for qemu-devel@nongnu.org; Tue, 04 Sep 2012 05:06:23 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1T8p5H-0007QU-Ps for qemu-devel@nongnu.org; Tue, 04 Sep 2012 05:06:17 -0400 Received: from e28smtp01.in.ibm.com ([122.248.162.1]:50729) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1T8p5H-0007Q6-3a for qemu-devel@nongnu.org; Tue, 04 Sep 2012 05:06:11 -0400 Received: from /spool/local by e28smtp01.in.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Tue, 4 Sep 2012 14:36:07 +0530 Received: from d28av03.in.ibm.com (d28av03.in.ibm.com [9.184.220.65]) by d28relay05.in.ibm.com (8.13.8/8.13.8/NCO v10.0) with ESMTP id q849642955967766 for ; Tue, 4 Sep 2012 14:36:04 +0530 Received: from d28av03.in.ibm.com (loopback [127.0.0.1]) by d28av03.in.ibm.com (8.14.4/8.13.1/NCO v10.0 AVout) with ESMTP id q84961r6031359 for ; Tue, 4 Sep 2012 19:06:02 +1000 Message-ID: <5045C45D.8060207@linux.vnet.ibm.com> Date: Tue, 04 Sep 2012 17:05:33 +0800 From: Wenchao Xia MIME-Version: 1.0 References: <1346663926-20188-1-git-send-email-xiawenc@linux.vnet.ibm.com> <1346663926-20188-2-git-send-email-xiawenc@linux.vnet.ibm.com> <5044AE18.5030503@redhat.com> <50457267.2080806@linux.vnet.ibm.com> <5045A499.1030505@redhat.com> In-Reply-To: <5045A499.1030505@redhat.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Subject: Re: [Qemu-devel] [PATCH 1/6] libqblock APIs List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Paolo Bonzini Cc: kwolf@redhat.com, stefanha@gmail.com, aliguori@us.ibm.com, eblake@redhat.com, qemu-devel@nongnu.org 于 2012-9-4 14:50, Paolo Bonzini 写道: > Il 04/09/2012 05:15, Wenchao Xia ha scritto: >>> >>> Can you use GError instead? >>> >> read through the GError doc, GError is defined as following: >> struct GError { >> GQuark domain; >> gint code; >> gchar *message; >> }; >> I am worried about the message member, I guess program would be >> aborted if OOM, which I was tring to avoid, so I used char err_msg[1024] >> in my code, and make things simpler. > > That's true. On the other hand, and IMHO, not aborting in the library > code is a non-goal as long as the rest of the block layer still does. > Hard problem for me, do you have some suggestion about OOM issue? Using GLib's more functions, such as GError and Gsource main event loop, would cause this issue more difficult to solve later. Do we have an alternative robust lib as glib but reports OOM instead exit on Linux? >>>> 3 QBlockInfoImageStatic. Now it is not folded with location and >>>> format. >>> >>> What does "Static" mean? >>> >> It is about sorting the information into following kinds: >> 1) static. It is values that defined at creating time/modifying time, >> mostly some settings, and it would not be automatically changed in I/O. >> 2) dynamic. Some information that would changes in I/O and other >> operations, such as allocated_size, snapshots. >> 3) statistics. >> Now only static one is provided, so I added _static suffix. > > Makes sense, thanks for the clarification. Perhaps QBlockStaticInfo is > a shorter and simpler name? > OK. > Paolo > -- Best Regards Wenchao Xia