Re: [PATCH] memory: transaction API

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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

--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux