All of lore.kernel.org
 help / color / mirror / Atom feed
* [Qemu-devel] [PULL 0/2] Block layer patches
@ 2018-12-03 16:58 Kevin Wolf
  2018-12-03 16:58 ` [Qemu-devel] [PULL 1/2] mirror: fix dead-lock Kevin Wolf
                   ` (2 more replies)
  0 siblings, 3 replies; 20+ messages in thread
From: Kevin Wolf @ 2018-12-03 16:58 UTC (permalink / raw)
  To: qemu-block; +Cc: kwolf, peter.maydell, qemu-devel

The following changes since commit 83ea23cd207a03c5736be0231acbf7f8b05dbf52:

  i386: hvf: Fix overrun of _decode_tbl1 (2018-12-03 15:09:55 +0000)

are available in the Git repository at:

  git://repo.or.cz/qemu/kevin.git tags/for-upstream

for you to fetch changes up to db5e8210adbafe9c6383d8364345a8c545d38e62:

  iotests: simple mirror test with kvm on 1G image (2018-12-03 16:51:53 +0100)

----------------------------------------------------------------
Block layer patches:

- mirror: Fix deadlock

----------------------------------------------------------------
Vladimir Sementsov-Ogievskiy (2):
      mirror: fix dead-lock
      iotests: simple mirror test with kvm on 1G image

 block/mirror.c             | 13 +++-----
 tests/qemu-iotests/235     | 76 ++++++++++++++++++++++++++++++++++++++++++++++
 tests/qemu-iotests/235.out |  3 ++
 tests/qemu-iotests/group   |  1 +
 4 files changed, 85 insertions(+), 8 deletions(-)
 create mode 100755 tests/qemu-iotests/235
 create mode 100644 tests/qemu-iotests/235.out

^ permalink raw reply	[flat|nested] 20+ messages in thread

* [Qemu-devel] [PULL 1/2] mirror: fix dead-lock
  2018-12-03 16:58 [Qemu-devel] [PULL 0/2] Block layer patches Kevin Wolf
@ 2018-12-03 16:58 ` Kevin Wolf
  2018-12-03 16:58 ` [Qemu-devel] [PULL 2/2] iotests: simple mirror test with kvm on 1G image Kevin Wolf
  2018-12-03 17:43 ` [Qemu-devel] [PULL 0/2] Block layer patches Peter Maydell
  2 siblings, 0 replies; 20+ messages in thread
From: Kevin Wolf @ 2018-12-03 16:58 UTC (permalink / raw)
  To: qemu-block; +Cc: kwolf, peter.maydell, qemu-devel

From: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>

Let start from the beginning:

Commit b9e413dd375 (in 2.9)
"block: explicitly acquire aiocontext in aio callbacks that need it"
added pairs of aio_context_acquire/release to mirror_write_complete and
mirror_read_complete, when they were aio callbacks for blk_aio_* calls.

Then, commit 2e1990b26e5 (in 3.0) "block/mirror: Convert to coroutines"
dropped these blk_aio_* calls, than mirror_write_complete and
mirror_read_complete are not callbacks more, and don't need additional
aiocontext acquiring. Furthermore, mirror_read_complete calls
blk_co_pwritev inside these pair of aio_context_acquire/release, which
leads to the following dead-lock with mirror:

 (gdb) info thr
   Id   Target Id         Frame
   3    Thread (LWP 145412) "qemu-system-x86" syscall ()
   2    Thread (LWP 145416) "qemu-system-x86" __lll_lock_wait ()
 * 1    Thread (LWP 145411) "qemu-system-x86" __lll_lock_wait ()

 (gdb) bt
 #0  __lll_lock_wait ()
 #1  _L_lock_812 ()
 #2  __GI___pthread_mutex_lock
 #3  qemu_mutex_lock_impl (mutex=0x561032dce420 <qemu_global_mutex>,
     file=0x5610327d8654 "util/main-loop.c", line=236) at
     util/qemu-thread-posix.c:66
 #4  qemu_mutex_lock_iothread_impl
 #5  os_host_main_loop_wait (timeout=480116000) at util/main-loop.c:236
 #6  main_loop_wait (nonblocking=0) at util/main-loop.c:497
 #7  main_loop () at vl.c:1892
 #8  main

Printing contents of qemu_global_mutex, I see that "__owner = 145416",
so, thr1 is main loop, and now it wants BQL, which is owned by thr2.

 (gdb) thr 2
 (gdb) bt
 #0  __lll_lock_wait ()
 #1  _L_lock_870 ()
 #2  __GI___pthread_mutex_lock
 #3  qemu_mutex_lock_impl (mutex=0x561034d25dc0, ...
 #4  aio_context_acquire (ctx=0x561034d25d60)
 #5  dma_blk_cb
 #6  dma_blk_io
 #7  dma_blk_read
 #8  ide_dma_cb
 #9  bmdma_cmd_writeb
 #10 bmdma_write
 #11 memory_region_write_accessor
 #12 access_with_adjusted_size
 #15 flatview_write
 #16 address_space_write
 #17 address_space_rw
 #18 kvm_handle_io
 #19 kvm_cpu_exec
 #20 qemu_kvm_cpu_thread_fn
 #21 qemu_thread_start
 #22 start_thread
 #23 clone ()

Printing mutex in fr 2, I see "__owner = 145411", so thr2 wants aio
context mutex, which is owned by thr1. Classic dead-lock.

Then, let's check that aio context is hold by mirror coroutine: just
print coroutine stack of first tracked request in mirror job target:

 (gdb) [...]
 (gdb) qemu coroutine 0x561035dd0860
 #0  qemu_coroutine_switch
 #1  qemu_coroutine_yield
 #2  qemu_co_mutex_lock_slowpath
 #3  qemu_co_mutex_lock
 #4  qcow2_co_pwritev
 #5  bdrv_driver_pwritev
 #6  bdrv_aligned_pwritev
 #7  bdrv_co_pwritev
 #8  blk_co_pwritev
 #9  mirror_read_complete () at block/mirror.c:232
 #10 mirror_co_read () at block/mirror.c:370
 #11 coroutine_trampoline
 #12 __start_context

Yes it is mirror_read_complete calling blk_co_pwritev after acquiring
aio context.

Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Reviewed-by: Max Reitz <mreitz@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
---
 block/mirror.c | 13 +++++--------
 1 file changed, 5 insertions(+), 8 deletions(-)

diff --git a/block/mirror.c b/block/mirror.c
index 56d9ef7474..8f52c6215d 100644
--- a/block/mirror.c
+++ b/block/mirror.c
@@ -199,7 +199,6 @@ static void coroutine_fn mirror_write_complete(MirrorOp *op, int ret)
 {
     MirrorBlockJob *s = op->s;
 
-    aio_context_acquire(blk_get_aio_context(s->common.blk));
     if (ret < 0) {
         BlockErrorAction action;
 
@@ -209,15 +208,14 @@ static void coroutine_fn mirror_write_complete(MirrorOp *op, int ret)
             s->ret = ret;
         }
     }
+
     mirror_iteration_done(op, ret);
-    aio_context_release(blk_get_aio_context(s->common.blk));
 }
 
 static void coroutine_fn mirror_read_complete(MirrorOp *op, int ret)
 {
     MirrorBlockJob *s = op->s;
 
-    aio_context_acquire(blk_get_aio_context(s->common.blk));
     if (ret < 0) {
         BlockErrorAction action;
 
@@ -228,12 +226,11 @@ static void coroutine_fn mirror_read_complete(MirrorOp *op, int ret)
         }
 
         mirror_iteration_done(op, ret);
-    } else {
-        ret = blk_co_pwritev(s->target, op->offset,
-                             op->qiov.size, &op->qiov, 0);
-        mirror_write_complete(op, ret);
+        return;
     }
-    aio_context_release(blk_get_aio_context(s->common.blk));
+
+    ret = blk_co_pwritev(s->target, op->offset, op->qiov.size, &op->qiov, 0);
+    mirror_write_complete(op, ret);
 }
 
 /* Clip bytes relative to offset to not exceed end-of-file */
-- 
2.19.2

^ permalink raw reply related	[flat|nested] 20+ messages in thread

* [Qemu-devel] [PULL 2/2] iotests: simple mirror test with kvm on 1G image
  2018-12-03 16:58 [Qemu-devel] [PULL 0/2] Block layer patches Kevin Wolf
  2018-12-03 16:58 ` [Qemu-devel] [PULL 1/2] mirror: fix dead-lock Kevin Wolf
@ 2018-12-03 16:58 ` Kevin Wolf
       [not found]   ` <dc86835f-65d9-cada-dc9b-1f2c708521f9@de.ibm.com>
  2018-12-03 17:43 ` [Qemu-devel] [PULL 0/2] Block layer patches Peter Maydell
  2 siblings, 1 reply; 20+ messages in thread
From: Kevin Wolf @ 2018-12-03 16:58 UTC (permalink / raw)
  To: qemu-block; +Cc: kwolf, peter.maydell, qemu-devel

From: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>

This test is broken without previous commit fixing dead-lock in mirror.

Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Signed-off-by: Max Reitz <mreitz@redhat.com>
Acked-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
---
 tests/qemu-iotests/235     | 76 ++++++++++++++++++++++++++++++++++++++
 tests/qemu-iotests/235.out |  3 ++
 tests/qemu-iotests/group   |  1 +
 3 files changed, 80 insertions(+)
 create mode 100755 tests/qemu-iotests/235
 create mode 100644 tests/qemu-iotests/235.out

diff --git a/tests/qemu-iotests/235 b/tests/qemu-iotests/235
new file mode 100755
index 0000000000..da044ed34e
--- /dev/null
+++ b/tests/qemu-iotests/235
@@ -0,0 +1,76 @@
+#!/usr/bin/env python
+#
+# Simple mirror test
+#
+# Copyright (c) 2018 Virtuozzo International GmbH. All rights reserved.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+#
+
+import sys
+import os
+import iotests
+from iotests import qemu_img_create, qemu_io, file_path, log
+
+sys.path.append(os.path.join(os.path.dirname(__file__), '..', '..', 'scripts'))
+
+from qemu import QEMUMachine
+
+# Note:
+# This test was added to check that mirror dead-lock was fixed (see previous
+# commit before this test addition).
+# And it didn't reproduce if at least one of the following:
+# 1. use small image size
+# 2. use raw format (not qcow2)
+# 3. drop kvm and use iotests.VM() (maybe, because of qtest) (however, it still
+#    reproduces, if just drop kvm, but gdb failed to produce full backtraces
+#    for me)
+# 4. add iothread
+
+size = 1 * 1024 * 1024 * 1024
+
+iotests.verify_image_format(supported_fmts=['qcow2'])
+
+disk = file_path('disk')
+
+# prepare source image
+qemu_img_create('-f', iotests.imgfmt, '-o', 'preallocation=metadata', disk,
+                str(size))
+
+vm = QEMUMachine(iotests.qemu_prog)
+vm.add_args('-machine', 'pc,accel=kvm')
+vm.add_args('-drive', 'id=src,file=' + disk)
+vm.launch()
+
+log(vm.qmp('object-add', qom_type='throttle-group', id='tg0',
+           props={ 'x-bps-total': size }))
+
+log(vm.qmp('blockdev-add',
+           **{ 'node-name': 'target',
+               'driver': 'throttle',
+               'throttle-group': 'tg0',
+               'file': {
+                   'driver': 'null-co',
+                   'size': size
+                } }))
+
+log(vm.qmp('blockdev-mirror', device='src', target='target', sync='full'))
+
+try:
+    vm.event_wait('BLOCK_JOB_READY', timeout=10.0)
+except:
+    vm.shutdown()
+    raise
+
+vm.shutdown()
diff --git a/tests/qemu-iotests/235.out b/tests/qemu-iotests/235.out
new file mode 100644
index 0000000000..39db621e04
--- /dev/null
+++ b/tests/qemu-iotests/235.out
@@ -0,0 +1,3 @@
+{"return": {}}
+{"return": {}}
+{"return": {}}
diff --git a/tests/qemu-iotests/group b/tests/qemu-iotests/group
index 8c56a0ad11..61a6d98ebd 100644
--- a/tests/qemu-iotests/group
+++ b/tests/qemu-iotests/group
@@ -232,3 +232,4 @@
 232 auto quick
 233 auto quick
 234 auto quick migration
+235 auto quick
-- 
2.19.2

^ permalink raw reply related	[flat|nested] 20+ messages in thread

* Re: [Qemu-devel] [PULL 0/2] Block layer patches
  2018-12-03 16:58 [Qemu-devel] [PULL 0/2] Block layer patches Kevin Wolf
  2018-12-03 16:58 ` [Qemu-devel] [PULL 1/2] mirror: fix dead-lock Kevin Wolf
  2018-12-03 16:58 ` [Qemu-devel] [PULL 2/2] iotests: simple mirror test with kvm on 1G image Kevin Wolf
@ 2018-12-03 17:43 ` Peter Maydell
  2 siblings, 0 replies; 20+ messages in thread
From: Peter Maydell @ 2018-12-03 17:43 UTC (permalink / raw)
  To: Kevin Wolf; +Cc: Qemu-block, QEMU Developers

On Mon, 3 Dec 2018 at 16:58, Kevin Wolf <kwolf@redhat.com> wrote:
>
> The following changes since commit 83ea23cd207a03c5736be0231acbf7f8b05dbf52:
>
>   i386: hvf: Fix overrun of _decode_tbl1 (2018-12-03 15:09:55 +0000)
>
> are available in the Git repository at:
>
>   git://repo.or.cz/qemu/kevin.git tags/for-upstream
>
> for you to fetch changes up to db5e8210adbafe9c6383d8364345a8c545d38e62:
>
>   iotests: simple mirror test with kvm on 1G image (2018-12-03 16:51:53 +0100)
>
> ----------------------------------------------------------------
> Block layer patches:
>
> - mirror: Fix deadlock
>

Applied, thanks.

-- PMM

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [Qemu-devel] [qemu-s390x] [PULL 2/2] iotests: simple mirror test with kvm on 1G image
       [not found]     ` <75f7e3cc-bd46-c743-84ab-cd68bcb1dcfb@de.ibm.com>
@ 2018-12-05  8:23       ` Christian Borntraeger
  2018-12-05  8:46         ` Kevin Wolf
  0 siblings, 1 reply; 20+ messages in thread
From: Christian Borntraeger @ 2018-12-05  8:23 UTC (permalink / raw)
  To: Kevin Wolf, qemu-block
  Cc: peter.maydell, qemu-s390x, Vladimir Sementsov-Ogievskiy,
	Max Reitz, qemu-devel

On 04.12.2018 14:49, Christian Borntraeger wrote:
> 
> 
> On 04.12.2018 14:46, Christian Borntraeger wrote:
>> FWIW, this testcase fails with current qemu master on s390:
>>
>> QEMU          -- "/home/cborntra/REPOS/qemu/build/tests/qemu-iotests/../../s390x-softmmu/qemu-system-s390x" -nodefaults -machine accel=qtest
>> QEMU_IMG      -- "/home/cborntra/REPOS/qemu/build/tests/qemu-iotests/../../qemu-img" 
>> QEMU_IO       -- "/home/cborntra/REPOS/qemu/build/tests/qemu-iotests/../../qemu-io"  --cache writeback -f qcow2
>> QEMU_NBD      -- "/home/cborntra/REPOS/qemu/build/tests/qemu-iotests/../../qemu-nbd" 
>> IMGFMT        -- qcow2 (compat=1.1)
>> IMGPROTO      -- file
>> PLATFORM      -- Linux/s390x s38lp08 4.19.0+
>> TEST_DIR      -- /home/cborntra/REPOS/qemu/build/tests/qemu-iotests/scratch
>> SOCKET_SCM_HELPER -- /home/cborntra/REPOS/qemu/build/tests/qemu-iotests/socket_scm_helper
>> 235        
>>  [failed, exit status 1] - output mismatch (see 235.out.bad)
>> --- /home/cborntra/REPOS/qemu/tests/qemu-iotests/235.out	2018-12-04 14:44:27.913714608 +0100
>> +++ /home/cborntra/REPOS/qemu/build/tests/qemu-iotests/235.out.bad	2018-12-04 14:44:51.512958864 +0100
>> @@ -1,3 +1,14 @@
>> -{"return": {}}
>> -{"return": {}}
>> -{"return": {}}
>> +Traceback (most recent call last):
>> +  File "235", line 54, in <module>
>> +    vm.launch()
>> +  File "/home/cborntra/REPOS/qemu/tests/qemu-iotests/../../scripts/qemu.py", line 295, in launch
>> +    self._launch()
>> +  File "/home/cborntra/REPOS/qemu/tests/qemu-iotests/../../scripts/qemu.py", line 321, in _launch
>> +    self._post_launch()
>> +  File "/home/cborntra/REPOS/qemu/tests/qemu-iotests/../../scripts/qemu.py", line 266, in _post_launch
>> +    self._qmp.accept()
>> +  File "/home/cborntra/REPOS/qemu/tests/qemu-iotests/../../scripts/qmp/qmp.py", line 155, in accept
>> +    self.__sock, _ = self.__sock.accept()
>> +  File "/usr/lib64/python2.7/socket.py", line 206, in accept
>> +    sock, addr = self._sock.accept()
>> +socket.timeout: timed out
>> On 03.12.2018 17:58, Kevin Wolf wrote:
>>> From: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
>>>
>>> This test is broken without previous commit fixing dead-lock in mirror.
>>>
>>> Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
>>> Signed-off-by: Max Reitz <mreitz@redhat.com>
>>> Acked-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
>>> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
>>> ---
>>>  tests/qemu-iotests/235     | 76 ++++++++++++++++++++++++++++++++++++++
>>>  tests/qemu-iotests/235.out |  3 ++
>>>  tests/qemu-iotests/group   |  1 +
>>>  3 files changed, 80 insertions(+)
>>>  create mode 100755 tests/qemu-iotests/235
>>>  create mode 100644 tests/qemu-iotests/235.out
>>>
>>> diff --git a/tests/qemu-iotests/235 b/tests/qemu-iotests/235
>>> new file mode 100755
>>> index 0000000000..da044ed34e
>>> --- /dev/null
>>> +++ b/tests/qemu-iotests/235
[...]
>>> +# prepare source image
>>> +qemu_img_create('-f', iotests.imgfmt, '-o', 'preallocation=metadata', disk,
>>> +                str(size))
>>> +
>>> +vm = QEMUMachine(iotests.qemu_prog)
>>> +vm.add_args('-machine', 'pc,accel=kvm')

This (pc) clearly does not work on other architectures.
In addition to that, I also need to add -no-shutdown on s390 (see 068 for a similar case)

This hack makes it work for me.

diff --git a/tests/qemu-iotests/235 b/tests/qemu-iotests/235
index da044ed34e..05aa641a74 100755
--- a/tests/qemu-iotests/235
+++ b/tests/qemu-iotests/235
@@ -49,7 +49,8 @@ qemu_img_create('-f', iotests.imgfmt, '-o', 'preallocation=metadata', disk,
                 str(size))
 
 vm = QEMUMachine(iotests.qemu_prog)
-vm.add_args('-machine', 'pc,accel=kvm')
+vm.add_args('-machine', 'accel=kvm')
+vm.add_args('-no-shutdown')
 vm.add_args('-drive', 'id=src,file=' + disk)
 vm.launch()
 

^ permalink raw reply related	[flat|nested] 20+ messages in thread

* Re: [Qemu-devel] [qemu-s390x] [PULL 2/2] iotests: simple mirror test with kvm on 1G image
  2018-12-05  8:23       ` [Qemu-devel] [qemu-s390x] " Christian Borntraeger
@ 2018-12-05  8:46         ` Kevin Wolf
  2018-12-05  9:01           ` Christian Borntraeger
  0 siblings, 1 reply; 20+ messages in thread
From: Kevin Wolf @ 2018-12-05  8:46 UTC (permalink / raw)
  To: Christian Borntraeger
  Cc: qemu-block, peter.maydell, qemu-s390x,
	Vladimir Sementsov-Ogievskiy, Max Reitz, qemu-devel

Am 05.12.2018 um 09:23 hat Christian Borntraeger geschrieben:
> >>> +# prepare source image
> >>> +qemu_img_create('-f', iotests.imgfmt, '-o', 'preallocation=metadata', disk,
> >>> +                str(size))
> >>> +
> >>> +vm = QEMUMachine(iotests.qemu_prog)
> >>> +vm.add_args('-machine', 'pc,accel=kvm')
> 
> This (pc) clearly does not work on other architectures.
> In addition to that, I also need to add -no-shutdown on s390 (see 068 for a similar case)

Leaving out pc definitely makes sense, and the bug still reproduces for
me without it.

I don't understand the -no-shutdown, though. Already for 068, neither
the code nor the commit message when it was added explain why this is
needed.

Can you turn this into a proper patch and add a comment why -no-shutdown
is needed?

Kevin

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [Qemu-devel] [qemu-s390x] [PULL 2/2] iotests: simple mirror test with kvm on 1G image
  2018-12-05  8:46         ` Kevin Wolf
@ 2018-12-05  9:01           ` Christian Borntraeger
  2018-12-05 12:00             ` Vladimir Sementsov-Ogievskiy
  0 siblings, 1 reply; 20+ messages in thread
From: Christian Borntraeger @ 2018-12-05  9:01 UTC (permalink / raw)
  To: Kevin Wolf
  Cc: peter.maydell, Vladimir Sementsov-Ogievskiy, qemu-block,
	qemu-devel, Max Reitz, qemu-s390x



On 05.12.2018 09:46, Kevin Wolf wrote:
> Am 05.12.2018 um 09:23 hat Christian Borntraeger geschrieben:
>>>>> +# prepare source image
>>>>> +qemu_img_create('-f', iotests.imgfmt, '-o', 'preallocation=metadata', disk,
>>>>> +                str(size))
>>>>> +
>>>>> +vm = QEMUMachine(iotests.qemu_prog)
>>>>> +vm.add_args('-machine', 'pc,accel=kvm')
>>
>> This (pc) clearly does not work on other architectures.
>> In addition to that, I also need to add -no-shutdown on s390 (see 068 for a similar case)
> 
> Leaving out pc definitely makes sense, and the bug still reproduces for
> me without it.
> 
> I don't understand the -no-shutdown, though. Already for 068, neither
> the code nor the commit message when it was added explain why this is
> needed.
> 
> Can you turn this into a proper patch and add a comment why -no-shutdown
> is needed?

I already sent this patch. The reason is that there is no BIOS in a classical sense
on s390x. If no bootable image (external kernel or from disk) is found, the small boot
bios loads a disabled wait PSW. The default action for that is then shutdown.

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [Qemu-devel] [qemu-s390x] [PULL 2/2] iotests: simple mirror test with kvm on 1G image
  2018-12-05  9:01           ` Christian Borntraeger
@ 2018-12-05 12:00             ` Vladimir Sementsov-Ogievskiy
  2018-12-05 12:35               ` Christian Borntraeger
  0 siblings, 1 reply; 20+ messages in thread
From: Vladimir Sementsov-Ogievskiy @ 2018-12-05 12:00 UTC (permalink / raw)
  To: Christian Borntraeger, Kevin Wolf
  Cc: peter.maydell, qemu-block, qemu-devel, Max Reitz, qemu-s390x

05.12.2018 12:01, Christian Borntraeger wrote:
> 
> 
> On 05.12.2018 09:46, Kevin Wolf wrote:
>> Am 05.12.2018 um 09:23 hat Christian Borntraeger geschrieben:
>>>>>> +# prepare source image
>>>>>> +qemu_img_create('-f', iotests.imgfmt, '-o', 'preallocation=metadata', disk,
>>>>>> +                str(size))
>>>>>> +
>>>>>> +vm = QEMUMachine(iotests.qemu_prog)
>>>>>> +vm.add_args('-machine', 'pc,accel=kvm')
>>>
>>> This (pc) clearly does not work on other architectures.
>>> In addition to that, I also need to add -no-shutdown on s390 (see 068 for a similar case)
>>
>> Leaving out pc definitely makes sense, and the bug still reproduces for
>> me without it.
>>
>> I don't understand the -no-shutdown, though. Already for 068, neither
>> the code nor the commit message when it was added explain why this is
>> needed.
>>
>> Can you turn this into a proper patch and add a comment why -no-shutdown
>> is needed?
> 
> I already sent this patch. The reason is that there is no BIOS in a classical sense
> on s390x. If no bootable image (external kernel or from disk) is found, the small boot
> bios loads a disabled wait PSW. The default action for that is then shutdown.
> 

Is it an option for you just drop the whole line "vm.add_args('-machine', 'pc,accel=kvm')"?
The problem without it for me was that gdb failed to produce full and nice backtrace, but
test worked anyway

-- 
Best regards,
Vladimir

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [Qemu-devel] [qemu-s390x] [PULL 2/2] iotests: simple mirror test with kvm on 1G image
  2018-12-05 12:00             ` Vladimir Sementsov-Ogievskiy
@ 2018-12-05 12:35               ` Christian Borntraeger
  2018-12-05 13:39                 ` Vladimir Sementsov-Ogievskiy
  0 siblings, 1 reply; 20+ messages in thread
From: Christian Borntraeger @ 2018-12-05 12:35 UTC (permalink / raw)
  To: Vladimir Sementsov-Ogievskiy, Kevin Wolf
  Cc: peter.maydell, qemu-block, qemu-devel, Max Reitz, qemu-s390x



On 05.12.2018 13:00, Vladimir Sementsov-Ogievskiy wrote:
> 05.12.2018 12:01, Christian Borntraeger wrote:
>>
>>
>> On 05.12.2018 09:46, Kevin Wolf wrote:
>>> Am 05.12.2018 um 09:23 hat Christian Borntraeger geschrieben:
>>>>>>> +# prepare source image
>>>>>>> +qemu_img_create('-f', iotests.imgfmt, '-o', 'preallocation=metadata', disk,
>>>>>>> +                str(size))
>>>>>>> +
>>>>>>> +vm = QEMUMachine(iotests.qemu_prog)
>>>>>>> +vm.add_args('-machine', 'pc,accel=kvm')
>>>>
>>>> This (pc) clearly does not work on other architectures.
>>>> In addition to that, I also need to add -no-shutdown on s390 (see 068 for a similar case)
>>>
>>> Leaving out pc definitely makes sense, and the bug still reproduces for
>>> me without it.
>>>
>>> I don't understand the -no-shutdown, though. Already for 068, neither
>>> the code nor the commit message when it was added explain why this is
>>> needed.
>>>
>>> Can you turn this into a proper patch and add a comment why -no-shutdown
>>> is needed?
>>
>> I already sent this patch. The reason is that there is no BIOS in a classical sense
>> on s390x. If no bootable image (external kernel or from disk) is found, the small boot
>> bios loads a disabled wait PSW. The default action for that is then shutdown.
>>
> 
> Is it an option for you just drop the whole line "vm.add_args('-machine', 'pc,accel=kvm')"?
> The problem without it for me was that gdb failed to produce full and nice backtrace, but
> test worked anyway

In the commid message Vladimir said that kvm is necessary to trigger the problem. 

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [Qemu-devel] [qemu-s390x] [PULL 2/2] iotests: simple mirror test with kvm on 1G image
  2018-12-05 12:35               ` Christian Borntraeger
@ 2018-12-05 13:39                 ` Vladimir Sementsov-Ogievskiy
  2018-12-05 15:52                   ` Christian Borntraeger
  0 siblings, 1 reply; 20+ messages in thread
From: Vladimir Sementsov-Ogievskiy @ 2018-12-05 13:39 UTC (permalink / raw)
  To: Christian Borntraeger, Kevin Wolf
  Cc: peter.maydell, qemu-block, qemu-devel, Max Reitz, qemu-s390x

05.12.2018 15:35, Christian Borntraeger wrote:
> 
> 
> On 05.12.2018 13:00, Vladimir Sementsov-Ogievskiy wrote:
>> 05.12.2018 12:01, Christian Borntraeger wrote:
>>>
>>>
>>> On 05.12.2018 09:46, Kevin Wolf wrote:
>>>> Am 05.12.2018 um 09:23 hat Christian Borntraeger geschrieben:
>>>>>>>> +# prepare source image
>>>>>>>> +qemu_img_create('-f', iotests.imgfmt, '-o', 'preallocation=metadata', disk,
>>>>>>>> +                str(size))
>>>>>>>> +
>>>>>>>> +vm = QEMUMachine(iotests.qemu_prog)
>>>>>>>> +vm.add_args('-machine', 'pc,accel=kvm')
>>>>>
>>>>> This (pc) clearly does not work on other architectures.
>>>>> In addition to that, I also need to add -no-shutdown on s390 (see 068 for a similar case)
>>>>
>>>> Leaving out pc definitely makes sense, and the bug still reproduces for
>>>> me without it.
>>>>
>>>> I don't understand the -no-shutdown, though. Already for 068, neither
>>>> the code nor the commit message when it was added explain why this is
>>>> needed.
>>>>
>>>> Can you turn this into a proper patch and add a comment why -no-shutdown
>>>> is needed?
>>>
>>> I already sent this patch. The reason is that there is no BIOS in a classical sense
>>> on s390x. If no bootable image (external kernel or from disk) is found, the small boot
>>> bios loads a disabled wait PSW. The default action for that is then shutdown.
>>>
>>
>> Is it an option for you just drop the whole line "vm.add_args('-machine', 'pc,accel=kvm')"?
>> The problem without it for me was that gdb failed to produce full and nice backtrace, but
>> test worked anyway
> 
> In the commid message Vladimir said that kvm is necessary to trigger the problem.
> 

No, I didn't)

and it's in the comment:
# 3. drop kvm and use iotests.VM() (maybe, because of qtest) (however, it still
#    reproduces, if just drop kvm, but gdb failed to produce full backtraces
#    for me)



-- 
Best regards,
Vladimir

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [Qemu-devel] [qemu-s390x] [PULL 2/2] iotests: simple mirror test with kvm on 1G image
  2018-12-05 13:39                 ` Vladimir Sementsov-Ogievskiy
@ 2018-12-05 15:52                   ` Christian Borntraeger
  2018-12-05 16:09                     ` Vladimir Sementsov-Ogievskiy
  0 siblings, 1 reply; 20+ messages in thread
From: Christian Borntraeger @ 2018-12-05 15:52 UTC (permalink / raw)
  To: Vladimir Sementsov-Ogievskiy, Kevin Wolf
  Cc: peter.maydell, qemu-s390x, qemu-devel, qemu-block, Max Reitz, Eric Blake



On 05.12.2018 14:39, Vladimir Sementsov-Ogievskiy wrote:
> 05.12.2018 15:35, Christian Borntraeger wrote:
>>
>>
>> On 05.12.2018 13:00, Vladimir Sementsov-Ogievskiy wrote:
>>> 05.12.2018 12:01, Christian Borntraeger wrote:
>>>>
>>>>
>>>> On 05.12.2018 09:46, Kevin Wolf wrote:
>>>>> Am 05.12.2018 um 09:23 hat Christian Borntraeger geschrieben:
>>>>>>>>> +# prepare source image
>>>>>>>>> +qemu_img_create('-f', iotests.imgfmt, '-o', 'preallocation=metadata', disk,
>>>>>>>>> +                str(size))
>>>>>>>>> +
>>>>>>>>> +vm = QEMUMachine(iotests.qemu_prog)
>>>>>>>>> +vm.add_args('-machine', 'pc,accel=kvm')
>>>>>>
>>>>>> This (pc) clearly does not work on other architectures.
>>>>>> In addition to that, I also need to add -no-shutdown on s390 (see 068 for a similar case)
>>>>>
>>>>> Leaving out pc definitely makes sense, and the bug still reproduces for
>>>>> me without it.
>>>>>
>>>>> I don't understand the -no-shutdown, though. Already for 068, neither
>>>>> the code nor the commit message when it was added explain why this is
>>>>> needed.
>>>>>
>>>>> Can you turn this into a proper patch and add a comment why -no-shutdown
>>>>> is needed?
>>>>
>>>> I already sent this patch. The reason is that there is no BIOS in a classical sense
>>>> on s390x. If no bootable image (external kernel or from disk) is found, the small boot
>>>> bios loads a disabled wait PSW. The default action for that is then shutdown.
>>>>
>>>
>>> Is it an option for you just drop the whole line "vm.add_args('-machine', 'pc,accel=kvm')"?
>>> The problem without it for me was that gdb failed to produce full and nice backtrace, but
>>> test worked anyway
>>
>> In the commid message Vladimir said that kvm is necessary to trigger the problem.
>>
> 
> No, I didn't)
> 
> and it's in the comment:
> # 3. drop kvm and use iotests.VM() (maybe, because of qtest) (however, it still
> #    reproduces, if just drop kvm, but gdb failed to produce full backtraces
> #    for me)

Ok, so I would be fine with completely dropping that line.

the patch would then be



"-machine pc" will not work all architectures. Lets fall back to the
default machine by not specifying anything for the machine.

In addition we also need to specify -no-shutdown on s390 as qemu will
exit on guest shutdown. This happens when there is no kernel or bootable
disk on s390.

Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
---
 tests/qemu-iotests/235 | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/tests/qemu-iotests/235 b/tests/qemu-iotests/235
index da044ed34e..329da8f0c2 100755
--- a/tests/qemu-iotests/235
+++ b/tests/qemu-iotests/235
@@ -49,7 +49,8 @@ qemu_img_create('-f', iotests.imgfmt, '-o', 'preallocation=metadata', disk,
                 str(size))
 
 vm = QEMUMachine(iotests.qemu_prog)
-vm.add_args('-machine', 'pc,accel=kvm')
+if iotests.qemu_default_machine == 's390-ccw-virtio':
+        vm.add_args('-no-shutdown')
 vm.add_args('-drive', 'id=src,file=' + disk)
 vm.launch()
 


Shall I resend a v2?

^ permalink raw reply related	[flat|nested] 20+ messages in thread

* Re: [Qemu-devel] [qemu-s390x] [PULL 2/2] iotests: simple mirror test with kvm on 1G image
  2018-12-05 15:52                   ` Christian Borntraeger
@ 2018-12-05 16:09                     ` Vladimir Sementsov-Ogievskiy
  2018-12-05 16:23                       ` Christian Borntraeger
  2018-12-06 11:05                       ` Christian Borntraeger
  0 siblings, 2 replies; 20+ messages in thread
From: Vladimir Sementsov-Ogievskiy @ 2018-12-05 16:09 UTC (permalink / raw)
  To: Christian Borntraeger, Kevin Wolf
  Cc: peter.maydell, qemu-s390x, qemu-devel, qemu-block, Max Reitz, Eric Blake

05.12.2018 18:52, Christian Borntraeger wrote:
> 
> 
> On 05.12.2018 14:39, Vladimir Sementsov-Ogievskiy wrote:
>> 05.12.2018 15:35, Christian Borntraeger wrote:
>>>
>>>
>>> On 05.12.2018 13:00, Vladimir Sementsov-Ogievskiy wrote:
>>>> 05.12.2018 12:01, Christian Borntraeger wrote:
>>>>>
>>>>>
>>>>> On 05.12.2018 09:46, Kevin Wolf wrote:
>>>>>> Am 05.12.2018 um 09:23 hat Christian Borntraeger geschrieben:
>>>>>>>>>> +# prepare source image
>>>>>>>>>> +qemu_img_create('-f', iotests.imgfmt, '-o', 'preallocation=metadata', disk,
>>>>>>>>>> +                str(size))
>>>>>>>>>> +
>>>>>>>>>> +vm = QEMUMachine(iotests.qemu_prog)
>>>>>>>>>> +vm.add_args('-machine', 'pc,accel=kvm')
>>>>>>>
>>>>>>> This (pc) clearly does not work on other architectures.
>>>>>>> In addition to that, I also need to add -no-shutdown on s390 (see 068 for a similar case)
>>>>>>
>>>>>> Leaving out pc definitely makes sense, and the bug still reproduces for
>>>>>> me without it.
>>>>>>
>>>>>> I don't understand the -no-shutdown, though. Already for 068, neither
>>>>>> the code nor the commit message when it was added explain why this is
>>>>>> needed.
>>>>>>
>>>>>> Can you turn this into a proper patch and add a comment why -no-shutdown
>>>>>> is needed?
>>>>>
>>>>> I already sent this patch. The reason is that there is no BIOS in a classical sense
>>>>> on s390x. If no bootable image (external kernel or from disk) is found, the small boot
>>>>> bios loads a disabled wait PSW. The default action for that is then shutdown.
>>>>>
>>>>
>>>> Is it an option for you just drop the whole line "vm.add_args('-machine', 'pc,accel=kvm')"?
>>>> The problem without it for me was that gdb failed to produce full and nice backtrace, but
>>>> test worked anyway
>>>
>>> In the commid message Vladimir said that kvm is necessary to trigger the problem.
>>>
>>
>> No, I didn't)
>>
>> and it's in the comment:
>> # 3. drop kvm and use iotests.VM() (maybe, because of qtest) (however, it still
>> #    reproduces, if just drop kvm, but gdb failed to produce full backtraces
>> #    for me)
> 
> Ok, so I would be fine with completely dropping that line.
> 
> the patch would then be
> 
> 
> 
> "-machine pc" will not work all architectures. Lets fall back to the
> default machine by not specifying anything for the machine.
> 
> In addition we also need to specify -no-shutdown on s390 as qemu will
> exit on guest shutdown. This happens when there is no kernel or bootable
> disk on s390.
> 
> Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
> ---
>   tests/qemu-iotests/235 | 3 ++-
>   1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/tests/qemu-iotests/235 b/tests/qemu-iotests/235
> index da044ed34e..329da8f0c2 100755
> --- a/tests/qemu-iotests/235
> +++ b/tests/qemu-iotests/235
> @@ -49,7 +49,8 @@ qemu_img_create('-f', iotests.imgfmt, '-o', 'preallocation=metadata', disk,
>                   str(size))
>   
>   vm = QEMUMachine(iotests.qemu_prog)
> -vm.add_args('-machine', 'pc,accel=kvm')
> +if iotests.qemu_default_machine == 's390-ccw-virtio':
> +        vm.add_args('-no-shutdown')
>   vm.add_args('-drive', 'id=src,file=' + disk)
>   vm.launch()
>   
> 
> 
> Shall I resend a v2?
> 

so, we need -no-shutdown even if we drop kvm? I hoped that not.. Hmm. grep points only to one iotest doing the same about no-shutdown - 068..


-- 
Best regards,
Vladimir

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [Qemu-devel] [qemu-s390x] [PULL 2/2] iotests: simple mirror test with kvm on 1G image
  2018-12-05 16:09                     ` Vladimir Sementsov-Ogievskiy
@ 2018-12-05 16:23                       ` Christian Borntraeger
  2018-12-06 11:05                       ` Christian Borntraeger
  1 sibling, 0 replies; 20+ messages in thread
From: Christian Borntraeger @ 2018-12-05 16:23 UTC (permalink / raw)
  To: Vladimir Sementsov-Ogievskiy, Kevin Wolf
  Cc: peter.maydell, qemu-block, qemu-devel, Max Reitz, qemu-s390x, Eric Blake



On 05.12.2018 17:09, Vladimir Sementsov-Ogievskiy wrote:
> 05.12.2018 18:52, Christian Borntraeger wrote:
>>
>>
>> On 05.12.2018 14:39, Vladimir Sementsov-Ogievskiy wrote:
>>> 05.12.2018 15:35, Christian Borntraeger wrote:
>>>>
>>>>
>>>> On 05.12.2018 13:00, Vladimir Sementsov-Ogievskiy wrote:
>>>>> 05.12.2018 12:01, Christian Borntraeger wrote:
>>>>>>
>>>>>>
>>>>>> On 05.12.2018 09:46, Kevin Wolf wrote:
>>>>>>> Am 05.12.2018 um 09:23 hat Christian Borntraeger geschrieben:
>>>>>>>>>>> +# prepare source image
>>>>>>>>>>> +qemu_img_create('-f', iotests.imgfmt, '-o', 'preallocation=metadata', disk,
>>>>>>>>>>> +                str(size))
>>>>>>>>>>> +
>>>>>>>>>>> +vm = QEMUMachine(iotests.qemu_prog)
>>>>>>>>>>> +vm.add_args('-machine', 'pc,accel=kvm')
>>>>>>>>
>>>>>>>> This (pc) clearly does not work on other architectures.
>>>>>>>> In addition to that, I also need to add -no-shutdown on s390 (see 068 for a similar case)
>>>>>>>
>>>>>>> Leaving out pc definitely makes sense, and the bug still reproduces for
>>>>>>> me without it.
>>>>>>>
>>>>>>> I don't understand the -no-shutdown, though. Already for 068, neither
>>>>>>> the code nor the commit message when it was added explain why this is
>>>>>>> needed.
>>>>>>>
>>>>>>> Can you turn this into a proper patch and add a comment why -no-shutdown
>>>>>>> is needed?
>>>>>>
>>>>>> I already sent this patch. The reason is that there is no BIOS in a classical sense
>>>>>> on s390x. If no bootable image (external kernel or from disk) is found, the small boot
>>>>>> bios loads a disabled wait PSW. The default action for that is then shutdown.
>>>>>>
>>>>>
>>>>> Is it an option for you just drop the whole line "vm.add_args('-machine', 'pc,accel=kvm')"?
>>>>> The problem without it for me was that gdb failed to produce full and nice backtrace, but
>>>>> test worked anyway
>>>>
>>>> In the commid message Vladimir said that kvm is necessary to trigger the problem.
>>>>
>>>
>>> No, I didn't)
>>>
>>> and it's in the comment:
>>> # 3. drop kvm and use iotests.VM() (maybe, because of qtest) (however, it still
>>> #    reproduces, if just drop kvm, but gdb failed to produce full backtraces
>>> #    for me)
>>
>> Ok, so I would be fine with completely dropping that line.
>>
>> the patch would then be
>>
>>
>>
>> "-machine pc" will not work all architectures. Lets fall back to the
>> default machine by not specifying anything for the machine.
>>
>> In addition we also need to specify -no-shutdown on s390 as qemu will
>> exit on guest shutdown. This happens when there is no kernel or bootable
>> disk on s390.
>>
>> Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
>> ---
>>   tests/qemu-iotests/235 | 3 ++-
>>   1 file changed, 2 insertions(+), 1 deletion(-)
>>
>> diff --git a/tests/qemu-iotests/235 b/tests/qemu-iotests/235
>> index da044ed34e..329da8f0c2 100755
>> --- a/tests/qemu-iotests/235
>> +++ b/tests/qemu-iotests/235
>> @@ -49,7 +49,8 @@ qemu_img_create('-f', iotests.imgfmt, '-o', 'preallocation=metadata', disk,
>>                   str(size))
>>   
>>   vm = QEMUMachine(iotests.qemu_prog)
>> -vm.add_args('-machine', 'pc,accel=kvm')
>> +if iotests.qemu_default_machine == 's390-ccw-virtio':
>> +        vm.add_args('-no-shutdown')
>>   vm.add_args('-drive', 'id=src,file=' + disk)
>>   vm.launch()
>>   
>>
>>
>> Shall I resend a v2?
>>
> 
> so, we need -no-shutdown even if we drop kvm? I hoped that not.. Hmm. grep points only to one iotest doing the same about no-shutdown - 068..

Yes, without that we fail with

--- /home/cborntra/REPOS/qemu/tests/qemu-iotests/235.out	2018-12-04 14:44:27.913714608 +0100
+++ /home/cborntra/REPOS/qemu/build/tests/qemu-iotests/235.out.bad	2018-12-05 17:23:05.601827490 +0100
@@ -1,3 +1,13 @@
 {"return": {}}
 {"return": {}}
 {"return": {}}
+Traceback (most recent call last):
+  File "235", line 70, in <module>
+    vm.event_wait('BLOCK_JOB_READY', timeout=10.0)
+  File "/home/cborntra/REPOS/qemu/tests/qemu-iotests/../../scripts/qemu.py", line 436, in event_wait
+    event = self._qmp.pull_event(wait=timeout)
+  File "/home/cborntra/REPOS/qemu/tests/qemu-iotests/../../scripts/qmp/qmp.py", line 216, in pull_event
+    self.__get_events(wait)
+  File "/home/cborntra/REPOS/qemu/tests/qemu-iotests/../../scripts/qmp/qmp.py", line 128, in __get_events
+    raise QMPConnectError("Error while reading from socket")
+qmp.qmp.QMPConnectError: Error while reading from socket
Failures: 235
Failed 1 of 1 tests

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [Qemu-devel] [qemu-s390x] [PULL 2/2] iotests: simple mirror test with kvm on 1G image
  2018-12-05 16:09                     ` Vladimir Sementsov-Ogievskiy
  2018-12-05 16:23                       ` Christian Borntraeger
@ 2018-12-06 11:05                       ` Christian Borntraeger
  2018-12-07 12:14                         ` Kevin Wolf
  1 sibling, 1 reply; 20+ messages in thread
From: Christian Borntraeger @ 2018-12-06 11:05 UTC (permalink / raw)
  To: Vladimir Sementsov-Ogievskiy, Kevin Wolf
  Cc: peter.maydell, qemu-s390x, qemu-devel, qemu-block, Max Reitz, Eric Blake



On 05.12.2018 17:09, Vladimir Sementsov-Ogievskiy wrote:
> 05.12.2018 18:52, Christian Borntraeger wrote:
>>
>>
>> On 05.12.2018 14:39, Vladimir Sementsov-Ogievskiy wrote:
>>> 05.12.2018 15:35, Christian Borntraeger wrote:
>>>>
>>>>
>>>> On 05.12.2018 13:00, Vladimir Sementsov-Ogievskiy wrote:
>>>>> 05.12.2018 12:01, Christian Borntraeger wrote:
>>>>>>
>>>>>>
>>>>>> On 05.12.2018 09:46, Kevin Wolf wrote:
>>>>>>> Am 05.12.2018 um 09:23 hat Christian Borntraeger geschrieben:
>>>>>>>>>>> +# prepare source image
>>>>>>>>>>> +qemu_img_create('-f', iotests.imgfmt, '-o', 'preallocation=metadata', disk,
>>>>>>>>>>> +                str(size))
>>>>>>>>>>> +
>>>>>>>>>>> +vm = QEMUMachine(iotests.qemu_prog)
>>>>>>>>>>> +vm.add_args('-machine', 'pc,accel=kvm')
>>>>>>>>
>>>>>>>> This (pc) clearly does not work on other architectures.
>>>>>>>> In addition to that, I also need to add -no-shutdown on s390 (see 068 for a similar case)
>>>>>>>
>>>>>>> Leaving out pc definitely makes sense, and the bug still reproduces for
>>>>>>> me without it.
>>>>>>>
>>>>>>> I don't understand the -no-shutdown, though. Already for 068, neither
>>>>>>> the code nor the commit message when it was added explain why this is
>>>>>>> needed.
>>>>>>>
>>>>>>> Can you turn this into a proper patch and add a comment why -no-shutdown
>>>>>>> is needed?
>>>>>>
>>>>>> I already sent this patch. The reason is that there is no BIOS in a classical sense
>>>>>> on s390x. If no bootable image (external kernel or from disk) is found, the small boot
>>>>>> bios loads a disabled wait PSW. The default action for that is then shutdown.
>>>>>>
>>>>>
>>>>> Is it an option for you just drop the whole line "vm.add_args('-machine', 'pc,accel=kvm')"?
>>>>> The problem without it for me was that gdb failed to produce full and nice backtrace, but
>>>>> test worked anyway
>>>>
>>>> In the commid message Vladimir said that kvm is necessary to trigger the problem.
>>>>
>>>
>>> No, I didn't)
>>>
>>> and it's in the comment:
>>> # 3. drop kvm and use iotests.VM() (maybe, because of qtest) (however, it still
>>> #    reproduces, if just drop kvm, but gdb failed to produce full backtraces
>>> #    for me)
>>
>> Ok, so I would be fine with completely dropping that line.
>>
>> the patch would then be
>>
>>
>>
>> "-machine pc" will not work all architectures. Lets fall back to the
>> default machine by not specifying anything for the machine.
>>
>> In addition we also need to specify -no-shutdown on s390 as qemu will
>> exit on guest shutdown. This happens when there is no kernel or bootable
>> disk on s390.
>>
>> Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
>> ---
>>   tests/qemu-iotests/235 | 3 ++-
>>   1 file changed, 2 insertions(+), 1 deletion(-)
>>
>> diff --git a/tests/qemu-iotests/235 b/tests/qemu-iotests/235
>> index da044ed34e..329da8f0c2 100755
>> --- a/tests/qemu-iotests/235
>> +++ b/tests/qemu-iotests/235
>> @@ -49,7 +49,8 @@ qemu_img_create('-f', iotests.imgfmt, '-o', 'preallocation=metadata', disk,
>>                   str(size))
>>   
>>   vm = QEMUMachine(iotests.qemu_prog)
>> -vm.add_args('-machine', 'pc,accel=kvm')
>> +if iotests.qemu_default_machine == 's390-ccw-virtio':
>> +        vm.add_args('-no-shutdown')
>>   vm.add_args('-drive', 'id=src,file=' + disk)
>>   vm.launch()
>>   
>>
>>
>> Shall I resend a v2?
>>
> 
> so, we need -no-shutdown even if we drop kvm? I hoped that not.. Hmm. grep points only to one iotest doing the same about no-shutdown - 068..

Kevin, shall I send the above patch as v2?

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [Qemu-devel] [qemu-s390x] [PULL 2/2] iotests: simple mirror test with kvm on 1G image
  2018-12-06 11:05                       ` Christian Borntraeger
@ 2018-12-07 12:14                         ` Kevin Wolf
  0 siblings, 0 replies; 20+ messages in thread
From: Kevin Wolf @ 2018-12-07 12:14 UTC (permalink / raw)
  To: Christian Borntraeger
  Cc: Vladimir Sementsov-Ogievskiy, peter.maydell, qemu-s390x,
	qemu-devel, qemu-block, Max Reitz, Eric Blake

Am 06.12.2018 um 12:05 hat Christian Borntraeger geschrieben:
> 
> 
> On 05.12.2018 17:09, Vladimir Sementsov-Ogievskiy wrote:
> > 05.12.2018 18:52, Christian Borntraeger wrote:
> >>
> >>
> >> On 05.12.2018 14:39, Vladimir Sementsov-Ogievskiy wrote:
> >>> 05.12.2018 15:35, Christian Borntraeger wrote:
> >>>>
> >>>>
> >>>> On 05.12.2018 13:00, Vladimir Sementsov-Ogievskiy wrote:
> >>>>> 05.12.2018 12:01, Christian Borntraeger wrote:
> >>>>>>
> >>>>>>
> >>>>>> On 05.12.2018 09:46, Kevin Wolf wrote:
> >>>>>>> Am 05.12.2018 um 09:23 hat Christian Borntraeger geschrieben:
> >>>>>>>>>>> +# prepare source image
> >>>>>>>>>>> +qemu_img_create('-f', iotests.imgfmt, '-o', 'preallocation=metadata', disk,
> >>>>>>>>>>> +                str(size))
> >>>>>>>>>>> +
> >>>>>>>>>>> +vm = QEMUMachine(iotests.qemu_prog)
> >>>>>>>>>>> +vm.add_args('-machine', 'pc,accel=kvm')
> >>>>>>>>
> >>>>>>>> This (pc) clearly does not work on other architectures.
> >>>>>>>> In addition to that, I also need to add -no-shutdown on s390 (see 068 for a similar case)
> >>>>>>>
> >>>>>>> Leaving out pc definitely makes sense, and the bug still reproduces for
> >>>>>>> me without it.
> >>>>>>>
> >>>>>>> I don't understand the -no-shutdown, though. Already for 068, neither
> >>>>>>> the code nor the commit message when it was added explain why this is
> >>>>>>> needed.
> >>>>>>>
> >>>>>>> Can you turn this into a proper patch and add a comment why -no-shutdown
> >>>>>>> is needed?
> >>>>>>
> >>>>>> I already sent this patch. The reason is that there is no BIOS in a classical sense
> >>>>>> on s390x. If no bootable image (external kernel or from disk) is found, the small boot
> >>>>>> bios loads a disabled wait PSW. The default action for that is then shutdown.
> >>>>>>
> >>>>>
> >>>>> Is it an option for you just drop the whole line "vm.add_args('-machine', 'pc,accel=kvm')"?
> >>>>> The problem without it for me was that gdb failed to produce full and nice backtrace, but
> >>>>> test worked anyway
> >>>>
> >>>> In the commid message Vladimir said that kvm is necessary to trigger the problem.
> >>>>
> >>>
> >>> No, I didn't)
> >>>
> >>> and it's in the comment:
> >>> # 3. drop kvm and use iotests.VM() (maybe, because of qtest) (however, it still
> >>> #    reproduces, if just drop kvm, but gdb failed to produce full backtraces
> >>> #    for me)
> >>
> >> Ok, so I would be fine with completely dropping that line.
> >>
> >> the patch would then be
> >>
> >>
> >>
> >> "-machine pc" will not work all architectures. Lets fall back to the
> >> default machine by not specifying anything for the machine.
> >>
> >> In addition we also need to specify -no-shutdown on s390 as qemu will
> >> exit on guest shutdown. This happens when there is no kernel or bootable
> >> disk on s390.
> >>
> >> Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
> >> ---
> >>   tests/qemu-iotests/235 | 3 ++-
> >>   1 file changed, 2 insertions(+), 1 deletion(-)
> >>
> >> diff --git a/tests/qemu-iotests/235 b/tests/qemu-iotests/235
> >> index da044ed34e..329da8f0c2 100755
> >> --- a/tests/qemu-iotests/235
> >> +++ b/tests/qemu-iotests/235
> >> @@ -49,7 +49,8 @@ qemu_img_create('-f', iotests.imgfmt, '-o', 'preallocation=metadata', disk,
> >>                   str(size))
> >>   
> >>   vm = QEMUMachine(iotests.qemu_prog)
> >> -vm.add_args('-machine', 'pc,accel=kvm')
> >> +if iotests.qemu_default_machine == 's390-ccw-virtio':
> >> +        vm.add_args('-no-shutdown')
> >>   vm.add_args('-drive', 'id=src,file=' + disk)
> >>   vm.launch()
> >>   
> >>
> >>
> >> Shall I resend a v2?
> >>
> > 
> > so, we need -no-shutdown even if we drop kvm? I hoped that not..
> > Hmm. grep points only to one iotest doing the same about no-shutdown
> > - 068..
> 
> Kevin, shall I send the above patch as v2?

Don't bother, I think v1 is fine. By specifying kvm explicitly, it's at
least clear that we're not using qtest like in other tests.

Kevin

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [Qemu-devel] [PULL 0/2] Block layer patches
  2019-07-12 13:52 Kevin Wolf
@ 2019-07-12 15:32 ` Peter Maydell
  0 siblings, 0 replies; 20+ messages in thread
From: Peter Maydell @ 2019-07-12 15:32 UTC (permalink / raw)
  To: Kevin Wolf; +Cc: QEMU Developers, Qemu-block

On Fri, 12 Jul 2019 at 14:53, Kevin Wolf <kwolf@redhat.com> wrote:
>
> The following changes since commit a2a9d4adabe340617a24eb73a8b2a116d28a6b38:
>
>   Merge remote-tracking branch 'remotes/dgibson/tags/ppc-for-4.1-20190712' into staging (2019-07-12 11:06:48 +0100)
>
> are available in the Git repository at:
>
>   git://repo.or.cz/qemu/kevin.git tags/for-upstream
>
> for you to fetch changes up to 867eccfed84f96b54f4a432c510a02c2ce03b430:
>
>   file-posix: Use max transfer length/segment count only for SCSI passthrough (2019-07-12 15:42:23 +0200)
>
> ----------------------------------------------------------------
> Block layer patches:
>
> - file-posix: Fix max transfer length for non-SCSI-passthrough
> - iotests: Fix 082 reference output
>
> ----------------------------------------------------------------
> Eric Blake (1):
>       iotests: Update 082 expected output
>
> Maxim Levitsky (1):
>       file-posix: Use max transfer length/segment count only for SCSI passthrough



Applied, thanks.

Please update the changelog at https://wiki.qemu.org/ChangeLog/4.1
for any user-visible changes.

-- PMM


^ permalink raw reply	[flat|nested] 20+ messages in thread

* [Qemu-devel] [PULL 0/2] Block layer patches
@ 2019-07-12 13:52 Kevin Wolf
  2019-07-12 15:32 ` Peter Maydell
  0 siblings, 1 reply; 20+ messages in thread
From: Kevin Wolf @ 2019-07-12 13:52 UTC (permalink / raw)
  To: qemu-block; +Cc: kwolf, peter.maydell, qemu-devel

The following changes since commit a2a9d4adabe340617a24eb73a8b2a116d28a6b38:

  Merge remote-tracking branch 'remotes/dgibson/tags/ppc-for-4.1-20190712' into staging (2019-07-12 11:06:48 +0100)

are available in the Git repository at:

  git://repo.or.cz/qemu/kevin.git tags/for-upstream

for you to fetch changes up to 867eccfed84f96b54f4a432c510a02c2ce03b430:

  file-posix: Use max transfer length/segment count only for SCSI passthrough (2019-07-12 15:42:23 +0200)

----------------------------------------------------------------
Block layer patches:

- file-posix: Fix max transfer length for non-SCSI-passthrough
- iotests: Fix 082 reference output

----------------------------------------------------------------
Eric Blake (1):
      iotests: Update 082 expected output

Maxim Levitsky (1):
      file-posix: Use max transfer length/segment count only for SCSI passthrough

 block/file-posix.c         | 54 ++++++++++++++++++++++++----------------------
 tests/qemu-iotests/082.out | 54 +++++++++++++++++++++++-----------------------
 2 files changed, 55 insertions(+), 53 deletions(-)


^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [Qemu-devel] [PULL 0/2] Block layer patches
@ 2019-04-08 19:10   ` Peter Maydell
  0 siblings, 0 replies; 20+ messages in thread
From: Peter Maydell @ 2019-04-08 19:10 UTC (permalink / raw)
  To: Kevin Wolf; +Cc: Qemu-block, QEMU Developers

On Mon, 8 Apr 2019 at 17:35, Kevin Wolf <kwolf@redhat.com> wrote:
>
> The following changes since commit f55a585d1037e5de6088f25e75443c2776786e29:
>
>   Merge remote-tracking branch 'remotes/mst/tags/for_upstream' into staging (2019-04-07 14:54:55 +0100)
>
> are available in the Git repository at:
>
>   git://repo.or.cz/qemu/kevin.git tags/for-upstream
>
> for you to fetch changes up to ab63817119b03b95f7dce6fae036e6d063ad63fb:
>
>   hmp: Fix drive_add ... format=help crash (2019-04-08 17:42:06 +0200)
>
> ----------------------------------------------------------------
> Block layer patches:
>
> - hmp: Fix drive_add ... format=help crash
> - block: Forward 'discard' to temporary overlay
>
> ----------------------------------------------------------------

Applied, thanks.

Please update the changelog at https://wiki.qemu.org/ChangeLog/4.0
for any user-visible changes.

-- PMM

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [Qemu-devel] [PULL 0/2] Block layer patches
@ 2019-04-08 19:10   ` Peter Maydell
  0 siblings, 0 replies; 20+ messages in thread
From: Peter Maydell @ 2019-04-08 19:10 UTC (permalink / raw)
  To: Kevin Wolf; +Cc: QEMU Developers, Qemu-block

On Mon, 8 Apr 2019 at 17:35, Kevin Wolf <kwolf@redhat.com> wrote:
>
> The following changes since commit f55a585d1037e5de6088f25e75443c2776786e29:
>
>   Merge remote-tracking branch 'remotes/mst/tags/for_upstream' into staging (2019-04-07 14:54:55 +0100)
>
> are available in the Git repository at:
>
>   git://repo.or.cz/qemu/kevin.git tags/for-upstream
>
> for you to fetch changes up to ab63817119b03b95f7dce6fae036e6d063ad63fb:
>
>   hmp: Fix drive_add ... format=help crash (2019-04-08 17:42:06 +0200)
>
> ----------------------------------------------------------------
> Block layer patches:
>
> - hmp: Fix drive_add ... format=help crash
> - block: Forward 'discard' to temporary overlay
>
> ----------------------------------------------------------------

Applied, thanks.

Please update the changelog at https://wiki.qemu.org/ChangeLog/4.0
for any user-visible changes.

-- PMM


^ permalink raw reply	[flat|nested] 20+ messages in thread

* [Qemu-devel] [PULL 0/2] Block layer patches
@ 2019-04-08 16:34 Kevin Wolf
  2019-04-08 19:10   ` Peter Maydell
  0 siblings, 1 reply; 20+ messages in thread
From: Kevin Wolf @ 2019-04-08 16:34 UTC (permalink / raw)
  To: qemu-block; +Cc: kwolf, peter.maydell, qemu-devel

The following changes since commit f55a585d1037e5de6088f25e75443c2776786e29:

  Merge remote-tracking branch 'remotes/mst/tags/for_upstream' into staging (2019-04-07 14:54:55 +0100)

are available in the Git repository at:

  git://repo.or.cz/qemu/kevin.git tags/for-upstream

for you to fetch changes up to ab63817119b03b95f7dce6fae036e6d063ad63fb:

  hmp: Fix drive_add ... format=help crash (2019-04-08 17:42:06 +0200)

----------------------------------------------------------------
Block layer patches:

- hmp: Fix drive_add ... format=help crash
- block: Forward 'discard' to temporary overlay

----------------------------------------------------------------
Kevin Wolf (1):
      block: Forward 'discard' to temporary overlay

Markus Armbruster (1):
      hmp: Fix drive_add ... format=help crash

 block.c          | 3 ++-
 device-hotplug.c | 2 +-
 tests/test-hmp.c | 1 +
 3 files changed, 4 insertions(+), 2 deletions(-)

^ permalink raw reply	[flat|nested] 20+ messages in thread

end of thread, other threads:[~2019-07-12 15:33 UTC | newest]

Thread overview: 20+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-12-03 16:58 [Qemu-devel] [PULL 0/2] Block layer patches Kevin Wolf
2018-12-03 16:58 ` [Qemu-devel] [PULL 1/2] mirror: fix dead-lock Kevin Wolf
2018-12-03 16:58 ` [Qemu-devel] [PULL 2/2] iotests: simple mirror test with kvm on 1G image Kevin Wolf
     [not found]   ` <dc86835f-65d9-cada-dc9b-1f2c708521f9@de.ibm.com>
     [not found]     ` <75f7e3cc-bd46-c743-84ab-cd68bcb1dcfb@de.ibm.com>
2018-12-05  8:23       ` [Qemu-devel] [qemu-s390x] " Christian Borntraeger
2018-12-05  8:46         ` Kevin Wolf
2018-12-05  9:01           ` Christian Borntraeger
2018-12-05 12:00             ` Vladimir Sementsov-Ogievskiy
2018-12-05 12:35               ` Christian Borntraeger
2018-12-05 13:39                 ` Vladimir Sementsov-Ogievskiy
2018-12-05 15:52                   ` Christian Borntraeger
2018-12-05 16:09                     ` Vladimir Sementsov-Ogievskiy
2018-12-05 16:23                       ` Christian Borntraeger
2018-12-06 11:05                       ` Christian Borntraeger
2018-12-07 12:14                         ` Kevin Wolf
2018-12-03 17:43 ` [Qemu-devel] [PULL 0/2] Block layer patches Peter Maydell
2019-04-08 16:34 Kevin Wolf
2019-04-08 19:10 ` Peter Maydell
2019-04-08 19:10   ` Peter Maydell
2019-07-12 13:52 Kevin Wolf
2019-07-12 15:32 ` Peter Maydell

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.