[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v6 for-2.7 09/28] migration: add helpers for cre
From: |
Amit Shah |
Subject: |
Re: [Qemu-devel] [PATCH v6 for-2.7 09/28] migration: add helpers for creating QEMUFile from a QIOChannel |
Date: |
Tue, 24 May 2016 11:31:43 +0530 |
On (Wed) 04 May 2016 [13:02:52], Juan Quintela wrote:
> "Daniel P. Berrange" <address@hidden> wrote:
> > Currently creating a QEMUFile instance from a QIOChannel is
> > quite simple only requiring a single call to
> > qemu_fopen_channel_input or qemu_fopen_channel_output
> > depending on the end of migration connection.
> >
> > When QEMU gains TLS support, however, there will need to be
> > a TLS negotiation done inbetween creation of the QIOChannel
> > and creation of the final QEMUFile. Introduce some helper
> > methods that will encapsulate this logic, isolating the
> > migration protocol drivers from knowledge about TLS.
> >
> > Reviewed-by: Dr. David Alan Gilbert <address@hidden>
> > Signed-off-by: Daniel P. Berrange <address@hidden>
> > ---
> > include/migration/migration.h | 6 ++++++
> > migration/migration.c | 21 +++++++++++++++++++++
> > 2 files changed, 27 insertions(+)
> >
> > diff --git a/include/migration/migration.h b/include/migration/migration.h
> > index ac2c12c..e335380 100644
> > --- a/include/migration/migration.h
> > +++ b/include/migration/migration.h
> > @@ -179,6 +179,12 @@ void process_incoming_migration(QEMUFile *f);
> >
> > void qemu_start_incoming_migration(const char *uri, Error **errp);
> >
> > +void migration_set_incoming_channel(MigrationState *s,
> > + QIOChannel *ioc);
> > +
> > +void migration_set_outgoing_channel(MigrationState *s,
> > + QIOChannel *ioc);
> > +
> > uint64_t migrate_max_downtime(void);
> >
> > void exec_start_incoming_migration(const char *host_port, Error **errp);
> > diff --git a/migration/migration.c b/migration/migration.c
> > index 4732915..794df84 100644
> > --- a/migration/migration.c
> > +++ b/migration/migration.c
> > @@ -428,6 +428,27 @@ void process_incoming_migration(QEMUFile *f)
> > qemu_coroutine_enter(co, f);
> > }
> >
> > +
> > +void migration_set_incoming_channel(MigrationState *s,
> > + QIOChannel *ioc)
> > +{
> > + QEMUFile *f = qemu_fopen_channel_input(ioc);
> > +
> > + process_incoming_migration(f);
> > +}
> > +
> > +
> > +void migration_set_outgoing_channel(MigrationState *s,
> > + QIOChannel *ioc)
> > +{
> > + QEMUFile *f = qemu_fopen_channel_output(ioc);
> > +
> > + s->to_dst_file = f;
> > +
> > + migrate_fd_connect(s);
> > +}
> > +
> > +
> > /*
> > * Send a message on the return channel back to the source
> > * of the migration.
>
> Looking at its use, I will propose change of names, but it is just a
> suggestion. The functions don't just set the channel, they do the
> migration.
Agreed, could do with better names. Dan?
> migration_proccess_outgoing()
> migration_proccess_incoming()?
>
> No, the naming for incoming was right, the one for outgoing was not.
> And yes, I understand that one is asynchrconous. This is why it is just
> a suggestion. Sorry for not being able to came with better naming.
Amit