On Wed, Sep 21, 2016 at 18:19:26 +0200, Paolo Bonzini wrote:
> 
> 
> On 21/09/2016 18:05, Emilio G. Cota wrote:
> >> > +    tb_lock();
> >> > +
> >> > +    /* If it's already been done on request of another CPU,
> >> > +     * just retry.
> >> > +     */
> >> > +    if (atomic_read(&tcg_ctx.tb_ctx.tb_flush_count) != tb_flush_req) {
> >> > +        goto done;
> > tb_flush_count is always accessed with tb_lock held, right? If so, I don't
> > see a reason to access it with atomic_read/set.
> 
> tb_flush accesses it outside tb_lock.  Technically this one you're
> quoting need not use atomic_read, but others need to.

Sorry for being thick, but when does tb_flush not own tb_lock?
(I'm assuming we're talking only user-mode, since full-system has
for now empty tb_lock/unlock helpers.)

                E.

Reply via email to