qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Steven Sistare <steven.sistare@oracle.com>
To: Peter Maydell <peter.maydell@linaro.org>,
	Juan Quintela <quintela@redhat.com>
Cc: qemu-devel@nongnu.org, "Eric Farman" <farman@linux.ibm.com>,
	"Laurent Vivier" <lvivier@redhat.com>,
	"David Gibson" <david@gibson.dropbear.id.au>,
	qemu-block@nongnu.org, "Stefan Hajnoczi" <stefanha@redhat.com>,
	"Marcel Apfelbaum" <marcel.apfelbaum@gmail.com>,
	"Kevin Wolf" <kwolf@redhat.com>,
	"David Hildenbrand" <david@redhat.com>,
	"Samuel Thibault" <samuel.thibault@ens-lyon.org>,
	qemu-s390x@nongnu.org,
	"Richard Henderson" <richard.henderson@linaro.org>,
	"Leonardo Bras" <leobras@redhat.com>,
	"Corey Minyard" <cminyard@mvista.com>,
	"Ilya Leoshkevich" <iii@linux.ibm.com>,
	"Marc-André Lureau" <marcandre.lureau@redhat.com>,
	"Markus Armbruster" <armbru@redhat.com>,
	"Christian Borntraeger" <borntraeger@linux.ibm.com>,
	"Eduardo Habkost" <eduardo@habkost.net>,
	"Paolo Bonzini" <pbonzini@redhat.com>,
	qemu-ppc@nongnu.org, "Michael S. Tsirkin" <mst@redhat.com>,
	"Halil Pasic" <pasic@linux.ibm.com>,
	"Gerd Hoffmann" <kraxel@redhat.com>,
	"Cédric Le Goater" <clg@kaod.org>,
	"Li Zhijian" <lizhijian@fujitsu.com>,
	"Eric Blake" <eblake@redhat.com>,
	"Denis V. Lunev" <den@openvz.org>,
	"Hanna Reitz" <hreitz@redhat.com>,
	"Fabiano Rosas" <farosas@suse.de>,
	"Stefan Berger" <stefanb@linux.vnet.ibm.com>,
	qemu-arm@nongnu.org,
	"Daniel Henrique Barboza" <danielhb413@gmail.com>,
	"Thomas Huth" <thuth@redhat.com>,
	"Corey Minyard" <minyard@acm.org>, "John Snow" <jsnow@redhat.com>,
	"Jeff Cody" <codyprime@gmail.com>, "Peter Xu" <peterx@redhat.com>,
	"Nicholas Piggin" <npiggin@gmail.com>,
	"Harsh Prateek Bora" <harshpb@linux.ibm.com>,
	"Jason Wang" <jasowang@redhat.com>,
	"Daniel P. Berrangé" <berrange@redhat.com>,
	"Stefan Weil" <sw@weilnetz.de>,
	"Mark Cave-Ayland" <mark.cave-ayland@ilande.co.uk>,
	"Fam Zheng" <fam@euphon.net>
Subject: Re: [PULL 21/40] migration: per-mode blockers
Date: Thu, 9 Nov 2023 12:24:03 -0500	[thread overview]
Message-ID: <39d99e8d-29ee-431f-82a2-34947f9f4eb5@oracle.com> (raw)
In-Reply-To: <CAFEAcA_LrLsJ_4PnWLW0cuuTQRP5J7yq48xm8=kLDL39MObn9g@mail.gmail.com>

On 11/9/2023 12:10 PM, Peter Maydell wrote:
> On Thu, 2 Nov 2023 at 11:43, Juan Quintela <quintela@redhat.com> wrote:
>>
>> From: Steve Sistare <steven.sistare@oracle.com>
>>
>> Extend the blocker interface so that a blocker can be registered for
>> one or more migration modes.  The existing interfaces register a
>> blocker for all modes, and the new interfaces take a varargs list
>> of modes.
>>
>> Internally, maintain a separate blocker list per mode.  The same Error
>> object may be added to multiple lists.  When a block is deleted, it is
>> removed from every list, and the Error is freed.
>>
>> No functional change until a new mode is added.
> 
> Hi; Coverity worries about this code:
> 
>> -static GSList *migration_blockers;
>> +static GSList *migration_blockers[MIG_MODE__MAX];
>>
>>  static bool migration_object_check(MigrationState *ms, Error **errp);
>>  static int migration_maybe_pause(MigrationState *s,
>> @@ -1043,7 +1043,7 @@ static void fill_source_migration_info(MigrationInfo *info)
>>  {
>>      MigrationState *s = migrate_get_current();
>>      int state = qatomic_read(&s->state);
>> -    GSList *cur_blocker = migration_blockers;
>> +    GSList *cur_blocker = migration_blockers[migrate_mode()];
> 
> because it thinks that migrate_mode() might return a value that's
> too big for the migration_blockers[] array. (CID 1523829, 1523830.)
> 
> I think Coverity complains mostly because it doesn't understand
> that the MIG_MODE__MAX in the enum is not a valid enum value
> that a function returning a MigMode might return. But we can
> help it out by assert()ing in migrate_mode() that the value
> we're about to return is definitely a valid mode.

Thanks Peter, I will submit a fix with suggested-by, unless you want to.
I'll look at all uses of migration_blocker[].
Would coverity be happier if I also increase the size of the array?

- Steve


  reply	other threads:[~2023-11-09 17:25 UTC|newest]

Thread overview: 48+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-11-02 11:40 [PULL 00/40] Migration 20231102 patches Juan Quintela
2023-11-02 11:40 ` [PULL 01/40] hw/ipmi: Don't call vmstate_register() from instance_init() functions Juan Quintela
2023-11-02 11:40 ` [PULL 02/40] hw/s390x/s390-skeys: Don't call register_savevm_live() during instance_init() Juan Quintela
2023-11-02 11:40 ` [PULL 03/40] hw/s390x/s390-stattrib: Simplify handling of the "migration-enabled" property Juan Quintela
2023-11-02 11:40 ` [PULL 04/40] hw/s390x/s390-stattrib: Don't call register_savevm_live() during instance_init() Juan Quintela
2023-11-02 11:40 ` [PULL 05/40] migration: Create vmstate_register_any() Juan Quintela
2023-11-02 11:40 ` [PULL 06/40] migration: Use vmstate_register_any() Juan Quintela
2023-11-02 11:40 ` [PULL 07/40] migration: Use vmstate_register_any() for isa-ide Juan Quintela
2023-11-02 11:40 ` [PULL 08/40] migration: Use VMSTATE_INSTANCE_ID_ANY for slirp Juan Quintela
2023-11-02 11:40 ` [PULL 09/40] migration: Hack to maintain backwards compatibility for ppc Juan Quintela
2023-11-02 11:40 ` [PULL 10/40] migration: Check in savevm_state_handler_insert for dups Juan Quintela
2023-11-02 11:40 ` [PULL 11/40] migration: Improve example and documentation of vmstate_register() Juan Quintela
2023-11-02 11:40 ` [PULL 12/40] migration: Use vmstate_register_any() for audio Juan Quintela
2023-11-02 11:40 ` [PULL 13/40] migration: Use vmstate_register_any() for eeprom93xx Juan Quintela
2023-11-02 11:40 ` [PULL 14/40] migration: Use vmstate_register_any() for vmware_vga Juan Quintela
2023-11-02 11:40 ` [PULL 15/40] migration: Set downtime_start even for postcopy Juan Quintela
2023-11-02 11:40 ` [PULL 16/40] migration: Add migration_downtime_start|end() helpers Juan Quintela
2023-11-02 11:40 ` [PULL 17/40] migration: Add per vmstate downtime tracepoints Juan Quintela
2023-11-02 11:40 ` [PULL 18/40] migration: migration_stop_vm() helper Juan Quintela
2023-11-02 11:40 ` [PULL 19/40] migration: Add tracepoints for downtime checkpoints Juan Quintela
2023-11-02 11:40 ` [PULL 20/40] migration: mode parameter Juan Quintela
2023-11-02 11:40 ` [PULL 21/40] migration: per-mode blockers Juan Quintela
2023-11-09 17:10   ` Peter Maydell
2023-11-09 17:24     ` Steven Sistare [this message]
2023-11-09 17:27       ` Peter Maydell
2023-11-02 11:40 ` [PULL 22/40] cpr: relax blockdev migration blockers Juan Quintela
2023-11-02 11:40 ` [PULL 23/40] cpr: relax vhost " Juan Quintela
2023-11-02 11:40 ` [PULL 24/40] cpr: reboot mode Juan Quintela
2023-11-02 11:40 ` [PULL 25/40] tests/qtest: migration: add reboot mode test Juan Quintela
2023-11-15 19:32   ` Steven Sistare
2023-11-02 11:40 ` [PULL 26/40] migration: Refactor error handling in source return path Juan Quintela
2023-11-02 11:40 ` [PULL 27/40] migration: Allow network to fail even during recovery Juan Quintela
2023-11-02 11:40 ` [PULL 28/40] tests/migration-test: Add a test for postcopy hangs during RECOVER Juan Quintela
2023-11-02 11:40 ` [PULL 29/40] migration: Change ram_dirty_bitmap_reload() retval to bool Juan Quintela
2023-11-02 11:40 ` [PULL 30/40] migration: New QAPI type 'MigrateAddress' Juan Quintela
2023-11-02 11:40 ` [PULL 31/40] migration: convert migration 'uri' into 'MigrateAddress' Juan Quintela
2023-11-02 11:40 ` [PULL 32/40] migration: convert socket backend to accept MigrateAddress Juan Quintela
2023-11-02 11:40 ` [PULL 33/40] migration: convert rdma " Juan Quintela
2023-11-02 11:40 ` [PULL 34/40] migration: convert exec " Juan Quintela
2023-11-02 11:40 ` [PULL 35/40] migration: Convert the file backend to the new QAPI syntax Juan Quintela
2023-11-02 11:40 ` [PULL 36/40] migration: New migrate and migrate-incoming argument 'channels' Juan Quintela
2023-11-02 11:40 ` [PULL 37/40] migration: modify migration_channels_and_uri_compatible() for new QAPI syntax Juan Quintela
2023-11-02 11:40 ` [PULL 38/40] migration: Implement MigrateChannelList to qmp migration flow Juan Quintela
2023-11-06 13:57   ` Peter Maydell
2023-11-06 14:27     ` Juan Quintela
2023-11-02 11:40 ` [PULL 39/40] migration: Implement MigrateChannelList to hmp " Juan Quintela
2023-11-02 11:40 ` [PULL 40/40] migration: modify test_multifd_tcp_none() to use new QAPI syntax Juan Quintela
2023-11-03  3:23 ` [PULL 00/40] Migration 20231102 patches 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=39d99e8d-29ee-431f-82a2-34947f9f4eb5@oracle.com \
    --to=steven.sistare@oracle.com \
    --cc=armbru@redhat.com \
    --cc=berrange@redhat.com \
    --cc=borntraeger@linux.ibm.com \
    --cc=clg@kaod.org \
    --cc=cminyard@mvista.com \
    --cc=codyprime@gmail.com \
    --cc=danielhb413@gmail.com \
    --cc=david@gibson.dropbear.id.au \
    --cc=david@redhat.com \
    --cc=den@openvz.org \
    --cc=eblake@redhat.com \
    --cc=eduardo@habkost.net \
    --cc=fam@euphon.net \
    --cc=farman@linux.ibm.com \
    --cc=farosas@suse.de \
    --cc=harshpb@linux.ibm.com \
    --cc=hreitz@redhat.com \
    --cc=iii@linux.ibm.com \
    --cc=jasowang@redhat.com \
    --cc=jsnow@redhat.com \
    --cc=kraxel@redhat.com \
    --cc=kwolf@redhat.com \
    --cc=leobras@redhat.com \
    --cc=lizhijian@fujitsu.com \
    --cc=lvivier@redhat.com \
    --cc=marcandre.lureau@redhat.com \
    --cc=marcel.apfelbaum@gmail.com \
    --cc=mark.cave-ayland@ilande.co.uk \
    --cc=minyard@acm.org \
    --cc=mst@redhat.com \
    --cc=npiggin@gmail.com \
    --cc=pasic@linux.ibm.com \
    --cc=pbonzini@redhat.com \
    --cc=peter.maydell@linaro.org \
    --cc=peterx@redhat.com \
    --cc=qemu-arm@nongnu.org \
    --cc=qemu-block@nongnu.org \
    --cc=qemu-devel@nongnu.org \
    --cc=qemu-ppc@nongnu.org \
    --cc=qemu-s390x@nongnu.org \
    --cc=quintela@redhat.com \
    --cc=richard.henderson@linaro.org \
    --cc=samuel.thibault@ens-lyon.org \
    --cc=stefanb@linux.vnet.ibm.com \
    --cc=stefanha@redhat.com \
    --cc=sw@weilnetz.de \
    --cc=thuth@redhat.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).