From patchwork Tue Jan 2 15:35:24 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stefan Hajnoczi X-Patchwork-Id: 13509126 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 4CEE0C47077 for ; Tue, 2 Jan 2024 15:38:08 +0000 (UTC) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1rKgnv-0002d7-V9; Tue, 02 Jan 2024 10:35:43 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rKgnt-0002cV-W5 for qemu-devel@nongnu.org; Tue, 02 Jan 2024 10:35:42 -0500 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rKgnq-0006AM-NS for qemu-devel@nongnu.org; Tue, 02 Jan 2024 10:35:41 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1704209737; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ouwQCxUmvOVgAb+tQSARaZyGpSNS0e2t7AfE4iNocH4=; b=iv4fcStRWGoIZ+3LBI/ZJkDadBiufcaJ/irNyjVYlHjeDwLnW+FXP2gzlSh1znhnPLaw1Q Q9uy+LsNpDxiI7Nvx4kPUuyC2LuxqmaPyebz9GIk2cv2xTG3EiZZzBblp6krT1YPOZIwHf qD1J9B2rFajB4SHz8trg1SUJTNKJhi4= Received: from mimecast-mx02.redhat.com (mx-ext.redhat.com [66.187.233.73]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-383-TFxt5OeqMum2uB9b2QHDrA-1; Tue, 02 Jan 2024 10:35:35 -0500 X-MC-Unique: TFxt5OeqMum2uB9b2QHDrA-1 Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.rdu2.redhat.com [10.11.54.6]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 014B03C02748; Tue, 2 Jan 2024 15:35:33 +0000 (UTC) Received: from localhost (unknown [10.39.193.188]) by smtp.corp.redhat.com (Postfix) with ESMTP id 0D5AA2166B31; Tue, 2 Jan 2024 15:35:31 +0000 (UTC) From: Stefan Hajnoczi To: qemu-devel@nongnu.org Cc: Hanna Reitz , qemu-riscv@nongnu.org, Roman Bolshakov , =?utf-8?q?C=C3=A9dric_Le_Goater?= , Elena Ufimtseva , Eduardo Habkost , Thomas Huth , Stefan Hajnoczi , qemu-block@nongnu.org, Andrey Smirnov , Peter Maydell , Huacai Chen , Fam Zheng , Gerd Hoffmann , David Gibson , John Snow , Stafford Horne , Weiwei Li , Jean-Christophe Dubois , Cameron Esfahani , Alexander Graf , David Hildenbrand , Juan Quintela , Nicholas Piggin , Max Filippov , =?utf-8?q?Daniel_P=2E_Berrang=C3=A9?= , Paolo Bonzini , Daniel Henrique Barboza , Markus Armbruster , Peter Xu , Vladimir Sementsov-Ogievskiy , Richard Henderson , qemu-s390x@nongnu.org, Jiri Slaby , Pavel Dovgalyuk , Eric Blake , Akihiko Odaki , =?utf-8?q?Alex_Benn=C3=A9e?= , Aleksandar Rikalo , "Michael S. Tsirkin" , Jason Wang , Jiaxun Yang , Sunil Muthuswamy , Alistair Francis , =?utf-8?q?Philippe_Mathieu-Dau?= =?utf-8?q?d=C3=A9?= , Fabiano Rosas , Michael Roth , Paul Durrant , Jagannathan Raman , Mark Cave-Ayland , Stefano Stabellini , Hyman Huang , =?utf-8?q?Marc-Andr=C3=A9_Lureau?= , xen-devel@lists.xenproject.org, Halil Pasic , Christian Borntraeger , Song Gao , Kevin Wolf , Ilya Leoshkevich , Artyom Tarasenko , Marcel Apfelbaum , Reinoud Zandijk , qemu-ppc@nongnu.org, Marcelo Tosatti , David Woodhouse , Aurelien Jarno , Bin Meng , qemu-arm@nongnu.org, Anthony Perard , Leonardo Bras , Hailiang Zhang , Harsh Prateek Bora , kvm@vger.kernel.org, Palmer Dabbelt , Eric Farman , BALATON Zoltan , Liu Zhiwei Subject: [PATCH v3 0/5] Make Big QEMU Lock naming consistent Date: Tue, 2 Jan 2024 10:35:24 -0500 Message-ID: <20240102153529.486531-1-stefanha@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.4.1 on 10.11.54.6 Received-SPF: pass client-ip=170.10.129.124; envelope-from=stefanha@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -42 X-Spam_score: -4.3 X-Spam_bar: ---- X-Spam_report: (-4.3 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-2.178, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org 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(-) Reviewed-by: Akihiko Odaki