From mboxrd@z Thu Jan 1 00:00:00 1970 From: Avi Kivity Subject: Re: [PATCH] memory: transaction API Date: Thu, 21 Jul 2011 15:46:50 +0300 Message-ID: <4E281FBA.3010500@redhat.com> References: <1311243679-18403-1-git-send-email-avi@redhat.com> <4E2807A1.6000001@hupie.com> <4E281684.5000203@redhat.com> <4E281ADB.90708@hupie.com> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: Jan Kiszka , qemu-devel@nongnu.org, kvm@vger.kernel.org To: Ferry Huberts Return-path: Received: from mx1.redhat.com ([209.132.183.28]:41482 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751754Ab1GUMq6 (ORCPT ); Thu, 21 Jul 2011 08:46:58 -0400 In-Reply-To: <4E281ADB.90708@hupie.com> Sender: kvm-owner@vger.kernel.org List-ID: On 07/21/2011 03:26 PM, Ferry Huberts wrote: > >> > +void memory_region_transaction_begin(void) > >> > +{ > >> > + ++memory_region_transaction_depth; > >> > +} > >> > + > >> > >> wouldn't you rather keep it safe by doing either here > >> > >> if (!memory_region_transaction_depth) > >> memory_region_transaction_depth++; > >> > > > > Why? I want to allow nesting transactions (not that I anticipate such a > > case). > > > > doesn't memory_region_update_topology commit all accumulated changes? It does. > if > it does then memory_region_transaction_depth is left non-zero in the > nesting case while no more changes are actually present, resulting in > superfluous calls to memory_region_update_topology. > > maybe I misunderstood memory_region_update_topology? > update_mapping() { m_r_t_begin(); // call memory API functions to change hierarchy some_other_function() entered m_r_t_begin(); // call more memory API functions to change hierarchy m_r_t_commit(); // nothing happens some_other_function() exits // call even more memory API functions to change hierarchy m_r_t_commit(); // all accumulated changes become visible } -- error compiling committee.c: too many arguments to function