All of lore.kernel.org
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH 0/2] vl: Fix -drive / -blockdev persistent reservation management
@ 2019-06-04 15:12 Markus Armbruster
  2019-06-04 15:12 ` [Qemu-devel] [PATCH 1/2] " Markus Armbruster
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: Markus Armbruster @ 2019-06-04 15:12 UTC (permalink / raw)
  To: qemu-devel; +Cc: pbonzini, mprivozn

This is a minimal regression fix.  There's more work to do nearby.
Left for another day.

Markus Armbruster (2):
  vl: Fix -drive / -blockdev persistent reservation management
  vl: Document why objects are delayed

 vl.c | 13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)

-- 
2.21.0



^ permalink raw reply	[flat|nested] 4+ messages in thread

* [Qemu-devel] [PATCH 1/2] vl: Fix -drive / -blockdev persistent reservation management
  2019-06-04 15:12 [Qemu-devel] [PATCH 0/2] vl: Fix -drive / -blockdev persistent reservation management Markus Armbruster
@ 2019-06-04 15:12 ` Markus Armbruster
  2019-06-04 15:12 ` [Qemu-devel] [PATCH 2/2] vl: Document why objects are delayed Markus Armbruster
  2019-06-04 15:22 ` [Qemu-devel] [PATCH 0/2] vl: Fix -drive / -blockdev persistent reservation management Michal Privoznik
  2 siblings, 0 replies; 4+ messages in thread
From: Markus Armbruster @ 2019-06-04 15:12 UTC (permalink / raw)
  To: qemu-devel; +Cc: pbonzini, mprivozn

qemu-system-FOO's main() acts on command line arguments in its own
idiosyncratic order.  There's not much method to its madness.
Whenever we find a case where one kind of command line argument needs
to refer to something created for another kind later, we rejigger the
order.

Recent commit cda4aa9a5a "vl: Create block backends before setting
machine properties" was such a rejigger.  Block backends are now
created before "delayed" objects.  This broke persistent reservation
management.  Reproducer:

    $ qemu-system-x86_64 -object pr-manager-helper,id=pr-helper0,path=/tmp/pr-helper0.sock-drive -drive file=/dev/mapper/crypt,file.pr-manager=pr-helper0,format=raw,if=none,id=drive-scsi0-0-0-2
    qemu-system-x86_64: -drive file=/dev/mapper/crypt,file.pr-manager=pr-helper0,format=raw,if=none,id=drive-scsi0-0-0-2: No persistent reservation manager with id 'pr-helper0'

The delayed pr-manager-helper object is created too late for use by
-drive or -blockdev.  Normal objects are still created in time.

pr-manager-helper has always been a delayed object (commit 7c9e527659
"scsi, file-posix: add support for persistent reservation
management").  Turns out there's no real reason for that.  Make it a
normal object.

Fixes: cda4aa9a5a08777cf13e164c0543bd4888b8adce
Signed-off-by: Markus Armbruster <armbru@redhat.com>
---
 vl.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/vl.c b/vl.c
index f023a8ca73..cc6246d2af 100644
--- a/vl.c
+++ b/vl.c
@@ -2751,8 +2751,7 @@ static bool object_create_initial(const char *type, QemuOpts *opts)
         exit(0);
     }
 
-    if (g_str_equal(type, "rng-egd") ||
-        g_str_has_prefix(type, "pr-manager-")) {
+    if (g_str_equal(type, "rng-egd")) {
         return false;
     }
 
-- 
2.21.0



^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [Qemu-devel] [PATCH 2/2] vl: Document why objects are delayed
  2019-06-04 15:12 [Qemu-devel] [PATCH 0/2] vl: Fix -drive / -blockdev persistent reservation management Markus Armbruster
  2019-06-04 15:12 ` [Qemu-devel] [PATCH 1/2] " Markus Armbruster
@ 2019-06-04 15:12 ` Markus Armbruster
  2019-06-04 15:22 ` [Qemu-devel] [PATCH 0/2] vl: Fix -drive / -blockdev persistent reservation management Michal Privoznik
  2 siblings, 0 replies; 4+ messages in thread
From: Markus Armbruster @ 2019-06-04 15:12 UTC (permalink / raw)
  To: qemu-devel; +Cc: pbonzini, mprivozn

Objects should not be "delayed" without a reason, as the previous
commit demonstrates.  The remaining ones have reasons.  State them.
and demand future ones come with such a statement.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
---
 vl.c | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/vl.c b/vl.c
index cc6246d2af..cd1fbc4cdc 100644
--- a/vl.c
+++ b/vl.c
@@ -2751,19 +2751,25 @@ static bool object_create_initial(const char *type, QemuOpts *opts)
         exit(0);
     }
 
+    /*
+     * Objects should not be made "delayed" without a reason.  If you
+     * add one, state the reason in a comment!
+     */
+
+    /* Reason: rng-egd property "chardev" */
     if (g_str_equal(type, "rng-egd")) {
         return false;
     }
 
 #if defined(CONFIG_VHOST_USER) && defined(CONFIG_LINUX)
+    /* Reason: cryptodev-vhost-user property "chardev" */
     if (g_str_equal(type, "cryptodev-vhost-user")) {
         return false;
     }
 #endif
 
     /*
-     * return false for concrete netfilters since
-     * they depend on netdevs already existing
+     * Reason: filter-* property "netdev" etc.
      */
     if (g_str_equal(type, "filter-buffer") ||
         g_str_equal(type, "filter-dump") ||
-- 
2.21.0



^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [Qemu-devel] [PATCH 0/2] vl: Fix -drive / -blockdev persistent reservation management
  2019-06-04 15:12 [Qemu-devel] [PATCH 0/2] vl: Fix -drive / -blockdev persistent reservation management Markus Armbruster
  2019-06-04 15:12 ` [Qemu-devel] [PATCH 1/2] " Markus Armbruster
  2019-06-04 15:12 ` [Qemu-devel] [PATCH 2/2] vl: Document why objects are delayed Markus Armbruster
@ 2019-06-04 15:22 ` Michal Privoznik
  2 siblings, 0 replies; 4+ messages in thread
From: Michal Privoznik @ 2019-06-04 15:22 UTC (permalink / raw)
  To: Markus Armbruster, qemu-devel; +Cc: pbonzini

On 6/4/19 5:12 PM, Markus Armbruster wrote:
> This is a minimal regression fix.  There's more work to do nearby.
> Left for another day.
> 
> Markus Armbruster (2):
>    vl: Fix -drive / -blockdev persistent reservation management
>    vl: Document why objects are delayed
> 
>   vl.c | 13 +++++++++----
>   1 file changed, 9 insertions(+), 4 deletions(-)
> 

Reviewed-by: Michal Privoznik <mprivozn@redhat.com>

Thanks for fixing this.

Michal


^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2019-06-04 15:23 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-06-04 15:12 [Qemu-devel] [PATCH 0/2] vl: Fix -drive / -blockdev persistent reservation management Markus Armbruster
2019-06-04 15:12 ` [Qemu-devel] [PATCH 1/2] " Markus Armbruster
2019-06-04 15:12 ` [Qemu-devel] [PATCH 2/2] vl: Document why objects are delayed Markus Armbruster
2019-06-04 15:22 ` [Qemu-devel] [PATCH 0/2] vl: Fix -drive / -blockdev persistent reservation management Michal Privoznik

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.