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 -- 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