qemu-devel
[Top][All Lists]
Advanced

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

Re: [PATCH v2] cpu-exec: simplify jump cache management


From: Paolo Bonzini
Subject: Re: [PATCH v2] cpu-exec: simplify jump cache management
Date: Wed, 24 Jan 2024 16:44:56 +0100

On Tue, Jan 23, 2024 at 11:02 PM Alex Bennée <alex.bennee@linaro.org> wrote:
> However I would note that TranslationBlock has the comment:
>
>      * jmp_lock also protects the CF_INVALID cflag; a jump must not be chained
>      * to a destination TB that has CF_INVALID set.
>
> which I don't think holds true.

It does, both

    /* make sure the destination TB is valid */
    if (tb_next->cflags & CF_INVALID) {
        goto out_unlock_next;
    }

and

    qatomic_set(&tb->cflags, tb->cflags | CF_INVALID);

are protected by jmp_lock.  And if something is chaining to a
CF_INVALID translation block before tb_phys_invalidate() sets the
flag, it is cleaned up by

    tb_remove_from_jmp_list(tb, 0);
    tb_remove_from_jmp_list(tb, 1);
    tb_jmp_unlink(tb);

before tb_phys_invalidate() returns.

Paolo




reply via email to

[Prev in Thread] Current Thread [Next in Thread]