[PATCH] qemu-iotests: Discard stderr when probing devices

2022-06-05 Thread Cole Robinson
./configure --enable-modules --enable-smartcard \
--target-list=x86_64-softmmu,s390x-softmmu
make
cd build
QEMU_PROG=`pwd`/s390x-softmmu/qemu-system-s390x \
../tests/check-block.sh qcow2
...
--- /home/crobinso/src/qemu/tests/qemu-iotests/127.out
+++ /home/crobinso/src/qemu/build/tests/qemu-iotests/scratch/127.out.bad
@@ -1,4 +1,18 @@
 QA output created by 127
+Failed to open module: /home/crobinso/src/qemu/build/hw-usb-smartcard.so: 
undefined symbol: ccid_card_ccid_attach
...
--- /home/crobinso/src/qemu/tests/qemu-iotests/267.out
+++ /home/crobinso/src/qemu/build/tests/qemu-iotests/scratch/267.out.bad
@@ -1,4 +1,11 @@
 QA output created by 267
+Failed to open module: /home/crobinso/src/qemu/build/hw-usb-smartcard.so: 
undefined symbol: ccid_card_ccid_attach

The stderr spew is its own known issue, but seems like iotests should
be discarding stderr in this case.

Signed-off-by: Cole Robinson 
---
 tests/qemu-iotests/common.rc | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/tests/qemu-iotests/common.rc b/tests/qemu-iotests/common.rc
index 165b54a61e..db757025cb 100644
--- a/tests/qemu-iotests/common.rc
+++ b/tests/qemu-iotests/common.rc
@@ -982,7 +982,7 @@ _require_large_file()
 #
 _require_devices()
 {
-available=$($QEMU -M none -device help | \
+available=$($QEMU -M none -device help 2> /dev/null | \
 grep ^name | sed -e 's/^name "//' -e 's/".*$//')
 for device
 do
@@ -994,7 +994,7 @@ _require_devices()
 
 _require_one_device_of()
 {
-available=$($QEMU -M none -device help | \
+available=$($QEMU -M none -device help 2> /dev/null | \
 grep ^name | sed -e 's/^name "//' -e 's/".*$//')
 for device
 do
-- 
2.36.1




Re: [PATCH for-5.0] aio-posix: fix test-aio /aio/event/wait with fdmon-io_uring

2020-04-02 Thread Cole Robinson
On 4/2/20 10:54 AM, Stefan Hajnoczi wrote:
> When a file descriptor becomes ready we must re-arm POLL_ADD.  This is
> done by adding an sqe to the io_uring sq ring.  The ->need_wait()
> function wasn't taking pending sqes into account and therefore
> io_uring_submit_and_wait() was not being called.  Polling for cqes
> failed to detect fd readiness since we hadn't submitted the sqe to
> io_uring.
> 
> This patch fixes the following tests/test-aio -p /aio/event/wait
> failure:
> 
>   ok 11 /aio/event/wait
>   **
>   ERROR:tests/test-aio.c:374:test_flush_event_notifier: assertion failed: 
> (aio_poll(ctx, false))
> 
> Reported-by: Cole Robinson 
> Fixes: 73fd282e7b6dd4e4ea1c3bbb3d302c8db51e4ccf
>("aio-posix: add io_uring fd monitoring implementation")
> Signed-off-by: Stefan Hajnoczi 

Fixes the crash for me, thanks!

Tested-by: Cole Robinson 

- Cole




test-aio failure with liburing

2020-03-25 Thread Cole Robinson
Using qemu.git master with liburing-devel installed. 100% reproducible
test failure for me

$ uname -r
5.6.0-0.rc5.git0.2.fc32.x86_64
$ rpm -q liburing
liburing-0.5-1.fc32.x86_64

$ ./tests/test-aio
# random seed: R02S70cd9b447cc815ed3194d31e97371542
1..28
# Start of aio tests
ok 1 /aio/acquire
ok 2 /aio/external-client
# Start of bh tests
ok 3 /aio/bh/schedule
ok 4 /aio/bh/schedule10
ok 5 /aio/bh/cancel
ok 6 /aio/bh/delete
ok 7 /aio/bh/flush
# Start of callback-delete tests
ok 8 /aio/bh/callback-delete/one
ok 9 /aio/bh/callback-delete/many
# End of callback-delete tests
# End of bh tests
# Start of event tests
ok 10 /aio/event/add-remove
ok 11 /aio/event/wait
**
ERROR:tests/test-aio.c:374:test_flush_event_notifier: assertion failed:
(aio_poll(ctx, false))
Bail out! ERROR:tests/test-aio.c:374:test_flush_event_notifier:
assertion failed: (aio_poll(ctx, false))
Aborted (core dumped)


Configuring with --disable-linux-io-uring makes the failure go away

I saw this patch about another uring test-aio failure, but that patch is
already in git master, and the failure is different:
https://lists.gnu.org/archive/html/qemu-devel/2020-03/msg06299.html


Thanks,
Cole




Re: [Qemu-block] [Qemu-devel] [PATCH 0/3] block: Remove deprecated -drive options

2018-06-13 Thread Cole Robinson
On 06/13/2018 08:34 AM, Kevin Wolf wrote:
> We deprecated a bunch of -drive options in 2.10, so let's remove them
> for 3.0.
> 
> Kevin Wolf (3):
>   block: Remove deprecated -drive geometry options
>   block: Remove deprecated -drive option addr
>   block: Remove deprecated -drive option serial
> 
>  include/hw/block/block.h  |   1 -
>  include/sysemu/blockdev.h |   3 --
>  block/block-backend.c |   1 -
>  blockdev.c| 110 
> --
>  device-hotplug.c  |   4 --
>  hw/block/block.c  |  27 
>  hw/block/nvme.c   |   1 -
>  hw/block/virtio-blk.c |   1 -
>  hw/ide/qdev.c |   1 -
>  hw/scsi/scsi-disk.c   |   1 -
>  hw/usb/dev-storage.c  |   1 -
>  tests/ahci-test.c |   6 +--
>  tests/hd-geo-test.c   |  18 
>  tests/ide-test.c  |   8 ++--
>  hmp-commands.hx   |   1 -
>  qemu-doc.texi |  15 ---
>  qemu-options.hx   |  14 +-
>  17 files changed, 8 insertions(+), 205 deletions(-)
> 

I think libvirt needs to be adjusted to handle new style options for
patch #1 and patch #3, ccing

- Cole



Re: [Qemu-block] [Qemu-devel] [PATCH] raw-posix: Fix .bdrv_co_get_block_status() for unaligned image size

2015-06-09 Thread Cole Robinson
On 06/09/2015 04:55 AM, Kevin Wolf wrote:
 Image files with an unaligned image size have a final hole that starts
 at EOF, i.e. in the middle of a sector. Currently, *pnum == 0 is
 returned when checking the status of this sector. In qemu-img, this
 triggers an assertion failure.
 
 In order to fix this, one type for the sector that contains EOF must be
 found. Treating a hole as data is safe, so this patch rounds the
 calculated number of data sectors up, so that a partial sector at EOF is
 treated as a full data sector.
 
 This fixes https://bugzilla.redhat.com/show_bug.cgi?id=1229394
 
 Signed-off-by: Kevin Wolf kw...@redhat.com
 ---
  block/raw-posix.c | 5 +++--
  1 file changed, 3 insertions(+), 2 deletions(-)
 
 diff --git a/block/raw-posix.c b/block/raw-posix.c
 index 2990e95..44ade8c 100644
 --- a/block/raw-posix.c
 +++ b/block/raw-posix.c
 @@ -1848,8 +1848,9 @@ static int64_t coroutine_fn 
 raw_co_get_block_status(BlockDriverState *bs,
  *pnum = nb_sectors;
  ret = BDRV_BLOCK_DATA;
  } else if (data == start) {
 -/* On a data extent, compute sectors to the end of the extent.  */
 -*pnum = MIN(nb_sectors, (hole - start) / BDRV_SECTOR_SIZE);
 +/* On a data extent, compute sectors to the end of the extent,
 + * possibly including a partial sector at EOF. */
 +*pnum = MIN(nb_sectors, DIV_ROUND_UP(hole - start, 
 BDRV_SECTOR_SIZE));
  ret = BDRV_BLOCK_DATA;
  } else {
  /* On a hole, compute sectors to the beginning of the next extent.  
 */
 

Fixes the testcase from the bug for me:

Tested-by: Cole Robinson crobi...@redhat.com

- Cole