On Fri, Apr 13, 2018 at 17:42:45 -1000, Richard Henderson wrote: > On 04/05/2018 04:13 PM, Emilio G. Cota wrote: > > +static __thread bool page_collection_locked; > > + > > +void assert_page_collection_locked(bool val) > > +{ > > + tcg_debug_assert(page_collection_locked == val); > > +} > > + > > +static inline void set_page_collection_locked(bool val) > > +{ > > + page_collection_locked = val; > > +} > > + > > This seems fairly fragile to me. > > (1) Do you ever do assert_page_collection_locked(true)?
No. > You don't appear to do so, and it's somewhat confusing. You're right. I think in testing I was using it, but now it might make more sense to not take any arguments. > (2) Why does do_page_entry_lock set "locked" and not page_collection_lock? page_collection_lock calls page_entry_lock and page_trylock_add, both of which end up calling do_page_entry_lock. Thanks, Emilio