From: Steve Sistare <steven.sistare@oracle.com>
To: qemu-devel@nongnu.org
Cc: Alex Williamson <alex.williamson@redhat.com>,
Cedric Le Goater <clg@redhat.com>,
"Michael S. Tsirkin" <mst@redhat.com>,
David Hildenbrand <david@redhat.com>,
Peter Xu <peterx@redhat.com>, Fabiano Rosas <farosas@suse.de>,
Hailiang Zhang <zhanghailiang@xfusion.com>,
Zhang Chen <chen.zhang@intel.com>,
Li Zhijian <lizhijian@fujitsu.com>,
Jason Wang <jasowang@redhat.com>,
Hyman Huang <yong.huang@smartx.com>,
Song Gao <gaosong@loongson.cn>,
Alistair Francis <alistair.francis@wdc.com>,
Steve Sistare <steven.sistare@oracle.com>
Subject: [PATCH V2 08/11] migration: migration_file_set_error
Date: Mon, 11 Mar 2024 10:48:55 -0700 [thread overview]
Message-ID: <1710179338-294359-9-git-send-email-steven.sistare@oracle.com> (raw)
In-Reply-To: <1710179338-294359-1-git-send-email-steven.sistare@oracle.com>
Define and export migration_file_set_error to eliminate a dependency
on MigrationState.
Signed-off-by: Steve Sistare <steven.sistare@oracle.com>
---
hw/vfio/common.c | 9 +--------
hw/vfio/migration.c | 11 +++--------
include/migration/misc.h | 2 ++
migration/migration.c | 11 +++++++++++
4 files changed, 17 insertions(+), 16 deletions(-)
diff --git a/hw/vfio/common.c b/hw/vfio/common.c
index de01068..b44204e 100644
--- a/hw/vfio/common.c
+++ b/hw/vfio/common.c
@@ -39,7 +39,6 @@
#include "sysemu/runstate.h"
#include "trace.h"
#include "qapi/error.h"
-#include "migration/migration.h"
#include "migration/misc.h"
#include "migration/blocker.h"
#include "migration/qemu-file.h"
@@ -150,14 +149,8 @@ bool vfio_viommu_preset(VFIODevice *vbasedev)
static void vfio_set_migration_error(int err)
{
- MigrationState *ms = migrate_get_current();
-
if (migration_is_setup_or_active()) {
- WITH_QEMU_LOCK_GUARD(&ms->qemu_file_lock) {
- if (ms->to_dst_file) {
- qemu_file_set_error(ms->to_dst_file, err);
- }
- }
+ migration_file_set_error(err);
}
}
diff --git a/hw/vfio/migration.c b/hw/vfio/migration.c
index 5d4a23c..c5cb61d 100644
--- a/hw/vfio/migration.c
+++ b/hw/vfio/migration.c
@@ -17,13 +17,12 @@
#include "sysemu/runstate.h"
#include "hw/vfio/vfio-common.h"
-#include "migration/migration.h"
+#include "migration/misc.h"
#include "migration/savevm.h"
#include "migration/vmstate.h"
#include "migration/qemu-file.h"
#include "migration/register.h"
#include "migration/blocker.h"
-#include "migration/misc.h"
#include "qapi/error.h"
#include "exec/ramlist.h"
#include "exec/ram_addr.h"
@@ -712,9 +711,7 @@ static void vfio_vmstate_change_prepare(void *opaque, bool running,
* Migration should be aborted in this case, but vm_state_notify()
* currently does not support reporting failures.
*/
- if (migrate_get_current()->to_dst_file) {
- qemu_file_set_error(migrate_get_current()->to_dst_file, ret);
- }
+ migration_file_set_error(ret);
}
trace_vfio_vmstate_change_prepare(vbasedev->name, running,
@@ -744,9 +741,7 @@ static void vfio_vmstate_change(void *opaque, bool running, RunState state)
* Migration should be aborted in this case, but vm_state_notify()
* currently does not support reporting failures.
*/
- if (migrate_get_current()->to_dst_file) {
- qemu_file_set_error(migrate_get_current()->to_dst_file, ret);
- }
+ migration_file_set_error(ret);
}
trace_vfio_vmstate_change(vbasedev->name, running, RunState_str(state),
diff --git a/include/migration/misc.h b/include/migration/misc.h
index 28cfaed..e521cd5 100644
--- a/include/migration/misc.h
+++ b/include/migration/misc.h
@@ -109,6 +109,8 @@ bool migration_in_setup(MigrationState *);
bool migration_has_finished(MigrationState *);
bool migration_has_failed(MigrationState *);
bool migration_is_running(void);
+void migration_file_set_error(int err);
+
/* ...and after the device transmission */
/* True if incoming migration entered POSTCOPY_INCOMING_DISCARD */
bool migration_in_incoming_postcopy(void);
diff --git a/migration/migration.c b/migration/migration.c
index db1e627..216f63d 100644
--- a/migration/migration.c
+++ b/migration/migration.c
@@ -3038,6 +3038,17 @@ static MigThrError postcopy_pause(MigrationState *s)
}
}
+void migration_file_set_error(int err)
+{
+ MigrationState *s = current_migration;
+
+ WITH_QEMU_LOCK_GUARD(&s->qemu_file_lock) {
+ if (s->to_dst_file) {
+ qemu_file_set_error(s->to_dst_file, err);
+ }
+ }
+}
+
static MigThrError migration_detect_error(MigrationState *s)
{
int ret;
--
1.8.3.1
next prev parent reply other threads:[~2024-03-11 17:50 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-03-11 17:48 [PATCH V2 00/11] privatize migration.h Steve Sistare
2024-03-11 17:48 ` [PATCH V2 01/11] migration: remove migration.h references Steve Sistare
2024-03-11 17:48 ` [PATCH V2 02/11] migration: export migration_is_setup_or_active Steve Sistare
2024-03-11 17:48 ` [PATCH V2 03/11] migration: export migration_is_active Steve Sistare
2024-03-11 17:48 ` [PATCH V2 04/11] migration: export migration_is_running Steve Sistare
2024-03-11 17:48 ` [PATCH V2 05/11] migration: export vcpu_dirty_limit_period Steve Sistare
2024-03-11 17:48 ` [PATCH V2 06/11] migration: migration_thread_is_self Steve Sistare
2024-03-11 17:48 ` [PATCH V2 07/11] migration: migration_is_device Steve Sistare
2024-03-11 17:48 ` Steve Sistare [this message]
2024-03-11 17:48 ` [PATCH V2 09/11] migration: privatize colo interfaces Steve Sistare
2024-03-12 1:18 ` Zhang, Chen
2024-03-11 17:48 ` [PATCH V2 10/11] migration: delete unused accessors Steve Sistare
2024-03-11 17:48 ` [PATCH V2 11/11] migration: purge MigrationState from public interface Steve Sistare
2024-03-11 19:30 ` [PATCH V2 00/11] privatize migration.h Peter Xu
2024-03-11 19:45 ` Steven Sistare
2024-03-11 20:24 ` Steven Sistare
2024-03-11 20:28 ` Peter Xu
2024-03-11 20:34 ` Steven Sistare
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=1710179338-294359-9-git-send-email-steven.sistare@oracle.com \
--to=steven.sistare@oracle.com \
--cc=alex.williamson@redhat.com \
--cc=alistair.francis@wdc.com \
--cc=chen.zhang@intel.com \
--cc=clg@redhat.com \
--cc=david@redhat.com \
--cc=farosas@suse.de \
--cc=gaosong@loongson.cn \
--cc=jasowang@redhat.com \
--cc=lizhijian@fujitsu.com \
--cc=mst@redhat.com \
--cc=peterx@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=yong.huang@smartx.com \
--cc=zhanghailiang@xfusion.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 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.