qemu-stable
[Top][All Lists]
Advanced

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

Re: [PATCH 1/2] lockable: use QLNULL for a null lockable


From: Eric Blake
Subject: Re: [PATCH 1/2] lockable: use QLNULL for a null lockable
Date: Thu, 4 Jun 2020 11:22:28 -0500
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.8.0

On 6/3/20 5:49 PM, Joe Slater wrote:
Allows us to build with -Og and optimizations that
do not clean up dead-code.

Signed-off-by: Joe Slater <joe.slater@windriver.com>

to be squished

Signed-off-by: Joe Slater <joe.slater@windriver.com>

These last two lines can be elided (looks like a rebase mishap).

---
  block/block-backend.c          | 4 ++--
  block/block-copy.c             | 2 +-
  block/mirror.c                 | 5 +++--
  fsdev/qemu-fsdev-throttle.c    | 6 +++---
  hw/9pfs/9p.c                   | 2 +-
  include/qemu/lockable.h        | 3 +++
  util/qemu-co-shared-resource.c | 2 +-
  7 files changed, 14 insertions(+), 10 deletions(-)


If you use scripts/git.orderfile, your diff would show with the .h changes first, which are arguably the meat of this patch.

+++ b/block/mirror.c
@@ -28,6 +28,7 @@
  #define MAX_IO_BYTES (1 << 20) /* 1 Mb */
  #define DEFAULT_MIRROR_BUF_SIZE (MAX_IN_FLIGHT * MAX_IO_BYTES)
+
  /* The mirroring buffer is a list of granularity-sized chunks.
   * Free chunks are organized in a list.
   */

This hunk looks spurious.


+++ b/include/qemu/lockable.h
@@ -24,6 +24,9 @@ struct QemuLockable {
      QemuLockUnlockFunc *unlock;
  };
+#define QLNULL ((QemuLockable *)0)

Why not ((QemuLocakable *)NULL) ?
Why no comments why this type-safe NULL is useful?

+
+
  /* This function gives an error if an invalid, non-NULL pointer type is passed
   * to QEMU_MAKE_LOCKABLE.  For optimized builds, we can rely on dead-code 
elimination
   * from the compiler, and give the errors already at link time.
diff --git a/util/qemu-co-shared-resource.c b/util/qemu-co-shared-resource.c
index 1c83cd9..7423ea4 100644
--- a/util/qemu-co-shared-resource.c
+++ b/util/qemu-co-shared-resource.c
@@ -64,7 +64,7 @@ void coroutine_fn co_get_from_shres(SharedResource *s, 
uint64_t n)
  {
      assert(n <= s->total);
      while (!co_try_get_from_shres(s, n)) {
-        qemu_co_queue_wait(&s->queue, NULL);
+        qemu_co_queue_wait(&s->queue, QLNULL);

It looks like your macro is added to give the compiler some type-safety, but it is not obvious how it matters from just the commit message, without also looking at patch 2/2.

--
Eric Blake, Principal Software Engineer
Red Hat, Inc.           +1-919-301-3226
Virtualization:  qemu.org | libvirt.org




reply via email to

[Prev in Thread] Current Thread [Next in Thread]