qapi/qapi-schema.json | 1 + qapi/yank.json | 119 ++++++++++++++++++++++++ include/io/channel.h | 5 +- include/qemu/yank.h | 97 ++++++++++++++++++++ block/nbd.c | 153 ++++++++++++++++++------------- chardev/char-socket.c | 34 +++++++ io/channel-tls.c | 6 +- migration/channel.c | 13 +++ migration/migration.c | 22 +++++ migration/multifd.c | 10 ++ migration/qemu-file-channel.c | 7 ++ migration/savevm.c | 5 + tests/test-char.c | 1 + util/yank.c | 207 ++++++++++++++++++++++++++++++++++++++++++ MAINTAINERS | 7 ++ qapi/meson.build | 1 + util/meson.build | 1 + 17 files changed, 625 insertions(+), 64 deletions(-) create mode 100644 qapi/yank.json create mode 100644 include/qemu/yank.h create mode 100644 util/yank.c
This pull request is on behalf of Lukas. Hope that's okay. The following changes since commit f8e1d8852e393b3fd524fb005e38590063d99bc0: Merge remote-tracking branch 'remotes/pmaydell/tags/pull-target-arm-20210112-1' into staging (2021-01-12 21:23:25 +0000) are available in the Git repository at: git://repo.or.cz/qemu/armbru.git tags/pull-yank-2021-01-13 for you to fetch changes up to 91d48e520a4a4f72e97aeb333029694f5d57cc93: tests/test-char.c: Wait for the chardev to connect in char_socket_client_dupid_test (2021-01-13 10:21:17 +0100) ---------------------------------------------------------------- Yank patches patches for 2021-01-13 ---------------------------------------------------------------- Lukas Straub (7): Introduce yank feature block/nbd.c: Add yank feature chardev/char-socket.c: Add yank feature migration: Add yank feature io/channel-tls.c: make qio_channel_tls_shutdown thread-safe io: Document qmp oob suitability of qio_channel_shutdown and io_shutdown tests/test-char.c: Wait for the chardev to connect in char_socket_client_dupid_test qapi/qapi-schema.json | 1 + qapi/yank.json | 119 ++++++++++++++++++++++++ include/io/channel.h | 5 +- include/qemu/yank.h | 97 ++++++++++++++++++++ block/nbd.c | 153 ++++++++++++++++++------------- chardev/char-socket.c | 34 +++++++ io/channel-tls.c | 6 +- migration/channel.c | 13 +++ migration/migration.c | 22 +++++ migration/multifd.c | 10 ++ migration/qemu-file-channel.c | 7 ++ migration/savevm.c | 5 + tests/test-char.c | 1 + util/yank.c | 207 ++++++++++++++++++++++++++++++++++++++++++ MAINTAINERS | 7 ++ qapi/meson.build | 1 + util/meson.build | 1 + 17 files changed, 625 insertions(+), 64 deletions(-) create mode 100644 qapi/yank.json create mode 100644 include/qemu/yank.h create mode 100644 util/yank.c -- 2.26.2
On Wed, 13 Jan 2021 at 09:31, Markus Armbruster <armbru@redhat.com> wrote: > > This pull request is on behalf of Lukas. Hope that's okay. > > The following changes since commit f8e1d8852e393b3fd524fb005e38590063d99bc0: > > Merge remote-tracking branch 'remotes/pmaydell/tags/pull-target-arm-20210112-1' into staging (2021-01-12 21:23:25 +0000) > > are available in the Git repository at: > > git://repo.or.cz/qemu/armbru.git tags/pull-yank-2021-01-13 > > for you to fetch changes up to 91d48e520a4a4f72e97aeb333029694f5d57cc93: > > tests/test-char.c: Wait for the chardev to connect in char_socket_client_dupid_test (2021-01-13 10:21:17 +0100) > > ---------------------------------------------------------------- > Yank patches patches for 2021-01-13 > > ---------------------------------------------------------------- > Lukas Straub (7): > Introduce yank feature > block/nbd.c: Add yank feature > chardev/char-socket.c: Add yank feature > migration: Add yank feature > io/channel-tls.c: make qio_channel_tls_shutdown thread-safe > io: Document qmp oob suitability of qio_channel_shutdown and io_shutdown > tests/test-char.c: Wait for the chardev to connect in char_socket_client_dupid_test Applied, thanks. Please update the changelog at https://wiki.qemu.org/ChangeLog/6.0 for any user-visible changes. -- PMM
Peter Maydell <peter.maydell@linaro.org> writes: > On Wed, 13 Jan 2021 at 09:31, Markus Armbruster <armbru@redhat.com> wrote: >> >> This pull request is on behalf of Lukas. Hope that's okay. >> >> The following changes since commit f8e1d8852e393b3fd524fb005e38590063d99bc0: >> >> Merge remote-tracking branch 'remotes/pmaydell/tags/pull-target-arm-20210112-1' into staging (2021-01-12 21:23:25 +0000) >> >> are available in the Git repository at: >> >> git://repo.or.cz/qemu/armbru.git tags/pull-yank-2021-01-13 >> >> for you to fetch changes up to 91d48e520a4a4f72e97aeb333029694f5d57cc93: >> >> tests/test-char.c: Wait for the chardev to connect in char_socket_client_dupid_test (2021-01-13 10:21:17 +0100) >> >> ---------------------------------------------------------------- >> Yank patches patches for 2021-01-13 >> >> ---------------------------------------------------------------- >> Lukas Straub (7): >> Introduce yank feature >> block/nbd.c: Add yank feature >> chardev/char-socket.c: Add yank feature >> migration: Add yank feature >> io/channel-tls.c: make qio_channel_tls_shutdown thread-safe >> io: Document qmp oob suitability of qio_channel_shutdown and io_shutdown >> tests/test-char.c: Wait for the chardev to connect in char_socket_client_dupid_test > > > Applied, thanks. > > Please update the changelog at https://wiki.qemu.org/ChangeLog/6.0 > for any user-visible changes. Lukas, could you take care of that?
On Wed, 13 Jan 2021 17:25:50 +0100 Markus Armbruster <armbru@redhat.com> wrote: > Peter Maydell <peter.maydell@linaro.org> writes: > > > On Wed, 13 Jan 2021 at 09:31, Markus Armbruster <armbru@redhat.com> wrote: > >> > >> This pull request is on behalf of Lukas. Hope that's okay. > >> > >> The following changes since commit f8e1d8852e393b3fd524fb005e38590063d99bc0: > >> > >> Merge remote-tracking branch 'remotes/pmaydell/tags/pull-target-arm-20210112-1' into staging (2021-01-12 21:23:25 +0000) > >> > >> are available in the Git repository at: > >> > >> git://repo.or.cz/qemu/armbru.git tags/pull-yank-2021-01-13 > >> > >> for you to fetch changes up to 91d48e520a4a4f72e97aeb333029694f5d57cc93: > >> > >> tests/test-char.c: Wait for the chardev to connect in char_socket_client_dupid_test (2021-01-13 10:21:17 +0100) > >> > >> ---------------------------------------------------------------- > >> Yank patches patches for 2021-01-13 > >> > >> ---------------------------------------------------------------- > >> Lukas Straub (7): > >> Introduce yank feature > >> block/nbd.c: Add yank feature > >> chardev/char-socket.c: Add yank feature > >> migration: Add yank feature > >> io/channel-tls.c: make qio_channel_tls_shutdown thread-safe > >> io: Document qmp oob suitability of qio_channel_shutdown and io_shutdown > >> tests/test-char.c: Wait for the chardev to connect in char_socket_client_dupid_test > > > > > > Applied, thanks. > > > > Please update the changelog at https://wiki.qemu.org/ChangeLog/6.0 > > for any user-visible changes. > > Lukas, could you take care of that? > Yes. Regards, Lukas Straub --
Peter Maydell <peter.maydell@linaro.org> writes: > On Wed, 13 Jan 2021 at 09:31, Markus Armbruster <armbru@redhat.com> wrote: >> >> This pull request is on behalf of Lukas. Hope that's okay. >> >> The following changes since commit f8e1d8852e393b3fd524fb005e38590063d99bc0: >> >> Merge remote-tracking branch 'remotes/pmaydell/tags/pull-target-arm-20210112-1' into staging (2021-01-12 21:23:25 +0000) >> >> are available in the Git repository at: >> >> git://repo.or.cz/qemu/armbru.git tags/pull-yank-2021-01-13 >> >> for you to fetch changes up to 91d48e520a4a4f72e97aeb333029694f5d57cc93: >> >> tests/test-char.c: Wait for the chardev to connect in char_socket_client_dupid_test (2021-01-13 10:21:17 +0100) >> >> ---------------------------------------------------------------- >> Yank patches patches for 2021-01-13 >> >> ---------------------------------------------------------------- >> Lukas Straub (7): >> Introduce yank feature >> block/nbd.c: Add yank feature >> chardev/char-socket.c: Add yank feature >> migration: Add yank feature >> io/channel-tls.c: make qio_channel_tls_shutdown thread-safe >> io: Document qmp oob suitability of qio_channel_shutdown and io_shutdown >> tests/test-char.c: Wait for the chardev to connect in char_socket_client_dupid_test > > > Applied, thanks. This broke the check-unit and check-softfloat build task in Travis https://travis-ci.org/github/qemu/qemu/jobs/754436018 Likely because of missing stubs for the yank commands: FAILED: qemu-io gcc -o qemu-io qemu-io.p/qemu-io.c.o -Wl,--as-needed -Wl,--no-undefined -pie -Wl,--whole-archive libblock.fa libcrypto.fa libauthz.fa libqom.fa libio.fa -Wl,--no-whole-archive -Wl,--warn-common -Wl,-z,relro -Wl,-z,now -m64 -fstack-protector-strong -Wl,--start-group libqemuutil.a subprojects/libvhost-user/libvhost-user-glib.a subprojects/libvhost-user/libvhost-user.a libblock.fa libcrypto.fa libauthz.fa libqom.fa libio.fa @block.syms -lgnutls -pthread -lutil -lm -lgthread-2.0 -lglib-2.0 -lgthread-2.0 -lglib-2.0 -lxml2 /usr/lib/x86_64-linux-gnu/libiscsi.so -laio -lgthread-2.0 -lglib-2.0 /usr/lib/x86_64-linux-gnu/libz.so /usr/lib/x86_64-linux-gnu/libnfs.so /usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/libzstd.so -lssh /usr/lib/x86_64-linux-gnu/libcurl.so /usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/libbz2.so -lgnutls -lnettle -lgnutls -lpam -lgnutls -Wl,--end-group /usr/bin/ld: libblock.fa(block_nbd.c.o): in function `nbd_close': /home/travis/build/qemu/qemu/build/../block/nbd.c:2358: undefined reference to `yank_unregister_instance' /usr/bin/ld: libblock.fa(block_nbd.c.o): in function `nbd_client_handshake': /home/travis/build/qemu/qemu/build/../block/nbd.c:1879: undefined reference to `yank_unregister_function' /usr/bin/ld: libblock.fa(block_nbd.c.o): in function `nbd_reconnect_attempt': /home/travis/build/qemu/qemu/build/../block/nbd.c:605: undefined reference to `yank_unregister_function' /usr/bin/ld: libblock.fa(block_nbd.c.o): in function `nbd_co_establish_connection': /home/travis/build/qemu/qemu/build/../block/nbd.c:453: undefined reference to `yank_register_function' /usr/bin/ld: /home/travis/build/qemu/qemu/build/../block/nbd.c:491: undefined reference to `yank_register_function' /usr/bin/ld: libblock.fa(block_nbd.c.o): in function `nbd_connection_entry': /home/travis/build/qemu/qemu/build/../block/nbd.c:765: undefined reference to `yank_unregister_function' /usr/bin/ld: libblock.fa(block_nbd.c.o): in function `nbd_open': /home/travis/build/qemu/qemu/build/../block/nbd.c:2283: undefined reference to `yank_register_instance' /usr/bin/ld: libblock.fa(block_nbd.c.o): in function `nbd_establish_connection': /home/travis/build/qemu/qemu/build/../block/nbd.c:1799: undefined reference to `yank_register_function' /usr/bin/ld: libblock.fa(block_nbd.c.o): in function `nbd_open': /home/travis/build/qemu/qemu/build/../block/nbd.c:2298: undefined reference to `yank_unregister_instance' /usr/bin/ld: /home/travis/build/qemu/qemu/build/../block/nbd.c:2292: undefined reference to `yank_unregister_instance' collect2: error: ld returned 1 exit status > > Please update the changelog at https://wiki.qemu.org/ChangeLog/6.0 > for any user-visible changes. > > -- PMM -- Alex Bennée
Alex Bennée <alex.bennee@linaro.org> writes: > Peter Maydell <peter.maydell@linaro.org> writes: > >> On Wed, 13 Jan 2021 at 09:31, Markus Armbruster <armbru@redhat.com> wrote: >>> >>> This pull request is on behalf of Lukas. Hope that's okay. >>> >>> The following changes since commit f8e1d8852e393b3fd524fb005e38590063d99bc0: >>> >>> Merge remote-tracking branch 'remotes/pmaydell/tags/pull-target-arm-20210112-1' into staging (2021-01-12 21:23:25 +0000) >>> >>> are available in the Git repository at: >>> >>> git://repo.or.cz/qemu/armbru.git tags/pull-yank-2021-01-13 >>> >>> for you to fetch changes up to 91d48e520a4a4f72e97aeb333029694f5d57cc93: >>> >>> tests/test-char.c: Wait for the chardev to connect in char_socket_client_dupid_test (2021-01-13 10:21:17 +0100) >>> >>> ---------------------------------------------------------------- >>> Yank patches patches for 2021-01-13 >>> >>> ---------------------------------------------------------------- >>> Lukas Straub (7): >>> Introduce yank feature >>> block/nbd.c: Add yank feature >>> chardev/char-socket.c: Add yank feature >>> migration: Add yank feature >>> io/channel-tls.c: make qio_channel_tls_shutdown thread-safe >>> io: Document qmp oob suitability of qio_channel_shutdown and io_shutdown >>> tests/test-char.c: Wait for the chardev to connect in char_socket_client_dupid_test >> >> >> Applied, thanks. > > This broke the check-unit and check-softfloat build task in Travis > > https://travis-ci.org/github/qemu/qemu/jobs/754436018 > > Likely because of missing stubs for the yank commands: > > FAILED: qemu-io > > gcc -o qemu-io qemu-io.p/qemu-io.c.o -Wl,--as-needed -Wl,--no-undefined -pie -Wl,--whole-archive libblock.fa libcrypto.fa libauthz.fa libqom.fa libio.fa -Wl,--no-whole-archive -Wl,--warn-common -Wl,-z,relro -Wl,-z,now -m64 -fstack-protector-strong -Wl,--start-group libqemuutil.a subprojects/libvhost-user/libvhost-user-glib.a subprojects/libvhost-user/libvhost-user.a libblock.fa libcrypto.fa libauthz.fa libqom.fa libio.fa @block.syms -lgnutls -pthread -lutil -lm -lgthread-2.0 -lglib-2.0 -lgthread-2.0 -lglib-2.0 -lxml2 /usr/lib/x86_64-linux-gnu/libiscsi.so -laio -lgthread-2.0 -lglib-2.0 /usr/lib/x86_64-linux-gnu/libz.so /usr/lib/x86_64-linux-gnu/libnfs.so /usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/libzstd.so -lssh /usr/lib/x86_64-linux-gnu/libcurl.so /usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/libbz2.so -lgnutls -lnettle -lgnutls -lpam -lgnutls -Wl,--end-group > > /usr/bin/ld: libblock.fa(block_nbd.c.o): in function `nbd_close': > > /home/travis/build/qemu/qemu/build/../block/nbd.c:2358: undefined reference to `yank_unregister_instance' [...] > collect2: error: ld returned 1 exit status Reproduced locally: $ ../configure --disable-system --disable-user --enable-tools $ make Lukas, can you take care of this?
On Thu, 14 Jan 2021 13:40:52 +0100 Markus Armbruster <armbru@redhat.com> wrote: > Alex Bennée <alex.bennee@linaro.org> writes: > > > Peter Maydell <peter.maydell@linaro.org> writes: > > > >> On Wed, 13 Jan 2021 at 09:31, Markus Armbruster <armbru@redhat.com> wrote: > >>> > >>> This pull request is on behalf of Lukas. Hope that's okay. > >>> > >>> The following changes since commit f8e1d8852e393b3fd524fb005e38590063d99bc0: > >>> > >>> Merge remote-tracking branch 'remotes/pmaydell/tags/pull-target-arm-20210112-1' into staging (2021-01-12 21:23:25 +0000) > >>> > >>> are available in the Git repository at: > >>> > >>> git://repo.or.cz/qemu/armbru.git tags/pull-yank-2021-01-13 > >>> > >>> for you to fetch changes up to 91d48e520a4a4f72e97aeb333029694f5d57cc93: > >>> > >>> tests/test-char.c: Wait for the chardev to connect in char_socket_client_dupid_test (2021-01-13 10:21:17 +0100) > >>> > >>> ---------------------------------------------------------------- > >>> Yank patches patches for 2021-01-13 > >>> > >>> ---------------------------------------------------------------- > >>> Lukas Straub (7): > >>> Introduce yank feature > >>> block/nbd.c: Add yank feature > >>> chardev/char-socket.c: Add yank feature > >>> migration: Add yank feature > >>> io/channel-tls.c: make qio_channel_tls_shutdown thread-safe > >>> io: Document qmp oob suitability of qio_channel_shutdown and io_shutdown > >>> tests/test-char.c: Wait for the chardev to connect in char_socket_client_dupid_test > >> > >> > >> Applied, thanks. > > > > This broke the check-unit and check-softfloat build task in Travis > > > > https://travis-ci.org/github/qemu/qemu/jobs/754436018 > > > > Likely because of missing stubs for the yank commands: > > > > FAILED: qemu-io > > > > gcc -o qemu-io qemu-io.p/qemu-io.c.o -Wl,--as-needed -Wl,--no-undefined -pie -Wl,--whole-archive libblock.fa libcrypto.fa libauthz.fa libqom.fa libio.fa -Wl,--no-whole-archive -Wl,--warn-common -Wl,-z,relro -Wl,-z,now -m64 -fstack-protector-strong -Wl,--start-group libqemuutil.a subprojects/libvhost-user/libvhost-user-glib.a subprojects/libvhost-user/libvhost-user.a libblock.fa libcrypto.fa libauthz.fa libqom.fa libio.fa @block.syms -lgnutls -pthread -lutil -lm -lgthread-2.0 -lglib-2.0 -lgthread-2.0 -lglib-2.0 -lxml2 /usr/lib/x86_64-linux-gnu/libiscsi.so -laio -lgthread-2.0 -lglib-2.0 /usr/lib/x86_64-linux-gnu/libz.so /usr/lib/x86_64-linux-gnu/libnfs.so /usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/libzstd.so -lssh /usr/lib/x86_64-linux-gnu/libcurl.so /usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/libbz2.so -lgnutls -lnettle -lgnutls -lpam -lgnutls -Wl,--end-group > > > > /usr/bin/ld: libblock.fa(block_nbd.c.o): in function `nbd_close': > > > > /home/travis/build/qemu/qemu/build/../block/nbd.c:2358: undefined reference to `yank_unregister_instance' > [...] > > collect2: error: ld returned 1 exit status > > > Reproduced locally: > > $ ../configure --disable-system --disable-user --enable-tools > $ make > > Lukas, can you take care of this? > Yes, I'm on it. Regards, Lukas Straub --
Signed-off-by: Lukas Straub <lukasstraub2@web.de>
---
stubs/meson.build | 1 +
stubs/yank.c | 29 +++++++++++++++++++++++++++++
2 files changed, 30 insertions(+)
create mode 100644 stubs/yank.c
diff --git a/stubs/meson.build b/stubs/meson.build
index 80b1d81a31..1a656cd070 100644
--- a/stubs/meson.build
+++ b/stubs/meson.build
@@ -47,6 +47,7 @@ stub_ss.add(files('vm-stop.c'))
stub_ss.add(files('win32-kbd-hook.c'))
stub_ss.add(files('cpu-synchronize-state.c'))
if have_block
+ stub_ss.add(files('yank.c'))
stub_ss.add(files('replay-tools.c'))
endif
if have_system
diff --git a/stubs/yank.c b/stubs/yank.c
new file mode 100644
index 0000000000..6090416065
--- /dev/null
+++ b/stubs/yank.c
@@ -0,0 +1,29 @@
+#include "qemu/osdep.h"
+#include "qemu/yank.h"
+
+bool yank_register_instance(const YankInstance *instance, Error **errp)
+{
+ return true;
+}
+
+void yank_unregister_instance(const YankInstance *instance)
+{
+}
+
+void yank_register_function(const YankInstance *instance,
+ YankFn *func,
+ void *opaque)
+{
+}
+
+void yank_unregister_function(const YankInstance *instance,
+ YankFn *func,
+ void *opaque)
+{
+}
+
+void yank_generic_iochannel(void *opaque)
+{
+}
+
+
--
2.29.2
Lukas Straub <lukasstraub2@web.de> writes: > Signed-off-by: Lukas Straub <lukasstraub2@web.de> Tested-by: Alex Bennée <alex.bennee@linaro.org> Reviewed-by: Alex Bennée <alex.bennee@linaro.org> I'm also going to pull this into my testing/next as I need the fix as a prerequisite. > --- > stubs/meson.build | 1 + > stubs/yank.c | 29 +++++++++++++++++++++++++++++ > 2 files changed, 30 insertions(+) > create mode 100644 stubs/yank.c > > diff --git a/stubs/meson.build b/stubs/meson.build > index 80b1d81a31..1a656cd070 100644 > --- a/stubs/meson.build > +++ b/stubs/meson.build > @@ -47,6 +47,7 @@ stub_ss.add(files('vm-stop.c')) > stub_ss.add(files('win32-kbd-hook.c')) > stub_ss.add(files('cpu-synchronize-state.c')) > if have_block > + stub_ss.add(files('yank.c')) > stub_ss.add(files('replay-tools.c')) > endif > if have_system > diff --git a/stubs/yank.c b/stubs/yank.c > new file mode 100644 > index 0000000000..6090416065 > --- /dev/null > +++ b/stubs/yank.c > @@ -0,0 +1,29 @@ > +#include "qemu/osdep.h" > +#include "qemu/yank.h" > + > +bool yank_register_instance(const YankInstance *instance, Error **errp) > +{ > + return true; > +} > + > +void yank_unregister_instance(const YankInstance *instance) > +{ > +} > + > +void yank_register_function(const YankInstance *instance, > + YankFn *func, > + void *opaque) > +{ > +} > + > +void yank_unregister_function(const YankInstance *instance, > + YankFn *func, > + void *opaque) > +{ > +} > + > +void yank_generic_iochannel(void *opaque) > +{ > +} > + > + -- Alex Bennée
On 1/14/21 2:19 PM, Lukas Straub wrote: Fixes: 50186051f42 ("Introduce yank feature") Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com> > Signed-off-by: Lukas Straub <lukasstraub2@web.de> > --- > stubs/meson.build | 1 + > stubs/yank.c | 29 +++++++++++++++++++++++++++++ > 2 files changed, 30 insertions(+) > create mode 100644 stubs/yank.c
© 2016 - 2024 Red Hat, Inc.