qemu/main-loop: rename QEMU_IOTHREAD_LOCK_GUARD to BQL_LOCK_GUARD

The name "iothread" is overloaded. Use the term Big QEMU Lock (BQL)
instead, it is already widely used and unambiguous.

Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Reviewed-by: Paul Durrant <paul@xen.org>
Acked-by: David Woodhouse <dwmw@amazon.co.uk>
Reviewed-by: Cédric Le Goater <clg@kaod.org>
Acked-by: Ilya Leoshkevich <iii@linux.ibm.com>
Reviewed-by: Harsh Prateek Bora <harshpb@linux.ibm.com>
Reviewed-by: Akihiko Odaki <akihiko.odaki@daynix.com>
Message-id: 20240102153529.486531-3-stefanha@redhat.com
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
This commit is contained in:
Stefan Hajnoczi 2024-01-02 10:35:26 -05:00
parent 195801d700
commit 32ead8e62f
9 changed files with 24 additions and 25 deletions

View file

@ -1127,7 +1127,7 @@ int xen_evtchn_reset_op(struct evtchn_reset *reset)
return -ESRCH; return -ESRCH;
} }
QEMU_IOTHREAD_LOCK_GUARD(); BQL_LOCK_GUARD();
return xen_evtchn_soft_reset(); return xen_evtchn_soft_reset();
} }
@ -1145,7 +1145,7 @@ int xen_evtchn_close_op(struct evtchn_close *close)
return -EINVAL; return -EINVAL;
} }
QEMU_IOTHREAD_LOCK_GUARD(); BQL_LOCK_GUARD();
qemu_mutex_lock(&s->port_lock); qemu_mutex_lock(&s->port_lock);
ret = close_port(s, close->port, &flush_kvm_routes); ret = close_port(s, close->port, &flush_kvm_routes);
@ -1272,7 +1272,7 @@ int xen_evtchn_bind_pirq_op(struct evtchn_bind_pirq *pirq)
return -EINVAL; return -EINVAL;
} }
QEMU_IOTHREAD_LOCK_GUARD(); BQL_LOCK_GUARD();
if (s->pirq[pirq->pirq].port) { if (s->pirq[pirq->pirq].port) {
return -EBUSY; return -EBUSY;
@ -1824,7 +1824,7 @@ int xen_physdev_map_pirq(struct physdev_map_pirq *map)
return -ENOTSUP; return -ENOTSUP;
} }
QEMU_IOTHREAD_LOCK_GUARD(); BQL_LOCK_GUARD();
QEMU_LOCK_GUARD(&s->port_lock); QEMU_LOCK_GUARD(&s->port_lock);
if (map->domid != DOMID_SELF && map->domid != xen_domid) { if (map->domid != DOMID_SELF && map->domid != xen_domid) {
@ -1884,7 +1884,7 @@ int xen_physdev_unmap_pirq(struct physdev_unmap_pirq *unmap)
return -EINVAL; return -EINVAL;
} }
QEMU_IOTHREAD_LOCK_GUARD(); BQL_LOCK_GUARD();
qemu_mutex_lock(&s->port_lock); qemu_mutex_lock(&s->port_lock);
if (!pirq_inuse(s, pirq)) { if (!pirq_inuse(s, pirq)) {
@ -1924,7 +1924,7 @@ int xen_physdev_eoi_pirq(struct physdev_eoi *eoi)
return -ENOTSUP; return -ENOTSUP;
} }
QEMU_IOTHREAD_LOCK_GUARD(); BQL_LOCK_GUARD();
QEMU_LOCK_GUARD(&s->port_lock); QEMU_LOCK_GUARD(&s->port_lock);
if (!pirq_inuse(s, pirq)) { if (!pirq_inuse(s, pirq)) {
@ -1956,7 +1956,7 @@ int xen_physdev_query_pirq(struct physdev_irq_status_query *query)
return -ENOTSUP; return -ENOTSUP;
} }
QEMU_IOTHREAD_LOCK_GUARD(); BQL_LOCK_GUARD();
QEMU_LOCK_GUARD(&s->port_lock); QEMU_LOCK_GUARD(&s->port_lock);
if (!pirq_inuse(s, pirq)) { if (!pirq_inuse(s, pirq)) {

View file

@ -176,7 +176,7 @@ int xen_gnttab_map_page(uint64_t idx, uint64_t gfn)
return -EINVAL; return -EINVAL;
} }
QEMU_IOTHREAD_LOCK_GUARD(); BQL_LOCK_GUARD();
QEMU_LOCK_GUARD(&s->gnt_lock); QEMU_LOCK_GUARD(&s->gnt_lock);
xen_overlay_do_map_page(&s->gnt_aliases[idx], gpa); xen_overlay_do_map_page(&s->gnt_aliases[idx], gpa);

View file

@ -36,7 +36,7 @@ static void cpu_mips_irq_request(void *opaque, int irq, int level)
return; return;
} }
QEMU_IOTHREAD_LOCK_GUARD(); BQL_LOCK_GUARD();
if (level) { if (level) {
env->CP0_Cause |= 1 << (irq + CP0Ca_IP); env->CP0_Cause |= 1 << (irq + CP0Ca_IP);

View file

@ -47,7 +47,7 @@ void ppc_set_irq(PowerPCCPU *cpu, int irq, int level)
unsigned int old_pending; unsigned int old_pending;
/* We may already have the BQL if coming from the reset path */ /* We may already have the BQL if coming from the reset path */
QEMU_IOTHREAD_LOCK_GUARD(); BQL_LOCK_GUARD();
old_pending = env->pending_interrupts; old_pending = env->pending_interrupts;

View file

@ -343,33 +343,32 @@ void bql_lock_impl(const char *file, int line);
void bql_unlock(void); void bql_unlock(void);
/** /**
* QEMU_IOTHREAD_LOCK_GUARD * BQL_LOCK_GUARD
* *
* Wrap a block of code in a conditional bql_{lock,unlock}. * Wrap a block of code in a conditional bql_{lock,unlock}.
*/ */
typedef struct IOThreadLockAuto IOThreadLockAuto; typedef struct BQLLockAuto BQLLockAuto;
static inline IOThreadLockAuto *qemu_iothread_auto_lock(const char *file, static inline BQLLockAuto *bql_auto_lock(const char *file, int line)
int line)
{ {
if (bql_locked()) { if (bql_locked()) {
return NULL; return NULL;
} }
bql_lock_impl(file, line); bql_lock_impl(file, line);
/* Anything non-NULL causes the cleanup function to be called */ /* Anything non-NULL causes the cleanup function to be called */
return (IOThreadLockAuto *)(uintptr_t)1; return (BQLLockAuto *)(uintptr_t)1;
} }
static inline void qemu_iothread_auto_unlock(IOThreadLockAuto *l) static inline void bql_auto_unlock(BQLLockAuto *l)
{ {
bql_unlock(); bql_unlock();
} }
G_DEFINE_AUTOPTR_CLEANUP_FUNC(IOThreadLockAuto, qemu_iothread_auto_unlock) G_DEFINE_AUTOPTR_CLEANUP_FUNC(BQLLockAuto, bql_auto_unlock)
#define QEMU_IOTHREAD_LOCK_GUARD() \ #define BQL_LOCK_GUARD() \
g_autoptr(IOThreadLockAuto) _iothread_lock_auto __attribute__((unused)) \ g_autoptr(BQLLockAuto) _bql_lock_auto __attribute__((unused)) \
= qemu_iothread_auto_lock(__FILE__, __LINE__) = bql_auto_lock(__FILE__, __LINE__)
/* /*
* qemu_cond_wait_iothread: Wait on condition for the main loop mutex * qemu_cond_wait_iothread: Wait on condition for the main loop mutex

View file

@ -581,7 +581,7 @@ static int xen_set_shared_info(uint64_t gfn)
uint64_t gpa = gfn << TARGET_PAGE_BITS; uint64_t gpa = gfn << TARGET_PAGE_BITS;
int i, err; int i, err;
QEMU_IOTHREAD_LOCK_GUARD(); BQL_LOCK_GUARD();
/* /*
* The xen_overlay device tells KVM about it too, since it had to * The xen_overlay device tells KVM about it too, since it had to

View file

@ -2222,7 +2222,7 @@ static int ppc_next_unmasked_interrupt(CPUPPCState *env)
void ppc_maybe_interrupt(CPUPPCState *env) void ppc_maybe_interrupt(CPUPPCState *env)
{ {
CPUState *cs = env_cpu(env); CPUState *cs = env_cpu(env);
QEMU_IOTHREAD_LOCK_GUARD(); BQL_LOCK_GUARD();
if (ppc_next_unmasked_interrupt(env)) { if (ppc_next_unmasked_interrupt(env)) {
cpu_interrupt(cs, CPU_INTERRUPT_HARD); cpu_interrupt(cs, CPU_INTERRUPT_HARD);

View file

@ -244,7 +244,7 @@ void cpu_interrupt_exittb(CPUState *cs)
* unless running with TCG. * unless running with TCG.
*/ */
if (tcg_enabled()) { if (tcg_enabled()) {
QEMU_IOTHREAD_LOCK_GUARD(); BQL_LOCK_GUARD();
cpu_interrupt(cs, CPU_INTERRUPT_EXITTB); cpu_interrupt(cs, CPU_INTERRUPT_EXITTB);
} }
} }

View file

@ -655,7 +655,7 @@ void riscv_cpu_interrupt(CPURISCVState *env)
uint64_t gein, vsgein = 0, vstip = 0, irqf = 0; uint64_t gein, vsgein = 0, vstip = 0, irqf = 0;
CPUState *cs = env_cpu(env); CPUState *cs = env_cpu(env);
QEMU_IOTHREAD_LOCK_GUARD(); BQL_LOCK_GUARD();
if (env->virt_enabled) { if (env->virt_enabled) {
gein = get_field(env->hstatus, HSTATUS_VGEIN); gein = get_field(env->hstatus, HSTATUS_VGEIN);
@ -681,7 +681,7 @@ uint64_t riscv_cpu_update_mip(CPURISCVState *env, uint64_t mask, uint64_t value)
/* No need to update mip for VSTIP */ /* No need to update mip for VSTIP */
mask = ((mask == MIP_VSTIP) && env->vstime_irq) ? 0 : mask; mask = ((mask == MIP_VSTIP) && env->vstime_irq) ? 0 : mask;
QEMU_IOTHREAD_LOCK_GUARD(); BQL_LOCK_GUARD();
env->mip = (env->mip & ~mask) | (value & mask); env->mip = (env->mip & ~mask) | (value & mask);