qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: BALATON Zoltan <balaton@eik.bme.hu>
To: Stefan Hajnoczi <stefanha@redhat.com>
Cc: "Peter Xu" <peterx@redhat.com>,
	qemu-devel@nongnu.org,
	"Jean-Christophe Dubois" <jcd@tribudubois.net>,
	"Fabiano Rosas" <farosas@suse.de>,
	qemu-s390x@nongnu.org, "Song Gao" <gaosong@loongson.cn>,
	"Marcel Apfelbaum" <marcel.apfelbaum@gmail.com>,
	"Thomas Huth" <thuth@redhat.com>,
	"Hyman Huang" <yong.huang@smartx.com>,
	"Marcelo Tosatti" <mtosatti@redhat.com>,
	"David Woodhouse" <dwmw2@infradead.org>,
	"Andrey Smirnov" <andrew.smirnov@gmail.com>,
	"Peter Maydell" <peter.maydell@linaro.org>,
	"Kevin Wolf" <kwolf@redhat.com>,
	"Ilya Leoshkevich" <iii@linux.ibm.com>,
	"Artyom Tarasenko" <atar4qemu@gmail.com>,
	"Mark Cave-Ayland" <mark.cave-ayland@ilande.co.uk>,
	"Max Filippov" <jcmvbkbc@gmail.com>,
	"Alistair Francis" <alistair.francis@wdc.com>,
	"Paul Durrant" <paul@xen.org>,
	"Jagannathan Raman" <jag.raman@oracle.com>,
	"Juan Quintela" <quintela@redhat.com>,
	"Daniel P. Berrangé" <berrange@redhat.com>,
	qemu-arm@nongnu.org, "Jason Wang" <jasowang@redhat.com>,
	"Gerd Hoffmann" <kraxel@redhat.com>,
	"Hanna Reitz" <hreitz@redhat.com>,
	"Marc-André Lureau" <marcandre.lureau@redhat.com>,
	"Daniel Henrique Barboza" <danielhb413@gmail.com>,
	"Elena Ufimtseva" <elena.ufimtseva@oracle.com>,
	"Aurelien Jarno" <aurelien@aurel32.net>,
	"Hailiang Zhang" <zhanghailiang@xfusion.com>,
	"Roman Bolshakov" <rbolshakov@ddn.com>,
	"Huacai Chen" <chenhuacai@kernel.org>,
	"Fam Zheng" <fam@euphon.net>, "Eric Blake" <eblake@redhat.com>,
	"Jiri Slaby" <jslaby@suse.cz>, "Alexander Graf" <agraf@csgraf.de>,
	"Liu Zhiwei" <zhiwei_liu@linux.alibaba.com>,
	"Weiwei Li" <liwei1518@gmail.com>,
	"Eric Farman" <farman@linux.ibm.com>,
	"Stafford Horne" <shorne@gmail.com>,
	"David Hildenbrand" <david@redhat.com>,
	"Markus Armbruster" <armbru@redhat.com>,
	"Reinoud Zandijk" <reinoud@netbsd.org>,
	"Palmer Dabbelt" <palmer@dabbelt.com>,
	"Cameron Esfahani" <dirty@apple.com>,
	xen-devel@lists.xenproject.org,
	"Pavel Dovgalyuk" <pavel.dovgaluk@ispras.ru>,
	qemu-riscv@nongnu.org,
	"Aleksandar Rikalo" <aleksandar.rikalo@syrmia.com>,
	"John Snow" <jsnow@redhat.com>,
	"Sunil Muthuswamy" <sunilmut@microsoft.com>,
	"Michael Roth" <michael.roth@amd.com>,
	"David Gibson" <david@gibson.dropbear.id.au>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	"Richard Henderson" <richard.henderson@linaro.org>,
	"Bin Meng" <bin.meng@windriver.com>,
	"Stefano Stabellini" <sstabellini@kernel.org>,
	kvm@vger.kernel.org, qemu-block@nongnu.org,
	"Halil Pasic" <pasic@linux.ibm.com>,
	"Anthony Perard" <anthony.perard@citrix.com>,
	"Harsh Prateek Bora" <harshpb@linux.ibm.com>,
	"Alex Bennée" <alex.bennee@linaro.org>,
	"Eduardo Habkost" <eduardo@habkost.net>,
	"Paolo Bonzini" <pbonzini@redhat.com>,
	"Vladimir Sementsov-Ogievskiy" <vsementsov@yandex-team.ru>,
	"Cédric Le Goater" <clg@kaod.org>,
	qemu-ppc@nongnu.org, "Philippe Mathieu-Daudé" <philmd@linaro.org>,
	"Christian Borntraeger" <borntraeger@linux.ibm.com>,
	"Akihiko Odaki" <akihiko.odaki@daynix.com>,
	"Leonardo Bras" <leobras@redhat.com>,
	"Nicholas Piggin" <npiggin@gmail.com>,
	"Jiaxun Yang" <jiaxun.yang@flygoat.com>
Subject: Re: [PATCH 1/6] system/cpus: rename qemu_mutex_lock_iothread() to qemu_bql_lock()
Date: Thu, 30 Nov 2023 22:41:09 +0100 (CET)	[thread overview]
Message-ID: <2e5f3da3-958e-fed3-5e15-0e9aa09159e1@eik.bme.hu> (raw)
In-Reply-To: <20231130204325.GE1184658@fedora>

On Thu, 30 Nov 2023, Stefan Hajnoczi wrote:

> On Thu, Nov 30, 2023 at 03:08:49PM -0500, Peter Xu wrote:
>> On Wed, Nov 29, 2023 at 04:26:20PM -0500, Stefan Hajnoczi wrote:
>>> The Big QEMU Lock (BQL) has many names and they are confusing. The
>>> actual QemuMutex variable is called qemu_global_mutex but it's commonly
>>> referred to as the BQL in discussions and some code comments. The
>>> locking APIs, however, are called qemu_mutex_lock_iothread() and
>>> qemu_mutex_unlock_iothread().
>>>
>>> The "iothread" name is historic and comes from when the main thread was
>>> split into into KVM vcpu threads and the "iothread" (now called the main
>>> loop thread). I have contributed to the confusion myself by introducing
>>> a separate --object iothread, a separate concept unrelated to the BQL.
>>>
>>> The "iothread" name is no longer appropriate for the BQL. Rename the
>>> locking APIs to:
>>> - void qemu_bql_lock(void)
>>> - void qemu_bql_unlock(void)
>>> - bool qemu_bql_locked(void)
>>>
>>> There are more APIs with "iothread" in their names. Subsequent patches
>>> will rename them. There are also comments and documentation that will be
>>> updated in later patches.
>>>
>>> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
>>
>> Acked-by: Peter Xu <peterx@redhat.com>
>>
>> Two nickpicks:
>>
>>   - BQL contains "QEMU" as the 2nd character, so maybe easier to further
>>     rename qemu_bql into bql_?
>
> Philippe wondered whether the variable name should end with _mutex (or
> _lock is common too), so an alternative might be big_qemu_lock. That's
> imperfect because it doesn't start with the usual qemu_ prefix.
> qemu_big_lock is better in that regard but inconsistent with our BQL
> abbreviation.

BQL isn't very specific for those unfamiliar with the code but it's short 
and already used and known by people so I'm OK with qemu_bql with some 
comments and docs explainig here and there what bql stands for should be 
enough for new people to quickly find out. If we want to be more verbose 
how about "qemu_global_mutex" which is self describing but longer and does 
not resemble BQL so then comments may be needed to explain this is what 
was called BQL as well. I don't mind either way though.

Regards,
BALATON Zoltan

> I don't like putting an underscore at the end. It's unusual and would
> make me wonder what that means.
>
> Naming is hard, but please discuss and I'm open to change to BQL
> variable's name to whatever we all agree on.
>
>>
>>   - Could we keep the full spell of BQL at some places, so people can still
>>     reference it if not familiar?  IIUC most of the BQL helpers will root
>>     back to the major three functions (_lock, _unlock, _locked), perhaps
>>     add a comment of "BQL stands for..." over these three functions as
>>     comment?
>
> Yes, I'll update the doc comments to say "Big QEMU Lock (BQL)" for each
> of these functions.
>
> Stefan
>


  parent reply	other threads:[~2023-11-30 21:41 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-11-29 21:26 [PATCH 0/6] Make Big QEMU Lock naming consistent Stefan Hajnoczi
2023-11-29 21:26 ` [PATCH 1/6] system/cpus: rename qemu_mutex_lock_iothread() to qemu_bql_lock() Stefan Hajnoczi
2023-11-30  9:02   ` Paul Durrant
2023-11-30 12:20   ` Fabiano Rosas
2023-11-30 12:25   ` David Woodhouse
2023-11-30 12:57   ` Cédric Le Goater
2023-11-30 20:08   ` Peter Xu
2023-11-30 20:43     ` Stefan Hajnoczi
2023-11-30 20:56       ` Peter Xu
2023-11-30 21:41       ` BALATON Zoltan [this message]
2023-11-30 21:48   ` Eric Farman
2023-12-01  5:12   ` Harsh Prateek Bora
2023-12-07 11:44     ` Stefan Hajnoczi
2023-11-29 21:26 ` [PATCH 2/6] qemu/main-loop: rename QEMU_IOTHREAD_LOCK_GUARD to QEMU_BQL_LOCK_GUARD Stefan Hajnoczi
2023-11-30  9:03   ` Paul Durrant
2023-11-30  9:14   ` Ilya Leoshkevich
2023-11-30 20:27     ` Stefan Hajnoczi
2023-12-01  7:10       ` Harsh Prateek Bora
2023-11-30 12:26   ` David Woodhouse
2023-11-30 12:58   ` Cédric Le Goater
2023-11-29 21:26 ` [PATCH 3/6] qemu/main-loop: rename qemu_cond_wait_iothread() to qemu_cond_wait_bql() Stefan Hajnoczi
2023-11-30 13:19   ` Cédric Le Goater
2023-11-30 13:36   ` Philippe Mathieu-Daudé
2023-11-29 21:26 ` [PATCH 4/6] system/cpus: rename qemu_global_mutex to qemu_bql Stefan Hajnoczi
2023-11-30 13:20   ` Cédric Le Goater
2023-11-30 13:44   ` Philippe Mathieu-Daudé
2023-11-30 20:31     ` Stefan Hajnoczi
2023-11-29 21:26 ` [PATCH 5/6] Replace "iothread lock" with "BQL" in comments Stefan Hajnoczi
2023-11-30 13:47   ` Philippe Mathieu-Daudé
2023-11-30 20:36     ` Stefan Hajnoczi
2023-11-29 21:26 ` [PATCH 6/6] Rename "QEMU global mutex" to "BQL" in comments and docs Stefan Hajnoczi
2023-11-30  7:17   ` Markus Armbruster
2023-11-30 13:49   ` Philippe Mathieu-Daudé
2023-11-30 20:37     ` Stefan Hajnoczi

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=2e5f3da3-958e-fed3-5e15-0e9aa09159e1@eik.bme.hu \
    --to=balaton@eik.bme.hu \
    --cc=agraf@csgraf.de \
    --cc=akihiko.odaki@daynix.com \
    --cc=aleksandar.rikalo@syrmia.com \
    --cc=alex.bennee@linaro.org \
    --cc=alistair.francis@wdc.com \
    --cc=andrew.smirnov@gmail.com \
    --cc=anthony.perard@citrix.com \
    --cc=armbru@redhat.com \
    --cc=atar4qemu@gmail.com \
    --cc=aurelien@aurel32.net \
    --cc=berrange@redhat.com \
    --cc=bin.meng@windriver.com \
    --cc=borntraeger@linux.ibm.com \
    --cc=chenhuacai@kernel.org \
    --cc=clg@kaod.org \
    --cc=danielhb413@gmail.com \
    --cc=david@gibson.dropbear.id.au \
    --cc=david@redhat.com \
    --cc=dirty@apple.com \
    --cc=dwmw2@infradead.org \
    --cc=eblake@redhat.com \
    --cc=eduardo@habkost.net \
    --cc=elena.ufimtseva@oracle.com \
    --cc=fam@euphon.net \
    --cc=farman@linux.ibm.com \
    --cc=farosas@suse.de \
    --cc=gaosong@loongson.cn \
    --cc=harshpb@linux.ibm.com \
    --cc=hreitz@redhat.com \
    --cc=iii@linux.ibm.com \
    --cc=jag.raman@oracle.com \
    --cc=jasowang@redhat.com \
    --cc=jcd@tribudubois.net \
    --cc=jcmvbkbc@gmail.com \
    --cc=jiaxun.yang@flygoat.com \
    --cc=jslaby@suse.cz \
    --cc=jsnow@redhat.com \
    --cc=kraxel@redhat.com \
    --cc=kvm@vger.kernel.org \
    --cc=kwolf@redhat.com \
    --cc=leobras@redhat.com \
    --cc=liwei1518@gmail.com \
    --cc=marcandre.lureau@redhat.com \
    --cc=marcel.apfelbaum@gmail.com \
    --cc=mark.cave-ayland@ilande.co.uk \
    --cc=michael.roth@amd.com \
    --cc=mst@redhat.com \
    --cc=mtosatti@redhat.com \
    --cc=npiggin@gmail.com \
    --cc=palmer@dabbelt.com \
    --cc=pasic@linux.ibm.com \
    --cc=paul@xen.org \
    --cc=pavel.dovgaluk@ispras.ru \
    --cc=pbonzini@redhat.com \
    --cc=peter.maydell@linaro.org \
    --cc=peterx@redhat.com \
    --cc=philmd@linaro.org \
    --cc=qemu-arm@nongnu.org \
    --cc=qemu-block@nongnu.org \
    --cc=qemu-devel@nongnu.org \
    --cc=qemu-ppc@nongnu.org \
    --cc=qemu-riscv@nongnu.org \
    --cc=qemu-s390x@nongnu.org \
    --cc=quintela@redhat.com \
    --cc=rbolshakov@ddn.com \
    --cc=reinoud@netbsd.org \
    --cc=richard.henderson@linaro.org \
    --cc=shorne@gmail.com \
    --cc=sstabellini@kernel.org \
    --cc=stefanha@redhat.com \
    --cc=sunilmut@microsoft.com \
    --cc=thuth@redhat.com \
    --cc=vsementsov@yandex-team.ru \
    --cc=xen-devel@lists.xenproject.org \
    --cc=yong.huang@smartx.com \
    --cc=zhanghailiang@xfusion.com \
    --cc=zhiwei_liu@linux.alibaba.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).