* [PULL 00/11] Block patches
@ 2021-09-07 8:13 Stefan Hajnoczi
2021-09-07 8:13 ` [PULL 01/11] block/nvme: Use safer trace format string Stefan Hajnoczi
` (11 more replies)
0 siblings, 12 replies; 17+ messages in thread
From: Stefan Hajnoczi @ 2021-09-07 8:13 UTC (permalink / raw)
To: qemu-devel, Peter Maydell
Cc: Kevin Wolf, Fam Zheng, qemu-block, Hanna Reitz, Stefan Hajnoczi,
Philippe Mathieu-Daudé
The following changes since commit 88afdc92b644120e0182c8567e1b1d236e471b12:
Merge remote-tracking branch 'remotes/mst/tags/for_upstream' into staging (2021-09-05 15:48:42 +0100)
are available in the Git repository at:
https://gitlab.com/stefanha/qemu.git tags/block-pull-request
for you to fetch changes up to 9bd2788f49c331b02372cc257b11e4c984d39708:
block/nvme: Only report VFIO error on failed retry (2021-09-07 09:08:24 +0100)
----------------------------------------------------------------
Pull request
Userspace NVMe driver patches.
----------------------------------------------------------------
Philippe Mathieu-Daudé (11):
block/nvme: Use safer trace format string
util/vfio-helpers: Let qemu_vfio_verify_mappings() use error_report()
util/vfio-helpers: Replace qemu_mutex_lock() calls with
QEMU_LOCK_GUARD
util/vfio-helpers: Remove unreachable code in qemu_vfio_dma_map()
block/nvme: Have nvme_create_queue_pair() report errors consistently
util/vfio-helpers: Pass Error handle to qemu_vfio_dma_map()
util/vfio-helpers: Extract qemu_vfio_water_mark_reached()
util/vfio-helpers: Use error_setg in qemu_vfio_find_[fixed/temp]_iova
util/vfio-helpers: Simplify qemu_vfio_dma_map() returning directly
util/vfio-helpers: Let qemu_vfio_do_mapping() propagate Error
block/nvme: Only report VFIO error on failed retry
include/qemu/vfio-helpers.h | 2 +-
block/nvme.c | 29 +++++++----
util/vfio-helpers.c | 99 ++++++++++++++++++++-----------------
block/trace-events | 2 +-
4 files changed, 76 insertions(+), 56 deletions(-)
--
2.31.1
^ permalink raw reply [flat|nested] 17+ messages in thread
* [PULL 01/11] block/nvme: Use safer trace format string
2021-09-07 8:13 [PULL 00/11] Block patches Stefan Hajnoczi
@ 2021-09-07 8:13 ` Stefan Hajnoczi
2021-09-07 8:13 ` [PULL 02/11] util/vfio-helpers: Let qemu_vfio_verify_mappings() use error_report() Stefan Hajnoczi
` (10 subsequent siblings)
11 siblings, 0 replies; 17+ messages in thread
From: Stefan Hajnoczi @ 2021-09-07 8:13 UTC (permalink / raw)
To: qemu-devel, Peter Maydell
Cc: Kevin Wolf, Fam Zheng, qemu-block, Klaus Jensen, Hanna Reitz,
Stefan Hajnoczi, Philippe Mathieu-Daudé
From: Philippe Mathieu-Daudé <philmd@redhat.com>
Fix when building with -Wshorten-64-to-32:
warning: implicit conversion loses integer precision: 'unsigned long' to 'int' [-Wshorten-64-to-32]
Reviewed-by: Klaus Jensen <k.jensen@samsung.com>
Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Message-id: 20210902070025.197072-2-philmd@redhat.com
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
---
block/trace-events | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/block/trace-events b/block/trace-events
index b3d2b1e62c..f4f1267c8c 100644
--- a/block/trace-events
+++ b/block/trace-events
@@ -156,7 +156,7 @@ nvme_dsm(void *s, uint64_t offset, uint64_t bytes) "s %p offset 0x%"PRIx64" byte
nvme_dsm_done(void *s, uint64_t offset, uint64_t bytes, int ret) "s %p offset 0x%"PRIx64" bytes %"PRId64" ret %d"
nvme_dma_map_flush(void *s) "s %p"
nvme_free_req_queue_wait(void *s, unsigned q_index) "s %p q #%u"
-nvme_create_queue_pair(unsigned q_index, void *q, unsigned size, void *aio_context, int fd) "index %u q %p size %u aioctx %p fd %d"
+nvme_create_queue_pair(unsigned q_index, void *q, size_t size, void *aio_context, int fd) "index %u q %p size %zu aioctx %p fd %d"
nvme_free_queue_pair(unsigned q_index, void *q) "index %u q %p"
nvme_cmd_map_qiov(void *s, void *cmd, void *req, void *qiov, int entries) "s %p cmd %p req %p qiov %p entries %d"
nvme_cmd_map_qiov_pages(void *s, int i, uint64_t page) "s %p page[%d] 0x%"PRIx64
--
2.31.1
^ permalink raw reply related [flat|nested] 17+ messages in thread
* [PULL 02/11] util/vfio-helpers: Let qemu_vfio_verify_mappings() use error_report()
2021-09-07 8:13 [PULL 00/11] Block patches Stefan Hajnoczi
2021-09-07 8:13 ` [PULL 01/11] block/nvme: Use safer trace format string Stefan Hajnoczi
@ 2021-09-07 8:13 ` Stefan Hajnoczi
2021-09-07 8:13 ` [PULL 03/11] util/vfio-helpers: Replace qemu_mutex_lock() calls with QEMU_LOCK_GUARD Stefan Hajnoczi
` (9 subsequent siblings)
11 siblings, 0 replies; 17+ messages in thread
From: Stefan Hajnoczi @ 2021-09-07 8:13 UTC (permalink / raw)
To: qemu-devel, Peter Maydell
Cc: Kevin Wolf, Fam Zheng, qemu-block, Klaus Jensen, Hanna Reitz,
Stefan Hajnoczi, Philippe Mathieu-Daudé
From: Philippe Mathieu-Daudé <philmd@redhat.com>
Instead of displaying the error on stderr, use error_report()
which also report to the monitor.
Reviewed-by: Fam Zheng <fam@euphon.net>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Reviewed-by: Klaus Jensen <k.jensen@samsung.com>
Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Message-id: 20210902070025.197072-3-philmd@redhat.com
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
---
util/vfio-helpers.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/util/vfio-helpers.c b/util/vfio-helpers.c
index 911115b86e..1d14913629 100644
--- a/util/vfio-helpers.c
+++ b/util/vfio-helpers.c
@@ -660,13 +660,13 @@ static bool qemu_vfio_verify_mappings(QEMUVFIOState *s)
if (QEMU_VFIO_DEBUG) {
for (i = 0; i < s->nr_mappings - 1; ++i) {
if (!(s->mappings[i].host < s->mappings[i + 1].host)) {
- fprintf(stderr, "item %d not sorted!\n", i);
+ error_report("item %d not sorted!", i);
qemu_vfio_dump_mappings(s);
return false;
}
if (!(s->mappings[i].host + s->mappings[i].size <=
s->mappings[i + 1].host)) {
- fprintf(stderr, "item %d overlap with next!\n", i);
+ error_report("item %d overlap with next!", i);
qemu_vfio_dump_mappings(s);
return false;
}
--
2.31.1
^ permalink raw reply related [flat|nested] 17+ messages in thread
* [PULL 03/11] util/vfio-helpers: Replace qemu_mutex_lock() calls with QEMU_LOCK_GUARD
2021-09-07 8:13 [PULL 00/11] Block patches Stefan Hajnoczi
2021-09-07 8:13 ` [PULL 01/11] block/nvme: Use safer trace format string Stefan Hajnoczi
2021-09-07 8:13 ` [PULL 02/11] util/vfio-helpers: Let qemu_vfio_verify_mappings() use error_report() Stefan Hajnoczi
@ 2021-09-07 8:13 ` Stefan Hajnoczi
2021-09-07 8:13 ` [PULL 04/11] util/vfio-helpers: Remove unreachable code in qemu_vfio_dma_map() Stefan Hajnoczi
` (8 subsequent siblings)
11 siblings, 0 replies; 17+ messages in thread
From: Stefan Hajnoczi @ 2021-09-07 8:13 UTC (permalink / raw)
To: qemu-devel, Peter Maydell
Cc: Kevin Wolf, Fam Zheng, qemu-block, Klaus Jensen, Hanna Reitz,
Stefan Hajnoczi, Philippe Mathieu-Daudé
From: Philippe Mathieu-Daudé <philmd@redhat.com>
Simplify qemu_vfio_dma_[un]map() handlers by replacing a pair of
qemu_mutex_lock/qemu_mutex_unlock calls by the WITH_QEMU_LOCK_GUARD
macro.
Reviewed-by: Klaus Jensen <k.jensen@samsung.com>
Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Message-id: 20210902070025.197072-4-philmd@redhat.com
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
---
util/vfio-helpers.c | 9 +++------
1 file changed, 3 insertions(+), 6 deletions(-)
diff --git a/util/vfio-helpers.c b/util/vfio-helpers.c
index 1d14913629..d956866b4e 100644
--- a/util/vfio-helpers.c
+++ b/util/vfio-helpers.c
@@ -735,7 +735,7 @@ int qemu_vfio_dma_map(QEMUVFIOState *s, void *host, size_t size,
assert(QEMU_PTR_IS_ALIGNED(host, qemu_real_host_page_size));
assert(QEMU_IS_ALIGNED(size, qemu_real_host_page_size));
trace_qemu_vfio_dma_map(s, host, size, temporary, iova);
- qemu_mutex_lock(&s->lock);
+ QEMU_LOCK_GUARD(&s->lock);
mapping = qemu_vfio_find_mapping(s, host, &index);
if (mapping) {
iova0 = mapping->iova + ((uint8_t *)host - (uint8_t *)mapping->host);
@@ -778,7 +778,6 @@ int qemu_vfio_dma_map(QEMUVFIOState *s, void *host, size_t size,
*iova = iova0;
}
out:
- qemu_mutex_unlock(&s->lock);
return ret;
}
@@ -813,14 +812,12 @@ void qemu_vfio_dma_unmap(QEMUVFIOState *s, void *host)
}
trace_qemu_vfio_dma_unmap(s, host);
- qemu_mutex_lock(&s->lock);
+ QEMU_LOCK_GUARD(&s->lock);
m = qemu_vfio_find_mapping(s, host, &index);
if (!m) {
- goto out;
+ return;
}
qemu_vfio_undo_mapping(s, m, NULL);
-out:
- qemu_mutex_unlock(&s->lock);
}
static void qemu_vfio_reset(QEMUVFIOState *s)
--
2.31.1
^ permalink raw reply related [flat|nested] 17+ messages in thread
* [PULL 04/11] util/vfio-helpers: Remove unreachable code in qemu_vfio_dma_map()
2021-09-07 8:13 [PULL 00/11] Block patches Stefan Hajnoczi
` (2 preceding siblings ...)
2021-09-07 8:13 ` [PULL 03/11] util/vfio-helpers: Replace qemu_mutex_lock() calls with QEMU_LOCK_GUARD Stefan Hajnoczi
@ 2021-09-07 8:13 ` Stefan Hajnoczi
2021-09-07 8:13 ` [PULL 05/11] block/nvme: Have nvme_create_queue_pair() report errors consistently Stefan Hajnoczi
` (7 subsequent siblings)
11 siblings, 0 replies; 17+ messages in thread
From: Stefan Hajnoczi @ 2021-09-07 8:13 UTC (permalink / raw)
To: qemu-devel, Peter Maydell
Cc: Kevin Wolf, Fam Zheng, qemu-block, Klaus Jensen, Hanna Reitz,
Stefan Hajnoczi, Philippe Mathieu-Daudé
From: Philippe Mathieu-Daudé <philmd@redhat.com>
qemu_vfio_add_mapping() returns a pointer to an indexed entry
in pre-allocated QEMUVFIOState::mappings[], thus can not be NULL.
Remove the pointless check.
Reviewed-by: Klaus Jensen <k.jensen@samsung.com>
Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Message-id: 20210902070025.197072-5-philmd@redhat.com
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
---
util/vfio-helpers.c | 4 ----
1 file changed, 4 deletions(-)
diff --git a/util/vfio-helpers.c b/util/vfio-helpers.c
index d956866b4e..e7909222cf 100644
--- a/util/vfio-helpers.c
+++ b/util/vfio-helpers.c
@@ -751,10 +751,6 @@ int qemu_vfio_dma_map(QEMUVFIOState *s, void *host, size_t size,
}
mapping = qemu_vfio_add_mapping(s, host, size, index + 1, iova0);
- if (!mapping) {
- ret = -ENOMEM;
- goto out;
- }
assert(qemu_vfio_verify_mappings(s));
ret = qemu_vfio_do_mapping(s, host, size, iova0);
if (ret) {
--
2.31.1
^ permalink raw reply related [flat|nested] 17+ messages in thread
* [PULL 05/11] block/nvme: Have nvme_create_queue_pair() report errors consistently
2021-09-07 8:13 [PULL 00/11] Block patches Stefan Hajnoczi
` (3 preceding siblings ...)
2021-09-07 8:13 ` [PULL 04/11] util/vfio-helpers: Remove unreachable code in qemu_vfio_dma_map() Stefan Hajnoczi
@ 2021-09-07 8:13 ` Stefan Hajnoczi
2021-09-07 8:13 ` [PULL 06/11] util/vfio-helpers: Pass Error handle to qemu_vfio_dma_map() Stefan Hajnoczi
` (6 subsequent siblings)
11 siblings, 0 replies; 17+ messages in thread
From: Stefan Hajnoczi @ 2021-09-07 8:13 UTC (permalink / raw)
To: qemu-devel, Peter Maydell
Cc: Kevin Wolf, Fam Zheng, qemu-block, Klaus Jensen, Auger Eric,
Hanna Reitz, Stefan Hajnoczi, Philippe Mathieu-Daudé
From: Philippe Mathieu-Daudé <philmd@redhat.com>
nvme_create_queue_pair() does not return a boolean value (indicating
eventual error) but a pointer, and is inconsistent in how it fills the
error handler. To fulfill callers expectations, always set an error
message on failure.
Reported-by: Auger Eric <eric.auger@redhat.com>
Reviewed-by: Klaus Jensen <k.jensen@samsung.com>
Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Message-id: 20210902070025.197072-6-philmd@redhat.com
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
---
block/nvme.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/block/nvme.c b/block/nvme.c
index e8dbbc2317..0786c501e4 100644
--- a/block/nvme.c
+++ b/block/nvme.c
@@ -220,6 +220,7 @@ static NVMeQueuePair *nvme_create_queue_pair(BDRVNVMeState *s,
q = g_try_new0(NVMeQueuePair, 1);
if (!q) {
+ error_setg(errp, "Cannot allocate queue pair");
return NULL;
}
trace_nvme_create_queue_pair(idx, q, size, aio_context,
@@ -228,6 +229,7 @@ static NVMeQueuePair *nvme_create_queue_pair(BDRVNVMeState *s,
qemu_real_host_page_size);
q->prp_list_pages = qemu_try_memalign(qemu_real_host_page_size, bytes);
if (!q->prp_list_pages) {
+ error_setg(errp, "Cannot allocate PRP page list");
goto fail;
}
memset(q->prp_list_pages, 0, bytes);
@@ -239,6 +241,7 @@ static NVMeQueuePair *nvme_create_queue_pair(BDRVNVMeState *s,
r = qemu_vfio_dma_map(s->vfio, q->prp_list_pages, bytes,
false, &prp_list_iova);
if (r) {
+ error_setg_errno(errp, -r, "Cannot map buffer for DMA");
goto fail;
}
q->free_req_head = -1;
--
2.31.1
^ permalink raw reply related [flat|nested] 17+ messages in thread
* [PULL 06/11] util/vfio-helpers: Pass Error handle to qemu_vfio_dma_map()
2021-09-07 8:13 [PULL 00/11] Block patches Stefan Hajnoczi
` (4 preceding siblings ...)
2021-09-07 8:13 ` [PULL 05/11] block/nvme: Have nvme_create_queue_pair() report errors consistently Stefan Hajnoczi
@ 2021-09-07 8:13 ` Stefan Hajnoczi
2021-09-07 8:13 ` [PULL 07/11] util/vfio-helpers: Extract qemu_vfio_water_mark_reached() Stefan Hajnoczi
` (5 subsequent siblings)
11 siblings, 0 replies; 17+ messages in thread
From: Stefan Hajnoczi @ 2021-09-07 8:13 UTC (permalink / raw)
To: qemu-devel, Peter Maydell
Cc: Kevin Wolf, Fam Zheng, qemu-block, Klaus Jensen, Hanna Reitz,
Stefan Hajnoczi, Philippe Mathieu-Daudé
From: Philippe Mathieu-Daudé <philmd@redhat.com>
Currently qemu_vfio_dma_map() displays errors on stderr.
When using management interface, this information is simply
lost. Pass qemu_vfio_dma_map() an Error** handle so it can
propagate the error to callers.
Reviewed-by: Fam Zheng <fam@euphon.net>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Reviewed-by: Klaus Jensen <k.jensen@samsung.com>
Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Message-id: 20210902070025.197072-7-philmd@redhat.com
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
---
include/qemu/vfio-helpers.h | 2 +-
block/nvme.c | 22 +++++++++++-----------
util/vfio-helpers.c | 10 ++++++----
3 files changed, 18 insertions(+), 16 deletions(-)
diff --git a/include/qemu/vfio-helpers.h b/include/qemu/vfio-helpers.h
index 4491c8e1a6..bde9495b25 100644
--- a/include/qemu/vfio-helpers.h
+++ b/include/qemu/vfio-helpers.h
@@ -18,7 +18,7 @@ typedef struct QEMUVFIOState QEMUVFIOState;
QEMUVFIOState *qemu_vfio_open_pci(const char *device, Error **errp);
void qemu_vfio_close(QEMUVFIOState *s);
int qemu_vfio_dma_map(QEMUVFIOState *s, void *host, size_t size,
- bool temporary, uint64_t *iova_list);
+ bool temporary, uint64_t *iova_list, Error **errp);
int qemu_vfio_dma_reset_temporary(QEMUVFIOState *s);
void qemu_vfio_dma_unmap(QEMUVFIOState *s, void *host);
void *qemu_vfio_pci_map_bar(QEMUVFIOState *s, int index,
diff --git a/block/nvme.c b/block/nvme.c
index 0786c501e4..80546b0bab 100644
--- a/block/nvme.c
+++ b/block/nvme.c
@@ -176,12 +176,11 @@ static bool nvme_init_queue(BDRVNVMeState *s, NVMeQueue *q,
return false;
}
memset(q->queue, 0, bytes);
- r = qemu_vfio_dma_map(s->vfio, q->queue, bytes, false, &q->iova);
+ r = qemu_vfio_dma_map(s->vfio, q->queue, bytes, false, &q->iova, errp);
if (r) {
- error_setg(errp, "Cannot map queue");
- return false;
+ error_prepend(errp, "Cannot map queue: ");
}
- return true;
+ return r == 0;
}
static void nvme_free_queue_pair(NVMeQueuePair *q)
@@ -239,9 +238,9 @@ static NVMeQueuePair *nvme_create_queue_pair(BDRVNVMeState *s,
qemu_co_queue_init(&q->free_req_queue);
q->completion_bh = aio_bh_new(aio_context, nvme_process_completion_bh, q);
r = qemu_vfio_dma_map(s->vfio, q->prp_list_pages, bytes,
- false, &prp_list_iova);
+ false, &prp_list_iova, errp);
if (r) {
- error_setg_errno(errp, -r, "Cannot map buffer for DMA");
+ error_prepend(errp, "Cannot map buffer for DMA: ");
goto fail;
}
q->free_req_head = -1;
@@ -534,9 +533,9 @@ static bool nvme_identify(BlockDriverState *bs, int namespace, Error **errp)
error_setg(errp, "Cannot allocate buffer for identify response");
goto out;
}
- r = qemu_vfio_dma_map(s->vfio, id, id_size, true, &iova);
+ r = qemu_vfio_dma_map(s->vfio, id, id_size, true, &iova, errp);
if (r) {
- error_setg(errp, "Cannot map buffer for DMA");
+ error_prepend(errp, "Cannot map buffer for DMA: ");
goto out;
}
@@ -1032,7 +1031,7 @@ static coroutine_fn int nvme_cmd_map_qiov(BlockDriverState *bs, NvmeCmd *cmd,
try_map:
r = qemu_vfio_dma_map(s->vfio,
qiov->iov[i].iov_base,
- len, true, &iova);
+ len, true, &iova, NULL);
if (r == -ENOSPC) {
/*
* In addition to the -ENOMEM error, the VFIO_IOMMU_MAP_DMA
@@ -1524,14 +1523,15 @@ static void nvme_aio_unplug(BlockDriverState *bs)
static void nvme_register_buf(BlockDriverState *bs, void *host, size_t size)
{
int ret;
+ Error *local_err = NULL;
BDRVNVMeState *s = bs->opaque;
- ret = qemu_vfio_dma_map(s->vfio, host, size, false, NULL);
+ ret = qemu_vfio_dma_map(s->vfio, host, size, false, NULL, &local_err);
if (ret) {
/* FIXME: we may run out of IOVA addresses after repeated
* bdrv_register_buf/bdrv_unregister_buf, because nvme_vfio_dma_unmap
* doesn't reclaim addresses for fixed mappings. */
- error_report("nvme_register_buf failed: %s", strerror(-ret));
+ error_reportf_err(local_err, "nvme_register_buf failed: ");
}
}
diff --git a/util/vfio-helpers.c b/util/vfio-helpers.c
index e7909222cf..77cdec845d 100644
--- a/util/vfio-helpers.c
+++ b/util/vfio-helpers.c
@@ -463,13 +463,15 @@ static void qemu_vfio_ram_block_added(RAMBlockNotifier *n, void *host,
size_t size, size_t max_size)
{
QEMUVFIOState *s = container_of(n, QEMUVFIOState, ram_notifier);
+ Error *local_err = NULL;
int ret;
trace_qemu_vfio_ram_block_added(s, host, max_size);
- ret = qemu_vfio_dma_map(s, host, max_size, false, NULL);
+ ret = qemu_vfio_dma_map(s, host, max_size, false, NULL, &local_err);
if (ret) {
- error_report("qemu_vfio_dma_map(%p, %zu) failed: %s", host, max_size,
- strerror(-ret));
+ error_reportf_err(local_err,
+ "qemu_vfio_dma_map(%p, %zu) failed: ",
+ host, max_size);
}
}
@@ -725,7 +727,7 @@ qemu_vfio_find_temp_iova(QEMUVFIOState *s, size_t size, uint64_t *iova)
* mapping status within this area is not allowed).
*/
int qemu_vfio_dma_map(QEMUVFIOState *s, void *host, size_t size,
- bool temporary, uint64_t *iova)
+ bool temporary, uint64_t *iova, Error **errp)
{
int ret = 0;
int index;
--
2.31.1
^ permalink raw reply related [flat|nested] 17+ messages in thread
* [PULL 07/11] util/vfio-helpers: Extract qemu_vfio_water_mark_reached()
2021-09-07 8:13 [PULL 00/11] Block patches Stefan Hajnoczi
` (5 preceding siblings ...)
2021-09-07 8:13 ` [PULL 06/11] util/vfio-helpers: Pass Error handle to qemu_vfio_dma_map() Stefan Hajnoczi
@ 2021-09-07 8:13 ` Stefan Hajnoczi
2021-09-07 8:14 ` [PULL 08/11] util/vfio-helpers: Use error_setg in qemu_vfio_find_[fixed/temp]_iova Stefan Hajnoczi
` (4 subsequent siblings)
11 siblings, 0 replies; 17+ messages in thread
From: Stefan Hajnoczi @ 2021-09-07 8:13 UTC (permalink / raw)
To: qemu-devel, Peter Maydell
Cc: Kevin Wolf, Fam Zheng, qemu-block, Klaus Jensen, Hanna Reitz,
Stefan Hajnoczi, Philippe Mathieu-Daudé
From: Philippe Mathieu-Daudé <philmd@redhat.com>
Extract qemu_vfio_water_mark_reached() for readability,
and have it provide an error hint it its Error* handle.
Suggested-by: Klaus Jensen <k.jensen@samsung.com>
Reviewed-by: Klaus Jensen <k.jensen@samsung.com>
Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Message-id: 20210902070025.197072-8-philmd@redhat.com
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
---
util/vfio-helpers.c | 17 ++++++++++++++++-
1 file changed, 16 insertions(+), 1 deletion(-)
diff --git a/util/vfio-helpers.c b/util/vfio-helpers.c
index 77cdec845d..306b5a83e4 100644
--- a/util/vfio-helpers.c
+++ b/util/vfio-helpers.c
@@ -721,6 +721,21 @@ qemu_vfio_find_temp_iova(QEMUVFIOState *s, size_t size, uint64_t *iova)
return -ENOMEM;
}
+/**
+ * qemu_vfio_water_mark_reached:
+ *
+ * Returns %true if high watermark has been reached, %false otherwise.
+ */
+static bool qemu_vfio_water_mark_reached(QEMUVFIOState *s, size_t size,
+ Error **errp)
+{
+ if (s->high_water_mark - s->low_water_mark + 1 < size) {
+ error_setg(errp, "iova exhausted (water mark reached)");
+ return true;
+ }
+ return false;
+}
+
/* Map [host, host + size) area into a contiguous IOVA address space, and store
* the result in @iova if not NULL. The caller need to make sure the area is
* aligned to page size, and mustn't overlap with existing mapping areas (split
@@ -742,7 +757,7 @@ int qemu_vfio_dma_map(QEMUVFIOState *s, void *host, size_t size,
if (mapping) {
iova0 = mapping->iova + ((uint8_t *)host - (uint8_t *)mapping->host);
} else {
- if (s->high_water_mark - s->low_water_mark + 1 < size) {
+ if (qemu_vfio_water_mark_reached(s, size, errp)) {
ret = -ENOMEM;
goto out;
}
--
2.31.1
^ permalink raw reply related [flat|nested] 17+ messages in thread
* [PULL 08/11] util/vfio-helpers: Use error_setg in qemu_vfio_find_[fixed/temp]_iova
2021-09-07 8:13 [PULL 00/11] Block patches Stefan Hajnoczi
` (6 preceding siblings ...)
2021-09-07 8:13 ` [PULL 07/11] util/vfio-helpers: Extract qemu_vfio_water_mark_reached() Stefan Hajnoczi
@ 2021-09-07 8:14 ` Stefan Hajnoczi
2021-09-07 8:14 ` [PULL 09/11] util/vfio-helpers: Simplify qemu_vfio_dma_map() returning directly Stefan Hajnoczi
` (3 subsequent siblings)
11 siblings, 0 replies; 17+ messages in thread
From: Stefan Hajnoczi @ 2021-09-07 8:14 UTC (permalink / raw)
To: qemu-devel, Peter Maydell
Cc: Kevin Wolf, Fam Zheng, qemu-block, Klaus Jensen, Hanna Reitz,
Stefan Hajnoczi, Philippe Mathieu-Daudé
From: Philippe Mathieu-Daudé <philmd@redhat.com>
Both qemu_vfio_find_fixed_iova() and qemu_vfio_find_temp_iova()
return an errno which is unused (or overwritten). Have them propagate
eventual errors to callers, returning a boolean (which is what the
Error API recommends, see commit e3fe3988d78 "error: Document Error
API usage rules" for rationale).
Suggested-by: Klaus Jensen <k.jensen@samsung.com>
Reviewed-by: Klaus Jensen <k.jensen@samsung.com>
Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Message-id: 20210902070025.197072-9-philmd@redhat.com
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
---
util/vfio-helpers.c | 24 ++++++++++++++----------
1 file changed, 14 insertions(+), 10 deletions(-)
diff --git a/util/vfio-helpers.c b/util/vfio-helpers.c
index 306b5a83e4..b93a3d3578 100644
--- a/util/vfio-helpers.c
+++ b/util/vfio-helpers.c
@@ -677,8 +677,8 @@ static bool qemu_vfio_verify_mappings(QEMUVFIOState *s)
return true;
}
-static int
-qemu_vfio_find_fixed_iova(QEMUVFIOState *s, size_t size, uint64_t *iova)
+static bool qemu_vfio_find_fixed_iova(QEMUVFIOState *s, size_t size,
+ uint64_t *iova, Error **errp)
{
int i;
@@ -693,14 +693,16 @@ qemu_vfio_find_fixed_iova(QEMUVFIOState *s, size_t size, uint64_t *iova)
s->usable_iova_ranges[i].end - s->low_water_mark + 1 == 0) {
*iova = s->low_water_mark;
s->low_water_mark += size;
- return 0;
+ return true;
}
}
- return -ENOMEM;
+ error_setg(errp, "fixed iova range not found");
+
+ return false;
}
-static int
-qemu_vfio_find_temp_iova(QEMUVFIOState *s, size_t size, uint64_t *iova)
+static bool qemu_vfio_find_temp_iova(QEMUVFIOState *s, size_t size,
+ uint64_t *iova, Error **errp)
{
int i;
@@ -715,10 +717,12 @@ qemu_vfio_find_temp_iova(QEMUVFIOState *s, size_t size, uint64_t *iova)
s->high_water_mark - s->usable_iova_ranges[i].start + 1 == 0) {
*iova = s->high_water_mark - size;
s->high_water_mark = *iova;
- return 0;
+ return true;
}
}
- return -ENOMEM;
+ error_setg(errp, "temporary iova range not found");
+
+ return false;
}
/**
@@ -762,7 +766,7 @@ int qemu_vfio_dma_map(QEMUVFIOState *s, void *host, size_t size,
goto out;
}
if (!temporary) {
- if (qemu_vfio_find_fixed_iova(s, size, &iova0)) {
+ if (!qemu_vfio_find_fixed_iova(s, size, &iova0, errp)) {
ret = -ENOMEM;
goto out;
}
@@ -776,7 +780,7 @@ int qemu_vfio_dma_map(QEMUVFIOState *s, void *host, size_t size,
}
qemu_vfio_dump_mappings(s);
} else {
- if (qemu_vfio_find_temp_iova(s, size, &iova0)) {
+ if (!qemu_vfio_find_temp_iova(s, size, &iova0, errp)) {
ret = -ENOMEM;
goto out;
}
--
2.31.1
^ permalink raw reply related [flat|nested] 17+ messages in thread
* [PULL 09/11] util/vfio-helpers: Simplify qemu_vfio_dma_map() returning directly
2021-09-07 8:13 [PULL 00/11] Block patches Stefan Hajnoczi
` (7 preceding siblings ...)
2021-09-07 8:14 ` [PULL 08/11] util/vfio-helpers: Use error_setg in qemu_vfio_find_[fixed/temp]_iova Stefan Hajnoczi
@ 2021-09-07 8:14 ` Stefan Hajnoczi
2021-09-07 8:14 ` [PULL 10/11] util/vfio-helpers: Let qemu_vfio_do_mapping() propagate Error Stefan Hajnoczi
` (2 subsequent siblings)
11 siblings, 0 replies; 17+ messages in thread
From: Stefan Hajnoczi @ 2021-09-07 8:14 UTC (permalink / raw)
To: qemu-devel, Peter Maydell
Cc: Kevin Wolf, Fam Zheng, qemu-block, Klaus Jensen, Hanna Reitz,
Stefan Hajnoczi, Philippe Mathieu-Daudé
From: Philippe Mathieu-Daudé <philmd@redhat.com>
To simplify qemu_vfio_dma_map():
- reduce 'ret' (returned value) scope by returning errno directly,
- remove the goto 'out' label.
Reviewed-by: Klaus Jensen <k.jensen@samsung.com>
Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Message-id: 20210902070025.197072-10-philmd@redhat.com
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
---
util/vfio-helpers.c | 23 ++++++++++-------------
1 file changed, 10 insertions(+), 13 deletions(-)
diff --git a/util/vfio-helpers.c b/util/vfio-helpers.c
index b93a3d3578..66148bd381 100644
--- a/util/vfio-helpers.c
+++ b/util/vfio-helpers.c
@@ -748,7 +748,6 @@ static bool qemu_vfio_water_mark_reached(QEMUVFIOState *s, size_t size,
int qemu_vfio_dma_map(QEMUVFIOState *s, void *host, size_t size,
bool temporary, uint64_t *iova, Error **errp)
{
- int ret = 0;
int index;
IOVAMapping *mapping;
uint64_t iova0;
@@ -761,32 +760,31 @@ int qemu_vfio_dma_map(QEMUVFIOState *s, void *host, size_t size,
if (mapping) {
iova0 = mapping->iova + ((uint8_t *)host - (uint8_t *)mapping->host);
} else {
+ int ret;
+
if (qemu_vfio_water_mark_reached(s, size, errp)) {
- ret = -ENOMEM;
- goto out;
+ return -ENOMEM;
}
if (!temporary) {
if (!qemu_vfio_find_fixed_iova(s, size, &iova0, errp)) {
- ret = -ENOMEM;
- goto out;
+ return -ENOMEM;
}
mapping = qemu_vfio_add_mapping(s, host, size, index + 1, iova0);
assert(qemu_vfio_verify_mappings(s));
ret = qemu_vfio_do_mapping(s, host, size, iova0);
- if (ret) {
+ if (ret < 0) {
qemu_vfio_undo_mapping(s, mapping, NULL);
- goto out;
+ return ret;
}
qemu_vfio_dump_mappings(s);
} else {
if (!qemu_vfio_find_temp_iova(s, size, &iova0, errp)) {
- ret = -ENOMEM;
- goto out;
+ return -ENOMEM;
}
ret = qemu_vfio_do_mapping(s, host, size, iova0);
- if (ret) {
- goto out;
+ if (ret < 0) {
+ return ret;
}
}
}
@@ -794,8 +792,7 @@ int qemu_vfio_dma_map(QEMUVFIOState *s, void *host, size_t size,
if (iova) {
*iova = iova0;
}
-out:
- return ret;
+ return 0;
}
/* Reset the high watermark and free all "temporary" mappings. */
--
2.31.1
^ permalink raw reply related [flat|nested] 17+ messages in thread
* [PULL 10/11] util/vfio-helpers: Let qemu_vfio_do_mapping() propagate Error
2021-09-07 8:13 [PULL 00/11] Block patches Stefan Hajnoczi
` (8 preceding siblings ...)
2021-09-07 8:14 ` [PULL 09/11] util/vfio-helpers: Simplify qemu_vfio_dma_map() returning directly Stefan Hajnoczi
@ 2021-09-07 8:14 ` Stefan Hajnoczi
2021-09-07 8:14 ` [PULL 11/11] block/nvme: Only report VFIO error on failed retry Stefan Hajnoczi
2021-09-07 15:08 ` [PULL 00/11] Block patches Peter Maydell
11 siblings, 0 replies; 17+ messages in thread
From: Stefan Hajnoczi @ 2021-09-07 8:14 UTC (permalink / raw)
To: qemu-devel, Peter Maydell
Cc: Kevin Wolf, Fam Zheng, qemu-block, Klaus Jensen, Hanna Reitz,
Stefan Hajnoczi, Philippe Mathieu-Daudé
From: Philippe Mathieu-Daudé <philmd@redhat.com>
Pass qemu_vfio_do_mapping() an Error* argument so it can propagate
any error to callers. Replace error_report() which only report
to the monitor by the more generic error_setg_errno().
Reviewed-by: Fam Zheng <fam@euphon.net>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Reviewed-by: Klaus Jensen <k.jensen@samsung.com>
Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Message-id: 20210902070025.197072-11-philmd@redhat.com
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
---
util/vfio-helpers.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/util/vfio-helpers.c b/util/vfio-helpers.c
index 66148bd381..00a80431a0 100644
--- a/util/vfio-helpers.c
+++ b/util/vfio-helpers.c
@@ -610,7 +610,7 @@ static IOVAMapping *qemu_vfio_add_mapping(QEMUVFIOState *s,
/* Do the DMA mapping with VFIO. */
static int qemu_vfio_do_mapping(QEMUVFIOState *s, void *host, size_t size,
- uint64_t iova)
+ uint64_t iova, Error **errp)
{
struct vfio_iommu_type1_dma_map dma_map = {
.argsz = sizeof(dma_map),
@@ -622,7 +622,7 @@ static int qemu_vfio_do_mapping(QEMUVFIOState *s, void *host, size_t size,
trace_qemu_vfio_do_mapping(s, host, iova, size);
if (ioctl(s->container, VFIO_IOMMU_MAP_DMA, &dma_map)) {
- error_report("VFIO_MAP_DMA failed: %s", strerror(errno));
+ error_setg_errno(errp, errno, "VFIO_MAP_DMA failed");
return -errno;
}
return 0;
@@ -772,7 +772,7 @@ int qemu_vfio_dma_map(QEMUVFIOState *s, void *host, size_t size,
mapping = qemu_vfio_add_mapping(s, host, size, index + 1, iova0);
assert(qemu_vfio_verify_mappings(s));
- ret = qemu_vfio_do_mapping(s, host, size, iova0);
+ ret = qemu_vfio_do_mapping(s, host, size, iova0, errp);
if (ret < 0) {
qemu_vfio_undo_mapping(s, mapping, NULL);
return ret;
@@ -782,7 +782,7 @@ int qemu_vfio_dma_map(QEMUVFIOState *s, void *host, size_t size,
if (!qemu_vfio_find_temp_iova(s, size, &iova0, errp)) {
return -ENOMEM;
}
- ret = qemu_vfio_do_mapping(s, host, size, iova0);
+ ret = qemu_vfio_do_mapping(s, host, size, iova0, errp);
if (ret < 0) {
return ret;
}
--
2.31.1
^ permalink raw reply related [flat|nested] 17+ messages in thread
* [PULL 11/11] block/nvme: Only report VFIO error on failed retry
2021-09-07 8:13 [PULL 00/11] Block patches Stefan Hajnoczi
` (9 preceding siblings ...)
2021-09-07 8:14 ` [PULL 10/11] util/vfio-helpers: Let qemu_vfio_do_mapping() propagate Error Stefan Hajnoczi
@ 2021-09-07 8:14 ` Stefan Hajnoczi
2021-09-07 15:08 ` [PULL 00/11] Block patches Peter Maydell
11 siblings, 0 replies; 17+ messages in thread
From: Stefan Hajnoczi @ 2021-09-07 8:14 UTC (permalink / raw)
To: qemu-devel, Peter Maydell
Cc: Kevin Wolf, Fam Zheng, qemu-block, Tingting Mao, Klaus Jensen,
Hanna Reitz, Stefan Hajnoczi, Philippe Mathieu-Daudé
From: Philippe Mathieu-Daudé <philmd@redhat.com>
We expect the first qemu_vfio_dma_map() to fail (indicating
DMA mappings exhaustion, see commit 15a730e7a3a). Do not
report the first failure as error, since we are going to
flush the mappings and retry.
This removes spurious error message displayed on the monitor:
(qemu) c
(qemu) qemu-kvm: VFIO_MAP_DMA failed: No space left on device
(qemu) info status
VM status: running
Reported-by: Tingting Mao <timao@redhat.com>
Reviewed-by: Klaus Jensen <k.jensen@samsung.com>
Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Message-id: 20210902070025.197072-12-philmd@redhat.com
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
---
block/nvme.c | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/block/nvme.c b/block/nvme.c
index 80546b0bab..abfe305baf 100644
--- a/block/nvme.c
+++ b/block/nvme.c
@@ -1019,6 +1019,7 @@ static coroutine_fn int nvme_cmd_map_qiov(BlockDriverState *bs, NvmeCmd *cmd,
uint64_t *pagelist = req->prp_list_page;
int i, j, r;
int entries = 0;
+ Error *local_err = NULL, **errp = NULL;
assert(qiov->size);
assert(QEMU_IS_ALIGNED(qiov->size, s->page_size));
@@ -1031,7 +1032,7 @@ static coroutine_fn int nvme_cmd_map_qiov(BlockDriverState *bs, NvmeCmd *cmd,
try_map:
r = qemu_vfio_dma_map(s->vfio,
qiov->iov[i].iov_base,
- len, true, &iova, NULL);
+ len, true, &iova, errp);
if (r == -ENOSPC) {
/*
* In addition to the -ENOMEM error, the VFIO_IOMMU_MAP_DMA
@@ -1066,6 +1067,8 @@ try_map:
goto fail;
}
}
+ errp = &local_err;
+
goto try_map;
}
if (r) {
@@ -1109,6 +1112,9 @@ fail:
* because they are already mapped before calling this function; for
* temporary mappings, a later nvme_cmd_(un)map_qiov will reclaim by
* calling qemu_vfio_dma_reset_temporary when necessary. */
+ if (local_err) {
+ error_reportf_err(local_err, "Cannot map buffer for DMA: ");
+ }
return r;
}
--
2.31.1
^ permalink raw reply related [flat|nested] 17+ messages in thread
* Re: [PULL 00/11] Block patches
2021-09-07 8:13 [PULL 00/11] Block patches Stefan Hajnoczi
` (10 preceding siblings ...)
2021-09-07 8:14 ` [PULL 11/11] block/nvme: Only report VFIO error on failed retry Stefan Hajnoczi
@ 2021-09-07 15:08 ` Peter Maydell
11 siblings, 0 replies; 17+ messages in thread
From: Peter Maydell @ 2021-09-07 15:08 UTC (permalink / raw)
To: Stefan Hajnoczi
Cc: Kevin Wolf, Fam Zheng, Qemu-block, QEMU Developers, Hanna Reitz,
Philippe Mathieu-Daudé
On Tue, 7 Sept 2021 at 09:14, Stefan Hajnoczi <stefanha@redhat.com> wrote:
>
> The following changes since commit 88afdc92b644120e0182c8567e1b1d236e471b12:
>
> Merge remote-tracking branch 'remotes/mst/tags/for_upstream' into staging (2021-09-05 15:48:42 +0100)
>
> are available in the Git repository at:
>
> https://gitlab.com/stefanha/qemu.git tags/block-pull-request
>
> for you to fetch changes up to 9bd2788f49c331b02372cc257b11e4c984d39708:
>
> block/nvme: Only report VFIO error on failed retry (2021-09-07 09:08:24 +0100)
>
> ----------------------------------------------------------------
> Pull request
>
> Userspace NVMe driver patches.
Applied, thanks.
Please update the changelog at https://wiki.qemu.org/ChangeLog/6.2
for any user-visible changes.
-- PMM
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [PULL 00/11] Block patches
2020-06-05 9:47 Stefan Hajnoczi
@ 2020-06-05 12:52 ` Peter Maydell
0 siblings, 0 replies; 17+ messages in thread
From: Peter Maydell @ 2020-06-05 12:52 UTC (permalink / raw)
To: Stefan Hajnoczi
Cc: Fam Zheng, Kevin Wolf, Thomas Huth, Qemu-block, Laurent Vivier,
Julia Suvorova, QEMU Developers, Max Reitz, Alexander Bulekov,
Bandan Das, qemu-arm, Keith Busch, Paolo Bonzini, Aarushi Mehta,
Richard Henderson
On Fri, 5 Jun 2020 at 10:48, Stefan Hajnoczi <stefanha@redhat.com> wrote:
>
> The following changes since commit 66234fee9c2d37bfbc523aa8d0ae5300a14cc10e:
>
> Merge remote-tracking branch 'remotes/alistair/tags/pull-riscv-to-apply-202=
> 00603' into staging (2020-06-04 11:38:48 +0100)
>
> are available in the Git repository at:
>
> https://github.com/stefanha/qemu.git tags/block-pull-request
>
> for you to fetch changes up to 7d2410cea154bf915fb30179ebda3b17ac36e70e:
>
> block: Factor out bdrv_run_co() (2020-06-05 09:54:48 +0100)
>
> ----------------------------------------------------------------
> Pull request
>
> ----------------------------------------------------------------
Applied, thanks.
Please update the changelog at https://wiki.qemu.org/ChangeLog/5.1
for any user-visible changes.
-- PMM
^ permalink raw reply [flat|nested] 17+ messages in thread
* [PULL 00/11] Block patches
@ 2020-06-05 9:47 Stefan Hajnoczi
2020-06-05 12:52 ` Peter Maydell
0 siblings, 1 reply; 17+ messages in thread
From: Stefan Hajnoczi @ 2020-06-05 9:47 UTC (permalink / raw)
To: Peter Maydell, qemu-devel
Cc: Fam Zheng, Kevin Wolf, Thomas Huth, qemu-block, Laurent Vivier,
Julia Suvorova, Max Reitz, Alexander Bulekov, Bandan Das,
qemu-arm, Stefan Hajnoczi, Keith Busch, Paolo Bonzini,
Aarushi Mehta, Richard Henderson
The following changes since commit 66234fee9c2d37bfbc523aa8d0ae5300a14cc10e:
Merge remote-tracking branch 'remotes/alistair/tags/pull-riscv-to-apply-202=
00603' into staging (2020-06-04 11:38:48 +0100)
are available in the Git repository at:
https://github.com/stefanha/qemu.git tags/block-pull-request
for you to fetch changes up to 7d2410cea154bf915fb30179ebda3b17ac36e70e:
block: Factor out bdrv_run_co() (2020-06-05 09:54:48 +0100)
----------------------------------------------------------------
Pull request
----------------------------------------------------------------
Alexander Bulekov (4):
fuzz: add datadir for oss-fuzz compatability
fuzz: fix typo in i440fx-qtest-reboot arguments
fuzz: add mangled object name to linker script
fuzz: run the main-loop in fork-server process
Philippe Mathieu-Daud=C3=A9 (4):
memory: Rename memory_region_do_writeback -> memory_region_writeback
memory: Extract memory_region_msync() from memory_region_writeback()
hw/block: Let the NVMe emulated device be target-agnostic
exec: Rename qemu_ram_writeback() as qemu_ram_msync()
Stefano Garzarella (2):
io_uring: retry io_uring_submit() if it fails with errno=3DEINTR
io_uring: use io_uring_cq_ready() to check for ready cqes
Vladimir Sementsov-Ogievskiy (1):
block: Factor out bdrv_run_co()
hw/block/Makefile.objs | 2 +-
include/exec/memory.h | 15 ++-
include/exec/ram_addr.h | 4 +-
include/sysemu/sysemu.h | 2 +
block/io.c | 193 +++++++++++-----------------
block/io_uring.c | 11 +-
exec.c | 2 +-
hw/block/nvme.c | 6 +-
memory.c | 12 +-
softmmu/vl.c | 2 +-
target/arm/helper.c | 2 +-
tests/qtest/fuzz/fuzz.c | 15 +++
tests/qtest/fuzz/i440fx_fuzz.c | 3 +-
tests/qtest/fuzz/virtio_net_fuzz.c | 2 +
tests/qtest/fuzz/virtio_scsi_fuzz.c | 2 +
tests/qtest/fuzz/fork_fuzz.ld | 5 +
16 files changed, 134 insertions(+), 144 deletions(-)
--=20
2.25.4
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [PULL 00/11] Block patches
2019-11-05 15:43 Stefan Hajnoczi
@ 2019-11-06 16:01 ` Peter Maydell
0 siblings, 0 replies; 17+ messages in thread
From: Peter Maydell @ 2019-11-06 16:01 UTC (permalink / raw)
To: Stefan Hajnoczi; +Cc: QEMU Developers, Qemu-block
On Tue, 5 Nov 2019 at 15:43, Stefan Hajnoczi <stefanha@redhat.com> wrote:
>
> The following changes since commit 36609b4fa36f0ac934874371874416f7533a5408:
>
> Merge remote-tracking branch 'remotes/palmer/tags/palmer-for-master-4.2-sf1' into staging (2019-11-02 17:59:03 +0000)
>
> are available in the Git repository at:
>
> https://github.com/stefanha/qemu.git tags/block-pull-request
>
> for you to fetch changes up to 9fdd7860adec188ed50d2530e9a819e8d953f9bb:
>
> image-fuzzer: Use OSerror.strerror instead of tuple subscript (2019-11-05 16:36:11 +0100)
>
> ----------------------------------------------------------------
> Pull request
>
> Let's get the image fuzzer Python 3 changes merged in QEMU 4.2.
>
> ----------------------------------------------------------------
Applied, thanks.
Please update the changelog at https://wiki.qemu.org/ChangeLog/4.2
for any user-visible changes.
-- PMM
^ permalink raw reply [flat|nested] 17+ messages in thread
* [PULL 00/11] Block patches
@ 2019-11-05 15:43 Stefan Hajnoczi
2019-11-06 16:01 ` Peter Maydell
0 siblings, 1 reply; 17+ messages in thread
From: Stefan Hajnoczi @ 2019-11-05 15:43 UTC (permalink / raw)
To: qemu-devel; +Cc: Peter Maydell, qemu-block, Stefan Hajnoczi
The following changes since commit 36609b4fa36f0ac934874371874416f7533a5408:
Merge remote-tracking branch 'remotes/palmer/tags/palmer-for-master-4.2-sf1' into staging (2019-11-02 17:59:03 +0000)
are available in the Git repository at:
https://github.com/stefanha/qemu.git tags/block-pull-request
for you to fetch changes up to 9fdd7860adec188ed50d2530e9a819e8d953f9bb:
image-fuzzer: Use OSerror.strerror instead of tuple subscript (2019-11-05 16:36:11 +0100)
----------------------------------------------------------------
Pull request
Let's get the image fuzzer Python 3 changes merged in QEMU 4.2.
----------------------------------------------------------------
Eduardo Habkost (11):
image-fuzzer: Open image files in binary mode
image-fuzzer: Write bytes instead of string to image file
image-fuzzer: Explicitly use integer division operator
image-fuzzer: Use io.StringIO
image-fuzzer: Use %r for all fiels at Field.__repr__()
image-fuzzer: Return bytes objects on string fuzzing functions
image-fuzzer: Use bytes constant for field values
image-fuzzer: Encode file name and file format to bytes
image-fuzzer: Run using python3
image-fuzzer: Use errors parameter of subprocess.Popen()
image-fuzzer: Use OSerror.strerror instead of tuple subscript
tests/image-fuzzer/qcow2/__init__.py | 1 -
tests/image-fuzzer/qcow2/fuzz.py | 54 +++++++++++++-------------
tests/image-fuzzer/qcow2/layout.py | 57 ++++++++++++++--------------
tests/image-fuzzer/runner.py | 16 ++++----
4 files changed, 63 insertions(+), 65 deletions(-)
--
2.23.0
^ permalink raw reply [flat|nested] 17+ messages in thread
end of thread, other threads:[~2021-09-07 15:17 UTC | newest]
Thread overview: 17+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-09-07 8:13 [PULL 00/11] Block patches Stefan Hajnoczi
2021-09-07 8:13 ` [PULL 01/11] block/nvme: Use safer trace format string Stefan Hajnoczi
2021-09-07 8:13 ` [PULL 02/11] util/vfio-helpers: Let qemu_vfio_verify_mappings() use error_report() Stefan Hajnoczi
2021-09-07 8:13 ` [PULL 03/11] util/vfio-helpers: Replace qemu_mutex_lock() calls with QEMU_LOCK_GUARD Stefan Hajnoczi
2021-09-07 8:13 ` [PULL 04/11] util/vfio-helpers: Remove unreachable code in qemu_vfio_dma_map() Stefan Hajnoczi
2021-09-07 8:13 ` [PULL 05/11] block/nvme: Have nvme_create_queue_pair() report errors consistently Stefan Hajnoczi
2021-09-07 8:13 ` [PULL 06/11] util/vfio-helpers: Pass Error handle to qemu_vfio_dma_map() Stefan Hajnoczi
2021-09-07 8:13 ` [PULL 07/11] util/vfio-helpers: Extract qemu_vfio_water_mark_reached() Stefan Hajnoczi
2021-09-07 8:14 ` [PULL 08/11] util/vfio-helpers: Use error_setg in qemu_vfio_find_[fixed/temp]_iova Stefan Hajnoczi
2021-09-07 8:14 ` [PULL 09/11] util/vfio-helpers: Simplify qemu_vfio_dma_map() returning directly Stefan Hajnoczi
2021-09-07 8:14 ` [PULL 10/11] util/vfio-helpers: Let qemu_vfio_do_mapping() propagate Error Stefan Hajnoczi
2021-09-07 8:14 ` [PULL 11/11] block/nvme: Only report VFIO error on failed retry Stefan Hajnoczi
2021-09-07 15:08 ` [PULL 00/11] Block patches Peter Maydell
-- strict thread matches above, loose matches on Subject: below --
2020-06-05 9:47 Stefan Hajnoczi
2020-06-05 12:52 ` Peter Maydell
2019-11-05 15:43 Stefan Hajnoczi
2019-11-06 16:01 ` Peter Maydell
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).