From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:39785) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WzlgX-000374-10 for qemu-devel@nongnu.org; Wed, 25 Jun 2014 07:48:22 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1WzlgR-0004HU-S2 for qemu-devel@nongnu.org; Wed, 25 Jun 2014 07:48:16 -0400 Received: from oxygen.pond.sub.org ([2a01:4f8:201:233:1::3]:59472) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WzlgR-0004Cv-6e for qemu-devel@nongnu.org; Wed, 25 Jun 2014 07:48:11 -0400 From: Markus Armbruster References: <1403687054-13682-1-git-send-email-hutao@cn.fujitsu.com> <20140625120201.77f380a3@nial.usersys.redhat.com> Date: Wed, 25 Jun 2014 13:48:05 +0200 In-Reply-To: <20140625120201.77f380a3@nial.usersys.redhat.com> (Igor Mammedov's message of "Wed, 25 Jun 2014 12:02:01 +0200") Message-ID: <8761jpb47e.fsf@blackfin.pond.sub.org> MIME-Version: 1.0 Content-Type: text/plain Subject: Re: [Qemu-devel] [PATCH] numa: check for busy memory backend List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Igor Mammedov Cc: Hu Tao , "Michael S. Tsirkin" , qemu-devel@nongnu.org, Yasunori Goto Igor Mammedov writes: > On Wed, 25 Jun 2014 17:04:14 +0800 > Hu Tao wrote: > >> ..to prevent one memory backend from being used by more than one numa >> node. >> >> Signed-off-by: Hu Tao >> --- >> numa.c | 7 +++++++ >> 1 file changed, 7 insertions(+) >> >> diff --git a/numa.c b/numa.c >> index e471afe..6c1c554 100644 >> --- a/numa.c >> +++ b/numa.c >> @@ -279,6 +279,13 @@ void memory_region_allocate_system_memory(MemoryRegion *mr, Object *owner, >> exit(1); >> } >> >> + if (memory_region_is_mapped(seg)) { >> + char *path = object_get_canonical_path_component(OBJECT(backend)); >> + error_report("memory backend %s is busy", path); >> + g_free(path); >> + exit(1); > s/1/EXIT_FAILURE/ please I count >600 instances of exit() with a numeric argument (not counting some 50 sys.exit() in Python code), but less than 40 using EXIT_SUCCESS or EXIT_FAILURE. The abstraction provided by EXIT_SUCCESS / EXIT_FAILURE is basically worthless anyway. > >> + } >> + >> memory_region_add_subregion(mr, addr, seg); >> vmstate_register_ram_global(seg); >> addr += size;