On Mon, Apr 23, 2018 at 20:31:15 -0400, Emilio G. Cota wrote:
> 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)
> > > +{
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);
> > +}
> > +
>
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_collect
The appended adds assertions to make sure we do not longjmp with page
locks held. Some notes:
- user-mode has nothing to check, since page_locks are !user-mode only.
- The checks only apply to page collections, since these have relatively
complex callers.
- Some simple page_lock/unlock callers