mbox

[PULL,0/7] Yank patches patches for 2021-01-13

Message ID 20210113093101.550964-1-armbru@redhat.com (mailing list archive)
State New, archived
Headers show

Pull-request

git://repo.or.cz/qemu/armbru.git tags/pull-yank-2021-01-13

Message

Markus Armbruster Jan. 13, 2021, 9:30 a.m. UTC
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

Comments

Peter Maydell Jan. 13, 2021, 3:53 p.m. UTC | #1
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
Markus Armbruster Jan. 13, 2021, 4:25 p.m. UTC | #2
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?
Lukas Straub Jan. 13, 2021, 5:26 p.m. UTC | #3
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

--
Alex Bennée Jan. 14, 2021, 11:02 a.m. UTC | #4
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
Markus Armbruster Jan. 14, 2021, 12:40 p.m. UTC | #5
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?
Lukas Straub Jan. 14, 2021, 12:44 p.m. UTC | #6
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

--