[PATCH v3 0/5] Make Big QEMU Lock naming consistent

Stefan Hajnoczi posted 5 patches 3 months, 3 weeks ago
Failed in applying to current master (apply log)
There is a newer version of this series
docs/devel/multi-thread-tcg.rst      |   7 +-
docs/devel/qapi-code-gen.rst         |   2 +-
docs/devel/replay.rst                |   2 +-
docs/devel/reset.rst                 |   2 +-
docs/devel/multiple-iothreads.txt    |  14 ++--
hw/display/qxl.h                     |   2 +-
include/block/aio-wait.h             |   2 +-
include/block/blockjob.h             |   6 +-
include/exec/cpu-common.h            |   2 +-
include/exec/memory.h                |   4 +-
include/exec/ramblock.h              |   2 +-
include/io/task.h                    |   2 +-
include/migration/register.h         |   8 +-
include/qemu/coroutine-core.h        |   2 +-
include/qemu/coroutine.h             |   2 +-
include/qemu/main-loop.h             |  68 ++++++++-------
include/qemu/thread.h                |   2 +-
target/arm/internals.h               |   4 +-
accel/accel-blocker.c                |  10 +--
accel/dummy-cpus.c                   |   8 +-
accel/hvf/hvf-accel-ops.c            |   4 +-
accel/kvm/kvm-accel-ops.c            |   4 +-
accel/kvm/kvm-all.c                  |  22 ++---
accel/tcg/cpu-exec.c                 |  26 +++---
accel/tcg/cputlb.c                   |  20 ++---
accel/tcg/tcg-accel-ops-icount.c     |   6 +-
accel/tcg/tcg-accel-ops-mttcg.c      |  12 +--
accel/tcg/tcg-accel-ops-rr.c         |  18 ++--
accel/tcg/tcg-accel-ops.c            |   2 +-
accel/tcg/translate-all.c            |   2 +-
cpu-common.c                         |   4 +-
dump/dump.c                          |   4 +-
hw/block/dataplane/virtio-blk.c      |   8 +-
hw/block/virtio-blk.c                |   2 +-
hw/core/cpu-common.c                 |   6 +-
hw/display/virtio-gpu.c              |   2 +-
hw/i386/intel_iommu.c                |   6 +-
hw/i386/kvm/xen_evtchn.c             |  30 +++----
hw/i386/kvm/xen_gnttab.c             |   2 +-
hw/i386/kvm/xen_overlay.c            |   2 +-
hw/i386/kvm/xen_xenstore.c           |   2 +-
hw/intc/arm_gicv3_cpuif.c            |   2 +-
hw/intc/s390_flic.c                  |  18 ++--
hw/mips/mips_int.c                   |   2 +-
hw/misc/edu.c                        |   4 +-
hw/misc/imx6_src.c                   |   2 +-
hw/misc/imx7_src.c                   |   2 +-
hw/net/xen_nic.c                     |   8 +-
hw/ppc/pegasos2.c                    |   2 +-
hw/ppc/ppc.c                         |   6 +-
hw/ppc/spapr.c                       |   2 +-
hw/ppc/spapr_events.c                |   2 +-
hw/ppc/spapr_rng.c                   |   4 +-
hw/ppc/spapr_softmmu.c               |   4 +-
hw/remote/mpqemu-link.c              |  22 ++---
hw/remote/vfio-user-obj.c            |   2 +-
hw/s390x/s390-skeys.c                |   2 +-
hw/scsi/virtio-scsi-dataplane.c      |   6 +-
migration/block-dirty-bitmap.c       |  14 ++--
migration/block.c                    |  38 ++++-----
migration/colo.c                     |  62 +++++++-------
migration/dirtyrate.c                |  12 +--
migration/migration.c                |  54 ++++++------
migration/ram.c                      |  16 ++--
net/tap.c                            |   2 +-
replay/replay-internal.c             |   2 +-
semihosting/console.c                |   8 +-
stubs/iothread-lock.c                |   6 +-
system/cpu-throttle.c                |   6 +-
system/cpus.c                        |  55 +++++++------
system/dirtylimit.c                  |   4 +-
system/memory.c                      |   2 +-
system/physmem.c                     |  14 ++--
system/runstate.c                    |   2 +-
system/watchpoint.c                  |   4 +-
target/arm/arm-powerctl.c            |  14 ++--
target/arm/helper.c                  |   6 +-
target/arm/hvf/hvf.c                 |   8 +-
target/arm/kvm.c                     |   8 +-
target/arm/ptw.c                     |   6 +-
target/arm/tcg/helper-a64.c          |   8 +-
target/arm/tcg/m_helper.c            |   6 +-
target/arm/tcg/op_helper.c           |  24 +++---
target/arm/tcg/psci.c                |   2 +-
target/hppa/int_helper.c             |   8 +-
target/i386/hvf/hvf.c                |   6 +-
target/i386/kvm/hyperv.c             |   4 +-
target/i386/kvm/kvm.c                |  28 +++----
target/i386/kvm/xen-emu.c            |  16 ++--
target/i386/nvmm/nvmm-accel-ops.c    |   6 +-
target/i386/nvmm/nvmm-all.c          |  20 ++---
target/i386/tcg/sysemu/fpu_helper.c  |   6 +-
target/i386/tcg/sysemu/misc_helper.c |   4 +-
target/i386/whpx/whpx-accel-ops.c    |   6 +-
target/i386/whpx/whpx-all.c          |  24 +++---
target/loongarch/csr_helper.c        |   4 +-
target/mips/kvm.c                    |   4 +-
target/mips/tcg/sysemu/cp0_helper.c  |   4 +-
target/openrisc/sys_helper.c         |  16 ++--
target/ppc/excp_helper.c             |  14 ++--
target/ppc/helper_regs.c             |   2 +-
target/ppc/kvm.c                     |   4 +-
target/ppc/misc_helper.c             |   8 +-
target/ppc/timebase_helper.c         |   8 +-
target/riscv/cpu_helper.c            |   4 +-
target/s390x/kvm/kvm.c               |   4 +-
target/s390x/tcg/misc_helper.c       | 118 +++++++++++++--------------
target/sparc/int32_helper.c          |   2 +-
target/sparc/int64_helper.c          |   6 +-
target/sparc/win_helper.c            |  20 ++---
target/xtensa/exc_helper.c           |   8 +-
ui/spice-core.c                      |   6 +-
util/async.c                         |   2 +-
util/main-loop.c                     |   8 +-
util/qsp.c                           |   6 +-
util/rcu.c                           |  16 ++--
audio/coreaudio.m                    |   8 +-
memory_ldst.c.inc                    |  18 ++--
target/i386/hvf/README.md            |   2 +-
ui/cocoa.m                           |  56 ++++++-------
120 files changed, 641 insertions(+), 643 deletions(-)
[PATCH v3 0/5] Make Big QEMU Lock naming consistent
Posted by Stefan Hajnoczi 3 months, 3 weeks ago
v3:
- Rebase
- Define bql_lock() macro on a single line [Akihiko Odaki]
v2:
- Rename APIs bql_*() [PeterX]
- Spell out "Big QEMU Lock (BQL)" in doc comments [PeterX]
- Rename "iolock" variables in hw/remote/mpqemu-link.c [Harsh]
- Fix bql_auto_lock() indentation in Patch 2 [Ilya]
- "with BQL taken" -> "with the BQL taken" [Philippe]
- "under BQL" -> "under the BQL" [Philippe]

The Big QEMU Lock ("BQL") has two other names: "iothread lock" and "QEMU global
mutex". The term "iothread lock" is easily confused with the unrelated --object
iothread (iothread.c).

This series updates the code and documentation to consistently use "BQL". This
makes the code easier to understand.

Stefan Hajnoczi (5):
  system/cpus: rename qemu_mutex_lock_iothread() to bql_lock()
  qemu/main-loop: rename QEMU_IOTHREAD_LOCK_GUARD to BQL_LOCK_GUARD
  qemu/main-loop: rename qemu_cond_wait_iothread() to
    qemu_cond_wait_bql()
  Replace "iothread lock" with "BQL" in comments
  Rename "QEMU global mutex" to "BQL" in comments and docs

 docs/devel/multi-thread-tcg.rst      |   7 +-
 docs/devel/qapi-code-gen.rst         |   2 +-
 docs/devel/replay.rst                |   2 +-
 docs/devel/reset.rst                 |   2 +-
 docs/devel/multiple-iothreads.txt    |  14 ++--
 hw/display/qxl.h                     |   2 +-
 include/block/aio-wait.h             |   2 +-
 include/block/blockjob.h             |   6 +-
 include/exec/cpu-common.h            |   2 +-
 include/exec/memory.h                |   4 +-
 include/exec/ramblock.h              |   2 +-
 include/io/task.h                    |   2 +-
 include/migration/register.h         |   8 +-
 include/qemu/coroutine-core.h        |   2 +-
 include/qemu/coroutine.h             |   2 +-
 include/qemu/main-loop.h             |  68 ++++++++-------
 include/qemu/thread.h                |   2 +-
 target/arm/internals.h               |   4 +-
 accel/accel-blocker.c                |  10 +--
 accel/dummy-cpus.c                   |   8 +-
 accel/hvf/hvf-accel-ops.c            |   4 +-
 accel/kvm/kvm-accel-ops.c            |   4 +-
 accel/kvm/kvm-all.c                  |  22 ++---
 accel/tcg/cpu-exec.c                 |  26 +++---
 accel/tcg/cputlb.c                   |  20 ++---
 accel/tcg/tcg-accel-ops-icount.c     |   6 +-
 accel/tcg/tcg-accel-ops-mttcg.c      |  12 +--
 accel/tcg/tcg-accel-ops-rr.c         |  18 ++--
 accel/tcg/tcg-accel-ops.c            |   2 +-
 accel/tcg/translate-all.c            |   2 +-
 cpu-common.c                         |   4 +-
 dump/dump.c                          |   4 +-
 hw/block/dataplane/virtio-blk.c      |   8 +-
 hw/block/virtio-blk.c                |   2 +-
 hw/core/cpu-common.c                 |   6 +-
 hw/display/virtio-gpu.c              |   2 +-
 hw/i386/intel_iommu.c                |   6 +-
 hw/i386/kvm/xen_evtchn.c             |  30 +++----
 hw/i386/kvm/xen_gnttab.c             |   2 +-
 hw/i386/kvm/xen_overlay.c            |   2 +-
 hw/i386/kvm/xen_xenstore.c           |   2 +-
 hw/intc/arm_gicv3_cpuif.c            |   2 +-
 hw/intc/s390_flic.c                  |  18 ++--
 hw/mips/mips_int.c                   |   2 +-
 hw/misc/edu.c                        |   4 +-
 hw/misc/imx6_src.c                   |   2 +-
 hw/misc/imx7_src.c                   |   2 +-
 hw/net/xen_nic.c                     |   8 +-
 hw/ppc/pegasos2.c                    |   2 +-
 hw/ppc/ppc.c                         |   6 +-
 hw/ppc/spapr.c                       |   2 +-
 hw/ppc/spapr_events.c                |   2 +-
 hw/ppc/spapr_rng.c                   |   4 +-
 hw/ppc/spapr_softmmu.c               |   4 +-
 hw/remote/mpqemu-link.c              |  22 ++---
 hw/remote/vfio-user-obj.c            |   2 +-
 hw/s390x/s390-skeys.c                |   2 +-
 hw/scsi/virtio-scsi-dataplane.c      |   6 +-
 migration/block-dirty-bitmap.c       |  14 ++--
 migration/block.c                    |  38 ++++-----
 migration/colo.c                     |  62 +++++++-------
 migration/dirtyrate.c                |  12 +--
 migration/migration.c                |  54 ++++++------
 migration/ram.c                      |  16 ++--
 net/tap.c                            |   2 +-
 replay/replay-internal.c             |   2 +-
 semihosting/console.c                |   8 +-
 stubs/iothread-lock.c                |   6 +-
 system/cpu-throttle.c                |   6 +-
 system/cpus.c                        |  55 +++++++------
 system/dirtylimit.c                  |   4 +-
 system/memory.c                      |   2 +-
 system/physmem.c                     |  14 ++--
 system/runstate.c                    |   2 +-
 system/watchpoint.c                  |   4 +-
 target/arm/arm-powerctl.c            |  14 ++--
 target/arm/helper.c                  |   6 +-
 target/arm/hvf/hvf.c                 |   8 +-
 target/arm/kvm.c                     |   8 +-
 target/arm/ptw.c                     |   6 +-
 target/arm/tcg/helper-a64.c          |   8 +-
 target/arm/tcg/m_helper.c            |   6 +-
 target/arm/tcg/op_helper.c           |  24 +++---
 target/arm/tcg/psci.c                |   2 +-
 target/hppa/int_helper.c             |   8 +-
 target/i386/hvf/hvf.c                |   6 +-
 target/i386/kvm/hyperv.c             |   4 +-
 target/i386/kvm/kvm.c                |  28 +++----
 target/i386/kvm/xen-emu.c            |  16 ++--
 target/i386/nvmm/nvmm-accel-ops.c    |   6 +-
 target/i386/nvmm/nvmm-all.c          |  20 ++---
 target/i386/tcg/sysemu/fpu_helper.c  |   6 +-
 target/i386/tcg/sysemu/misc_helper.c |   4 +-
 target/i386/whpx/whpx-accel-ops.c    |   6 +-
 target/i386/whpx/whpx-all.c          |  24 +++---
 target/loongarch/csr_helper.c        |   4 +-
 target/mips/kvm.c                    |   4 +-
 target/mips/tcg/sysemu/cp0_helper.c  |   4 +-
 target/openrisc/sys_helper.c         |  16 ++--
 target/ppc/excp_helper.c             |  14 ++--
 target/ppc/helper_regs.c             |   2 +-
 target/ppc/kvm.c                     |   4 +-
 target/ppc/misc_helper.c             |   8 +-
 target/ppc/timebase_helper.c         |   8 +-
 target/riscv/cpu_helper.c            |   4 +-
 target/s390x/kvm/kvm.c               |   4 +-
 target/s390x/tcg/misc_helper.c       | 118 +++++++++++++--------------
 target/sparc/int32_helper.c          |   2 +-
 target/sparc/int64_helper.c          |   6 +-
 target/sparc/win_helper.c            |  20 ++---
 target/xtensa/exc_helper.c           |   8 +-
 ui/spice-core.c                      |   6 +-
 util/async.c                         |   2 +-
 util/main-loop.c                     |   8 +-
 util/qsp.c                           |   6 +-
 util/rcu.c                           |  16 ++--
 audio/coreaudio.m                    |   8 +-
 memory_ldst.c.inc                    |  18 ++--
 target/i386/hvf/README.md            |   2 +-
 ui/cocoa.m                           |  56 ++++++-------
 120 files changed, 641 insertions(+), 643 deletions(-)

-- 
2.43.0
Re: [PATCH v3 0/5] Make Big QEMU Lock naming consistent
Posted by Stefan Hajnoczi 3 months, 2 weeks ago
On Tue, Jan 02, 2024 at 10:35:24AM -0500, Stefan Hajnoczi wrote:
> v3:
> - Rebase
> - Define bql_lock() macro on a single line [Akihiko Odaki]
> v2:
> - Rename APIs bql_*() [PeterX]
> - Spell out "Big QEMU Lock (BQL)" in doc comments [PeterX]
> - Rename "iolock" variables in hw/remote/mpqemu-link.c [Harsh]
> - Fix bql_auto_lock() indentation in Patch 2 [Ilya]
> - "with BQL taken" -> "with the BQL taken" [Philippe]
> - "under BQL" -> "under the BQL" [Philippe]
> 
> The Big QEMU Lock ("BQL") has two other names: "iothread lock" and "QEMU global
> mutex". The term "iothread lock" is easily confused with the unrelated --object
> iothread (iothread.c).
> 
> This series updates the code and documentation to consistently use "BQL". This
> makes the code easier to understand.
> 
> Stefan Hajnoczi (5):
>   system/cpus: rename qemu_mutex_lock_iothread() to bql_lock()
>   qemu/main-loop: rename QEMU_IOTHREAD_LOCK_GUARD to BQL_LOCK_GUARD
>   qemu/main-loop: rename qemu_cond_wait_iothread() to
>     qemu_cond_wait_bql()
>   Replace "iothread lock" with "BQL" in comments
>   Rename "QEMU global mutex" to "BQL" in comments and docs
> 
>  docs/devel/multi-thread-tcg.rst      |   7 +-
>  docs/devel/qapi-code-gen.rst         |   2 +-
>  docs/devel/replay.rst                |   2 +-
>  docs/devel/reset.rst                 |   2 +-
>  docs/devel/multiple-iothreads.txt    |  14 ++--
>  hw/display/qxl.h                     |   2 +-
>  include/block/aio-wait.h             |   2 +-
>  include/block/blockjob.h             |   6 +-
>  include/exec/cpu-common.h            |   2 +-
>  include/exec/memory.h                |   4 +-
>  include/exec/ramblock.h              |   2 +-
>  include/io/task.h                    |   2 +-
>  include/migration/register.h         |   8 +-
>  include/qemu/coroutine-core.h        |   2 +-
>  include/qemu/coroutine.h             |   2 +-
>  include/qemu/main-loop.h             |  68 ++++++++-------
>  include/qemu/thread.h                |   2 +-
>  target/arm/internals.h               |   4 +-
>  accel/accel-blocker.c                |  10 +--
>  accel/dummy-cpus.c                   |   8 +-
>  accel/hvf/hvf-accel-ops.c            |   4 +-
>  accel/kvm/kvm-accel-ops.c            |   4 +-
>  accel/kvm/kvm-all.c                  |  22 ++---
>  accel/tcg/cpu-exec.c                 |  26 +++---
>  accel/tcg/cputlb.c                   |  20 ++---
>  accel/tcg/tcg-accel-ops-icount.c     |   6 +-
>  accel/tcg/tcg-accel-ops-mttcg.c      |  12 +--
>  accel/tcg/tcg-accel-ops-rr.c         |  18 ++--
>  accel/tcg/tcg-accel-ops.c            |   2 +-
>  accel/tcg/translate-all.c            |   2 +-
>  cpu-common.c                         |   4 +-
>  dump/dump.c                          |   4 +-
>  hw/block/dataplane/virtio-blk.c      |   8 +-
>  hw/block/virtio-blk.c                |   2 +-
>  hw/core/cpu-common.c                 |   6 +-
>  hw/display/virtio-gpu.c              |   2 +-
>  hw/i386/intel_iommu.c                |   6 +-
>  hw/i386/kvm/xen_evtchn.c             |  30 +++----
>  hw/i386/kvm/xen_gnttab.c             |   2 +-
>  hw/i386/kvm/xen_overlay.c            |   2 +-
>  hw/i386/kvm/xen_xenstore.c           |   2 +-
>  hw/intc/arm_gicv3_cpuif.c            |   2 +-
>  hw/intc/s390_flic.c                  |  18 ++--
>  hw/mips/mips_int.c                   |   2 +-
>  hw/misc/edu.c                        |   4 +-
>  hw/misc/imx6_src.c                   |   2 +-
>  hw/misc/imx7_src.c                   |   2 +-
>  hw/net/xen_nic.c                     |   8 +-
>  hw/ppc/pegasos2.c                    |   2 +-
>  hw/ppc/ppc.c                         |   6 +-
>  hw/ppc/spapr.c                       |   2 +-
>  hw/ppc/spapr_events.c                |   2 +-
>  hw/ppc/spapr_rng.c                   |   4 +-
>  hw/ppc/spapr_softmmu.c               |   4 +-
>  hw/remote/mpqemu-link.c              |  22 ++---
>  hw/remote/vfio-user-obj.c            |   2 +-
>  hw/s390x/s390-skeys.c                |   2 +-
>  hw/scsi/virtio-scsi-dataplane.c      |   6 +-
>  migration/block-dirty-bitmap.c       |  14 ++--
>  migration/block.c                    |  38 ++++-----
>  migration/colo.c                     |  62 +++++++-------
>  migration/dirtyrate.c                |  12 +--
>  migration/migration.c                |  54 ++++++------
>  migration/ram.c                      |  16 ++--
>  net/tap.c                            |   2 +-
>  replay/replay-internal.c             |   2 +-
>  semihosting/console.c                |   8 +-
>  stubs/iothread-lock.c                |   6 +-
>  system/cpu-throttle.c                |   6 +-
>  system/cpus.c                        |  55 +++++++------
>  system/dirtylimit.c                  |   4 +-
>  system/memory.c                      |   2 +-
>  system/physmem.c                     |  14 ++--
>  system/runstate.c                    |   2 +-
>  system/watchpoint.c                  |   4 +-
>  target/arm/arm-powerctl.c            |  14 ++--
>  target/arm/helper.c                  |   6 +-
>  target/arm/hvf/hvf.c                 |   8 +-
>  target/arm/kvm.c                     |   8 +-
>  target/arm/ptw.c                     |   6 +-
>  target/arm/tcg/helper-a64.c          |   8 +-
>  target/arm/tcg/m_helper.c            |   6 +-
>  target/arm/tcg/op_helper.c           |  24 +++---
>  target/arm/tcg/psci.c                |   2 +-
>  target/hppa/int_helper.c             |   8 +-
>  target/i386/hvf/hvf.c                |   6 +-
>  target/i386/kvm/hyperv.c             |   4 +-
>  target/i386/kvm/kvm.c                |  28 +++----
>  target/i386/kvm/xen-emu.c            |  16 ++--
>  target/i386/nvmm/nvmm-accel-ops.c    |   6 +-
>  target/i386/nvmm/nvmm-all.c          |  20 ++---
>  target/i386/tcg/sysemu/fpu_helper.c  |   6 +-
>  target/i386/tcg/sysemu/misc_helper.c |   4 +-
>  target/i386/whpx/whpx-accel-ops.c    |   6 +-
>  target/i386/whpx/whpx-all.c          |  24 +++---
>  target/loongarch/csr_helper.c        |   4 +-
>  target/mips/kvm.c                    |   4 +-
>  target/mips/tcg/sysemu/cp0_helper.c  |   4 +-
>  target/openrisc/sys_helper.c         |  16 ++--
>  target/ppc/excp_helper.c             |  14 ++--
>  target/ppc/helper_regs.c             |   2 +-
>  target/ppc/kvm.c                     |   4 +-
>  target/ppc/misc_helper.c             |   8 +-
>  target/ppc/timebase_helper.c         |   8 +-
>  target/riscv/cpu_helper.c            |   4 +-
>  target/s390x/kvm/kvm.c               |   4 +-
>  target/s390x/tcg/misc_helper.c       | 118 +++++++++++++--------------
>  target/sparc/int32_helper.c          |   2 +-
>  target/sparc/int64_helper.c          |   6 +-
>  target/sparc/win_helper.c            |  20 ++---
>  target/xtensa/exc_helper.c           |   8 +-
>  ui/spice-core.c                      |   6 +-
>  util/async.c                         |   2 +-
>  util/main-loop.c                     |   8 +-
>  util/qsp.c                           |   6 +-
>  util/rcu.c                           |  16 ++--
>  audio/coreaudio.m                    |   8 +-
>  memory_ldst.c.inc                    |  18 ++--
>  target/i386/hvf/README.md            |   2 +-
>  ui/cocoa.m                           |  56 ++++++-------
>  120 files changed, 641 insertions(+), 643 deletions(-)
> 
> -- 
> 2.43.0
> 

Thanks, applied to my block tree:
https://gitlab.com/stefanha/qemu/commits/block

Stefan
Re: [PATCH v3 0/5] Make Big QEMU Lock naming consistent
Posted by Akihiko Odaki 3 months, 3 weeks ago
On 2024/01/03 0:35, Stefan Hajnoczi wrote:
> v3:
> - Rebase
> - Define bql_lock() macro on a single line [Akihiko Odaki]
> v2:
> - Rename APIs bql_*() [PeterX]
> - Spell out "Big QEMU Lock (BQL)" in doc comments [PeterX]
> - Rename "iolock" variables in hw/remote/mpqemu-link.c [Harsh]
> - Fix bql_auto_lock() indentation in Patch 2 [Ilya]
> - "with BQL taken" -> "with the BQL taken" [Philippe]
> - "under BQL" -> "under the BQL" [Philippe]
> 
> The Big QEMU Lock ("BQL") has two other names: "iothread lock" and "QEMU global
> mutex". The term "iothread lock" is easily confused with the unrelated --object
> iothread (iothread.c).
> 
> This series updates the code and documentation to consistently use "BQL". This
> makes the code easier to understand.

For the whole series,
Reviewed-by: Akihiko Odaki <akihiko.odaki@daynix.com>

Thank you for sorting this out.