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

Re: [PATCH 1/6] system/cpus: rename qemu_mutex_lock_iothread() to qemu_bql_lock()



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@xxxxxxxxxx>

Acked-by: Peter Xu <peterx@xxxxxxxxxx>

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




 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.