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 - 2026 Red Hat, Inc.