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:07:32 +0300 Message-ID: <4E281684.5000203@redhat.com> References: <1311243679-18403-1-git-send-email-avi@redhat.com> <4E2807A1.6000001@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]:22919 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750834Ab1GUMHk (ORCPT ); Thu, 21 Jul 2011 08:07:40 -0400 In-Reply-To: <4E2807A1.6000001@hupie.com> Sender: kvm-owner@vger.kernel.org List-ID: On 07/21/2011 02:04 PM, Ferry Huberts wrote: > On 07/21/2011 12:21 PM, Avi Kivity wrote: > > Allow changes to the memory hierarchy to be accumulated and > > made visible all at once. This reduces computational effort, > > especially when an accelerator (e.g. kvm) is involved. > > > > Useful when a single register update causes multiple changes > > to an address space. > > > > > > +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). > > +void memory_region_transaction_commit(void) > > +{ > > + if (!memory_region_transaction_depth) { > > + abort(); > > + } > > > > + --memory_region_transaction_depth; > > + memory_region_update_topology(); > > +} > > + > > or by doing here > > while (!memory_region_transaction_depth) > memory_region_transaction_depth--; > > > with your setup nesting transactions will not work correctly I think. > You seem to have designed it to not do nesting, so it's safer to make > that explicit in your code imho Nesting should work just fine. > therefore I'd go for the change in _begin > > also, wouldn't you rather rename memory_region_transaction_depth to > memory_region_transaction_pending? The existing name works for me, but if people want it changed, that's fine too. -- error compiling committee.c: too many arguments to function