From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1NAozh-0003cM-7t for qemu-devel@nongnu.org; Wed, 18 Nov 2009 13:11:05 -0500 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1NAozc-0003a5-2h for qemu-devel@nongnu.org; Wed, 18 Nov 2009 13:11:04 -0500 Received: from [199.232.76.173] (port=55442 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1NAozb-0003Zv-QM for qemu-devel@nongnu.org; Wed, 18 Nov 2009 13:10:59 -0500 Received: from mx1.redhat.com ([209.132.183.28]:5671) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1NAoza-0005Wv-W4 for qemu-devel@nongnu.org; Wed, 18 Nov 2009 13:10:59 -0500 Date: Wed, 18 Nov 2009 16:10:39 -0200 From: Luiz Capitulino Subject: Re: [Qemu-devel] [PATCH 10/10] monitor: do_info_balloon(): use QError Message-ID: <20091118161039.2ed2eb2d@doriath> In-Reply-To: <4B0419A6.7010901@linux.vnet.ibm.com> References: <1258487037-24950-1-git-send-email-lcapitulino@redhat.com> <1258487037-24950-11-git-send-email-lcapitulino@redhat.com> <4B0419A6.7010901@linux.vnet.ibm.com> Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Anthony Liguori Cc: kraxel@redhat.com, Markus Armbruster , qemu-devel@nongnu.org On Wed, 18 Nov 2009 09:58:30 -0600 Anthony Liguori wrote: > Markus Armbruster wrote: > > Luiz Capitulino writes: > > > > > >> Signed-off-by: Luiz Capitulino > >> --- > >> monitor.c | 7 ++++--- > >> 1 files changed, 4 insertions(+), 3 deletions(-) > >> > >> diff --git a/monitor.c b/monitor.c > >> index 74abef9..e42434f 100644 > >> --- a/monitor.c > >> +++ b/monitor.c > >> @@ -1722,10 +1722,11 @@ static void do_info_balloon(Monitor *mon, QObject **ret_data) > >> > >> actual = qemu_balloon_status(); > >> if (kvm_enabled() && !kvm_has_sync_mmu()) > >> - monitor_printf(mon, "Using KVM without synchronous MMU, " > >> - "ballooning disabled\n"); > >> + qemu_error_new(QERR_SERVICE_UNAVAILABLE, > >> + "Using KVM without synchronous MMU, ballooning disabled"); > >> else if (actual == 0) > >> - monitor_printf(mon, "Ballooning not activated in VM\n"); > >> + qemu_error_new(QERR_SERVICE_UNAVAILABLE, > >> + "Ballooning not activated in VM"); > >> else > >> *ret_data = QOBJECT(qint_from_int((int)(actual >> 20))); > >> } > >> > > > > In PATCH 7/10: > > > > +#define QERR_SERVICE_UNAVAILABLE \ > > + "{ 'class': 'ServiceUnavailable', 'data': { 'reason': %s } }" > > + > > > > and > > > > + { > > + .error_fmt = QERR_SERVICE_UNAVAILABLE, > > + .desc = "%(reason)", > > + }, > > > > How to do a ServiceUnavailable error with a description that is not a > > compile time literal? Add another macro and error table entry for that? > > > > An error that just contains reason is a good indication that the error > is not the right level of abstraction. > > There are two error conditions here. One is that kvm is in use, but > it's missing a capability and therefore we have to disable a feature. > The second error is that the guest did not activate a device. Thanks for the detailed explanation, I've included the new errors.