Re: [RFC 2/4] virtio-blk: Add VIRTIO_BLK_T_OUT_FUA command support

2025-05-08 Thread Alberto Faria
On Thu, May 8, 2025 at 9:38 PM Stefan Hajnoczi wrote: > On Thu, May 08, 2025 at 01:24:38AM +0100, Alberto Faria wrote: > > Signed-off-by: Alberto Faria > > --- > > block/export/virtio-blk-handler.c | 7 ++-- > > hw/block/virtio-blk.c |

[RFC v2 2/4] virtio-blk: Add VIRTIO_BLK_T_OUT_FUA command support

2025-05-08 Thread Alberto Faria
Signed-off-by: Alberto Faria --- block/export/virtio-blk-handler.c | 7 ++-- hw/block/virtio-blk.c | 41 +++--- hw/core/machine.c | 4 ++- hw/virtio/virtio-qmp.c| 2 ++ include/hw/virtio/virtio-blk.h| 1 + tests/qtest/virtio-blk

[RFC v2 3/4] vhost-user-blk: Add VIRTIO_BLK_T_OUT_FUA command support

2025-05-08 Thread Alberto Faria
Signed-off-by: Alberto Faria --- block/export/vhost-user-blk-server.c| 1 + contrib/vhost-user-blk/vhost-user-blk.c | 16 +-- hw/block/vhost-user-blk.c | 3 ++ hw/core/machine.c | 1 + tests/qtest/vhost-user-blk-test.c | 56

[RFC v2 1/4] include: Add tentative virtio-blk FUA write definitions

2025-05-08 Thread Alberto Faria
Signed-off-by: Alberto Faria --- include/standard-headers/linux/virtio_blk.h | 4 1 file changed, 4 insertions(+) diff --git a/include/standard-headers/linux/virtio_blk.h b/include/standard-headers/linux/virtio_blk.h index d7be3cf5e42..67a373e7967 100644 --- a/include/standard-headers

[RFC v2 4/4] vduse-blk: Add VIRTIO_BLK_T_OUT_FUA command support

2025-05-08 Thread Alberto Faria
Signed-off-by: Alberto Faria --- block/export/vduse-blk.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/block/export/vduse-blk.c b/block/export/vduse-blk.c index bd852e538dc..36c3c0a56e6 100644 --- a/block/export/vduse-blk.c +++ b/block/export/vduse-blk.c @@ -329,7 +329,8

[RFC v2 0/4] virtio-blk: Add support for FUA write requests

2025-05-08 Thread Alberto Faria
://lore.kernel.org/virtio-comment/20250507152602.3993258-1-afa...@redhat.com/ [2] https://lore.kernel.org/linux-block/20250508001951.421467-1-afa...@redhat.com/ v2: - Include missing hw/block/virtio-blk.c changes actually implementing VIRTIO_BLK_T_OUT_FUA support. Alberto Faria (4): include: Add tentative

[RFC 0/4] virtio-blk: Add support for FUA write requests

2025-05-07 Thread Alberto Faria
://lore.kernel.org/virtio-comment/20250507152602.3993258-1-afa...@redhat.com/ [2] https://lore.kernel.org/linux-block/20250508001951.421467-1-afa...@redhat.com/ Alberto Faria (4): include: Add tentative virtio-blk FUA write definitions virtio-blk: Add VIRTIO_BLK_T_OUT_FUA command support vhost-user-blk

[RFC 4/4] vduse-blk: Add VIRTIO_BLK_T_OUT_FUA command support

2025-05-07 Thread Alberto Faria
Signed-off-by: Alberto Faria --- block/export/vduse-blk.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/block/export/vduse-blk.c b/block/export/vduse-blk.c index bd852e538dc..36c3c0a56e6 100644 --- a/block/export/vduse-blk.c +++ b/block/export/vduse-blk.c @@ -329,7 +329,8

[RFC 2/4] virtio-blk: Add VIRTIO_BLK_T_OUT_FUA command support

2025-05-07 Thread Alberto Faria
Signed-off-by: Alberto Faria --- block/export/virtio-blk-handler.c | 7 ++-- hw/block/virtio-blk.c | 2 ++ hw/core/machine.c | 4 ++- hw/virtio/virtio-qmp.c| 2 ++ tests/qtest/virtio-blk-test.c | 56 +++ 5 files changed

[RFC 1/4] include: Add tentative virtio-blk FUA write definitions

2025-05-07 Thread Alberto Faria
Signed-off-by: Alberto Faria --- include/standard-headers/linux/virtio_blk.h | 4 1 file changed, 4 insertions(+) diff --git a/include/standard-headers/linux/virtio_blk.h b/include/standard-headers/linux/virtio_blk.h index d7be3cf5e42..67a373e7967 100644 --- a/include/standard-headers

[RFC 3/4] vhost-user-blk: Add VIRTIO_BLK_T_OUT_FUA command support

2025-05-07 Thread Alberto Faria
Signed-off-by: Alberto Faria --- block/export/vhost-user-blk-server.c| 1 + contrib/vhost-user-blk/vhost-user-blk.c | 16 +-- hw/block/vhost-user-blk.c | 3 ++ hw/core/machine.c | 1 + tests/qtest/vhost-user-blk-test.c | 56

Re: [PATCH v2 2/2] scsi-disk: Advertise FUA support by default

2025-05-02 Thread Alberto Faria
On Fri, Apr 25, 2025 at 4:05 PM Kevin Wolf wrote: > > Am 11.04.2025 um 13:30 hat Alberto Faria geschrieben: > > Allow the guest to submit FUA requests directly, instead of forcing it > > to emulate them using a regular flush. > > > > Signed-off-by: Alberto Faria

[PATCH v3 2/2] scsi-disk: Advertise FUA support by default

2025-05-02 Thread Alberto Faria
Allow the guest to submit FUA requests directly, instead of forcing it to emulate them using a regular flush. Signed-off-by: Alberto Faria --- hw/core/machine.c | 4 +++- hw/scsi/scsi-disk.c | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/hw/core/machine.c b/hw/core

[PATCH v3 1/2] scsi-disk: Add native FUA write support

2025-05-02 Thread Alberto Faria
Simply propagate the FUA flag on write requests to the driver. The block layer will emulate it if necessary. Signed-off-by: Alberto Faria --- hw/scsi/scsi-disk.c | 53 + 1 file changed, 15 insertions(+), 38 deletions(-) diff --git a/hw/scsi/scsi

[PATCH v3 0/2] scsi-disk: Add FUA write support

2025-05-02 Thread Alberto Faria
hw_compat_9_2. v2: - Drop FUA write emulation logic since the block layer already does that. - Add machine type compat for "dpofua". Alberto Faria (2): scsi-disk: Add native FUA write support scsi-disk: Advertise FUA support by default hw/core/machine.c | 4 +++- hw/scsi/scsi-d

[PATCH v2 2/2] scsi-disk: Advertise FUA support by default

2025-04-11 Thread Alberto Faria
Allow the guest to submit FUA requests directly, instead of forcing it to emulate them using a regular flush. Signed-off-by: Alberto Faria --- hw/core/machine.c | 1 + hw/scsi/scsi-disk.c | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/hw/core/machine.c b/hw/core

[PATCH v2 1/2] scsi-disk: Add native FUA write support

2025-04-11 Thread Alberto Faria
Simply propagate the FUA flag on write requests to the driver. The block layer will emulate it if necessary. Signed-off-by: Alberto Faria --- hw/scsi/scsi-disk.c | 43 ++- 1 file changed, 10 insertions(+), 33 deletions(-) diff --git a/hw/scsi/scsi-disk.c

[PATCH v2 0/2] scsi-disk: Add FUA write support

2025-04-11 Thread Alberto Faria
that. - Add machine type compat for "dpofua". Alberto Faria (2): scsi-disk: Add native FUA write support scsi-disk: Advertise FUA support by default hw/core/machine.c | 1 + hw/scsi/scsi-disk.c | 45 +++-- 2 files changed, 12 inserti

[PATCH 0/2] scsi-disk: Add FUA write support

2025-03-04 Thread Alberto Faria
. Alberto Faria (2): scsi-disk: Advertise FUA support by default scsi-disk: Add native FUA support hw/scsi/scsi-disk.c | 19 --- 1 file changed, 12 insertions(+), 7 deletions(-) -- 2.48.1

[PATCH 2/2] scsi-disk: Add native FUA support

2025-03-04 Thread Alberto Faria
Avoid emulating FUA when the driver supports it natively. This should provide better performance than a full flush after the write. Signed-off-by: Alberto Faria --- hw/scsi/scsi-disk.c | 17 +++-- 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/hw/scsi/scsi-disk.c b

[PATCH 1/2] scsi-disk: Advertise FUA support by default

2025-03-04 Thread Alberto Faria
FUA emulation code is already is place. Signed-off-by: Alberto Faria --- hw/scsi/scsi-disk.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hw/scsi/scsi-disk.c b/hw/scsi/scsi-disk.c index e7f738b484..8cf50845ab 100644 --- a/hw/scsi/scsi-disk.c +++ b/hw/scsi/scsi-disk.c

Announcing Subprovisioner, a qsd-powered k8s storage provider

2023-08-30 Thread Alberto Faria
sting use case for qsd. Thanks, Alberto Faria [1] https://gitlab.com/subprovisioner/subprovisioner

Re: Call for GSoC and Outreachy project ideas for summer 2023

2023-02-07 Thread Alberto Faria
On Tue, Feb 7, 2023 at 10:23 AM Alberto Faria wrote: > On Mon, Feb 6, 2023 at 9:22 PM Stefan Hajnoczi wrote: > > Great that you're interesting, Alberto! Both sound feasible. I would > > like to co-mentor the zoned storage project or can at least commit to > > being

Re: Call for GSoC and Outreachy project ideas for summer 2023

2023-02-07 Thread Alberto Faria
r, this project would enable QEMU to access zoned vhost-user-blk and vhost-vdpa-blk devices. '''Links:''' * https://zonedstorage.io/ * https://libblkio.gitlab.io/libblkio/ * https://gitlab.com/libblkio/libblkio/-/issues/44 '''Details:

Re: Call for GSoC and Outreachy project ideas for summer 2023

2023-02-06 Thread Alberto Faria
On Fri, Jan 27, 2023 at 3:17 PM Stefan Hajnoczi wrote: > Dear QEMU, KVM, and rust-vmm communities, > QEMU will apply for Google Summer of Code 2023 > (https://summerofcode.withgoogle.com/) and has been accepted into > Outreachy May 2023 (https://www.outreachy.org/). You can now > submit internship

Re: [PATCH v2] softmmu/physmem: Fix address of FlatView access in address_space_(read|write)_cached_slow()

2022-12-02 Thread Alberto Faria
On Mon, Sep 5, 2022 at 8:45 AM Paolo Bonzini wrote: > Thanks, I will queue it. > > Paolo > > Il lun 5 set 2022, 02:00 Alberto Faria ha scritto: >> >> flatview_(read|write)_continue() must be called with an address in the >> FlatView's addres

Re: [PATCH v2 2/9] block-copy: add missing coroutine_fn annotations

2022-11-09 Thread Alberto Faria
On Wed, Nov 9, 2022 at 12:24 PM Emanuele Giuseppe Esposito wrote: > CCing also Alberto and Paolo > > So basically I think what we need is something that scans the whole > block layer code and puts the right coroutine_fn annotations (or > assertions, if you want) in the right places. > > The rule s

[PATCH for-7.2] block/blkio: Set BlockDriver::has_variable_length to false

2022-11-08 Thread Alberto Faria
Kevin Wolf Signed-off-by: Alberto Faria --- block/blkio.c | 1 - 1 file changed, 1 deletion(-) diff --git a/block/blkio.c b/block/blkio.c index 620fab28a7..5eae3adfaf 100644 --- a/block/blkio.c +++ b/block/blkio.c @@ -993,7 +993,6 @@ static void blkio_refresh_limits(BlockDriverState *bs, Er

[PATCH] qapi/block-core: Fix BlockdevOptionsNvmeIoUring @path description

2022-11-08 Thread Alberto Faria
The nvme-io_uring BlockDriver's path option must point at the character device of an NVMe namespace, not at an image file. Fixes: fd66dbd424f5 ("blkio: add libblkio block driver") Suggested-by: Stefano Garzarella Signed-off-by: Alberto Faria --- qapi/block-core.json | 2 +- 1

[PATCH] block/blkio: Tolerate device size changes

2022-10-29 Thread Alberto Faria
preallocation is needed and the device already has a size compatible with what was requested. Signed-off-by: Alberto Faria --- This is based on Stefan's block tree: https://gitlab.com/stefanha/qemu/-/commits/block block/blkio.c | 27 +++ 1 file changed, 27 inser

Re: [PATCH] block/blkio: Add virtio-blk-vfio-pci BlockDriver

2022-10-29 Thread Alberto Faria
On Fri, Oct 28, 2022 at 2:17 PM Alberto Faria wrote: > libblkio 1.1.0 [1] introduces a virtio-blk-vfio-pci driver, which > accesses a virtio-blk PCI device using VFIO. Add a corresponding > BlockDriver. > > [1] https://gitlab.com/libblkio/libblkio/-/tree/v1.1.0 > > Signed-

Re: [PATCH] block/blkio: Make driver nvme-io_uring take a "path" instead of a "filename"

2022-10-29 Thread Alberto Faria
On Sat, Oct 29, 2022 at 7:05 AM Markus Armbruster wrote: > Alberto Faria writes: > > > The nvme-io_uring driver expects a character special file such as > > /dev/ng0n1. Follow the convention of having a "filename" option when a > > regular file is expected, an

[PATCH] block/blkio: Make driver nvme-io_uring take a "path" instead of a "filename"

2022-10-28 Thread Alberto Faria
ption, as it accepts a regular file (even though it can also take a block special file). Signed-off-by: Alberto Faria --- block/blkio.c| 12 qapi/block-core.json | 4 ++-- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/block/blkio.c b/block/blkio.c index 82f26

[PATCH] block/blkio: Add virtio-blk-vfio-pci BlockDriver

2022-10-28 Thread Alberto Faria
libblkio 1.1.0 [1] introduces a virtio-blk-vfio-pci driver, which accesses a virtio-blk PCI device using VFIO. Add a corresponding BlockDriver. [1] https://gitlab.com/libblkio/libblkio/-/tree/v1.1.0 Signed-off-by: Alberto Faria --- This is dependent on a pending libblkio fix [2], so we may

Re: [PATCH v6 12/13] blkio: implement BDRV_REQ_REGISTERED_BUF optimization

2022-10-10 Thread Alberto Faria
On Thu, Oct 6, 2022 at 10:35 PM Stefan Hajnoczi wrote: > Avoid bounce buffers when QEMUIOVector elements are within previously > registered bdrv_register_buf() buffers. > > The idea is that emulated storage controllers will register guest RAM > using bdrv_register_buf() and set the BDRV_REQ_REGIST

Re: [PATCH v6 00/13] blkio: add libblkio BlockDriver

2022-10-10 Thread Alberto Faria
On Thu, Oct 6, 2022 at 10:35 PM Stefan Hajnoczi wrote: > v6: > - Add untested nvme-io_uring driver. Please test in your nested NVMe > environment, Alberto. [Alberto] I did some I/O verification using fio [1] and it seems to be working fine. Alberto [1] https://fio.readthedocs.io/en/latest/fio_

Re: [PATCH v5 11/12] blkio: implement BDRV_REQ_REGISTERED_BUF optimization

2022-10-06 Thread Alberto Faria
On Thu, Oct 6, 2022 at 7:46 PM Stefan Hajnoczi wrote: > > Regardless, I'd say we want to map memory regions even if we don't > > strictly need to (in cases where we can do so at no additional cost), > > since that may improve performance for some drivers. > > The downside is that when s->mem_regio

Re: [PATCH v5 11/12] blkio: implement BDRV_REQ_REGISTERED_BUF optimization

2022-10-06 Thread Alberto Faria
On Thu, Oct 6, 2022 at 7:00 PM Stefan Hajnoczi wrote: > s->needs_mem_regions determines if we'll use libblkio memory regions at > all. When it's false we skip blkio_map_mem_region() and therefore it's > safe to set s->mem_regions_pinned to false. blkio_register_buf() calls blkio_map_mem_region().

Re: [PATCH v5 02/12] blkio: add libblkio block driver

2022-10-06 Thread Alberto Faria
On Tue, Sep 27, 2022 at 8:34 PM Stefan Hajnoczi wrote: > +static int blkio_virtio_blk_vhost_user_open(BlockDriverState *bs, > +QDict *options, int flags, Error **errp) > +{ > +const char *path = qdict_get_try_str(options, "path"); > +BDRVBlkioState *s = bs->opaque; > +int ret;

[PATCH] coroutine: Drop coroutine_fn annotation from qemu_coroutine_self()

2022-10-05 Thread Alberto Faria
qemu_coroutine_self() can be called from outside coroutine context, returning the leader coroutine, and several such invocations currently exist (mostly in qcow2 tracing calls). Signed-off-by: Alberto Faria --- include/qemu/coroutine.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff

[PATCH] coroutine: Make qemu_coroutine_self() return NULL if not in coroutine

2022-10-05 Thread Alberto Faria
qemu_coroutine_self() is used in several places outside of coroutine context (mostly in qcow2 tracing calls). Ensure qemu_coroutine_self() works properly when not called from coroutine context, returning NULL in that case, and remove its coroutine_fn annotation. Signed-off-by: Alberto Faria

[PATCH v2] softmmu/physmem: Fix address of FlatView access in address_space_(read|write)_cached_slow()

2022-09-04 Thread Alberto Faria
ng") Co-Developed-by: Stefan Hajnoczi Signed-off-by: Alberto Faria --- softmmu/physmem.c | 18 ++ 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/softmmu/physmem.c b/softmmu/physmem.c index 50231bab30..bdde4eb927 100644 --- a/softmmu/physmem.c +++ b/softmmu/phys

[PATCH] softmmu/physmem: Fix address of FlatView access in address_space_(read|write)_cached_slow()

2022-08-26 Thread Alberto Faria
Hajnoczi Signed-off-by: Alberto Faria --- softmmu/physmem.c | 12 ++-- 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/softmmu/physmem.c b/softmmu/physmem.c index dc3c3e5f2e..95d4c77cc3 100644 --- a/softmmu/physmem.c +++ b/softmmu/physmem.c @@ -3450,9 +3450,9 @@ address

Re: [RFC v2 02/10] Drop unused static function return values

2022-08-12 Thread Alberto Faria
On Wed, Aug 3, 2022 at 12:15 PM Richard W.M. Jones wrote: > If it helps to think about this, Coverity checks for consistency. > Across the whole code base, is the return value of a function used or > ignored consistently. You will see Coverity errors like: > > Error: CHECKED_RETURN (CWE-252

Re: [RFC v2 02/10] Drop unused static function return values

2022-08-12 Thread Alberto Faria
On Wed, Aug 3, 2022 at 1:30 PM Peter Maydell wrote: > The problem with a patch like this is that it rolls up into a > single patch changes to the API of many functions in multiple > subsystems across the whole codebase. Some of those changes > might be right; some might be wrong. No single person

Re: [RFC v2 00/10] Introduce an extensible static analyzer

2022-08-12 Thread Alberto Faria
On Thu, Aug 4, 2022 at 12:44 PM Marc-André Lureau wrote: > Hi > > Great work so far! This seems easier to hack than my attempt to use > clang-tidy to write some qemu checks > (https://github.com/elmarco/clang-tools-extra) > > The code seems quite generic, I wonder if such a tool in python wasn't >

Re: [RFC v2 02/10] Drop unused static function return values

2022-08-03 Thread Alberto Faria
On Wed, Aug 3, 2022 at 11:46 AM Dr. David Alan Gilbert wrote: > > * Alberto Faria (afa...@redhat.com) wrote: > > Make non-void static functions whose return values are ignored by > > all callers return void instead. > > > > These functions were found by stati

[RFC v2 10/10] Fix some calls from coroutine_fn to no_coroutine_fn

2022-07-29 Thread Alberto Faria
These calls were found by static-analyzer.py. Not all occurrences of this problem were fixed. Signed-off-by: Alberto Faria --- block/commit.c | 2 +- block/io.c | 4 ++-- block/mirror.c | 4 ++-- block/parallels.c | 28 ++-- block

[RFC v2 08/10] Fix some bad coroutine_fn indirect calls and pointer assignments

2022-07-29 Thread Alberto Faria
These problems were found by static-analyzer.py. Not all occurrences of these problems were fixed. Signed-off-by: Alberto Faria --- block/backup.c | 2 +- include/block/block_int-common.h | 12 +--- 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/block

[RFC v2 07/10] static-analyzer: Enforce coroutine_fn restrictions on function pointers

2022-07-29 Thread Alberto Faria
ine_fn function. Signed-off-by: Alberto Faria --- static_analyzer/__init__.py | 27 static_analyzer/coroutine_fn.py | 115 ++-- 2 files changed, 138 insertions(+), 4 deletions(-) diff --git a/static_analyzer/__init__.py b/static_analyzer/__init__.py i

[RFC v2 09/10] block: Add no_coroutine_fn marker

2022-07-29 Thread Alberto Faria
; check to static-analyzer.py that enforces no_coroutine_fn rules. Signed-off-by: Alberto Faria --- include/block/block-common.h | 2 +- include/qemu/coroutine.h | 12 static_analyzer/no_coroutine_fn.py | 111 + 3 files changed, 124 insert

[RFC v2 06/10] Fix some direct calls from non-coroutine_fn to coroutine_fn

2022-07-29 Thread Alberto Faria
problems were found by static-analyzer.py. Not all occurrences of these problems were fixed. Signed-off-by: Alberto Faria --- block.c| 2 +- block/dirty-bitmap.c | 6 -- block/io.c | 18 +++--- block/monitor/block-hmp-cmds.c

[RFC v2 05/10] static-analyzer: Enforce coroutine_fn restrictions for direct calls

2022-07-29 Thread Alberto Faria
static analyzer. Signed-off-by: Alberto Faria --- include/qemu/coroutine.h| 13 +++ static_analyzer/__init__.py | 46 - static_analyzer/coroutine_fn.py | 173 3 files changed, 231 insertions(+), 1 deletion(-) create mode 100644

[RFC v2 04/10] static-analyzer: Avoid reanalyzing unmodified translation units

2022-07-29 Thread Alberto Faria
For each translation unit, run each check only if any of the translation unit's files has been modified since the last time the check ran and passed without reporting problems. Signed-off-by: Alberto Faria --- static-analyzer.py | 240 - 1

[RFC v2 03/10] static-analyzer: Support adding tests to checks

2022-07-29 Thread Alberto Faria
Introduce an add_check_tests() method to add output-comparison tests to checks, and add some tests to the "return-value-never-used" check. Signed-off-by: Alberto Faria --- static-analyzer.py | 133 - static_analyzer/__init__.py

[RFC v2 01/10] Add an extensible static analyzer

2022-07-29 Thread Alberto Faria
hat the return value of static, non-void functions is used by at least one caller. Signed-off-by: Alberto Faria --- static-analyzer.py | 486 + static_analyzer/__init__.py| 242 ++ static_analyzer/return_value_never_used.py

[RFC v2 02/10] Drop unused static function return values

2022-07-29 Thread Alberto Faria
Make non-void static functions whose return values are ignored by all callers return void instead. These functions were found by static-analyzer.py. Not all occurrences of this problem were fixed. Signed-off-by: Alberto Faria --- accel/kvm/kvm-all.c | 12 ++--- accel/tcg

[RFC v2 00/10] Introduce an extensible static analyzer

2022-07-29 Thread Alberto Faria
en modified since they last passed those checks. - Ignore translation units from git submodules. - And more. Alberto Faria (10): Add an extensible static analyzer Drop unused static function return values static-analyzer: Support adding tests to checks static-analyzer: Avoid reanaly

Re: [RFC 0/8] Introduce an extensible static analyzer

2022-07-08 Thread Alberto Faria
On Wed, Jul 6, 2022 at 11:15 AM Daniel P. Berrangé wrote: > For clang-tidy, I've been trying it out integrated into emacs > via eglot and clangd. This means I get clang-tidy errors reported > interactively as I write code, so wouldn't need to run a full > tree analysis. Unfortunately, unless I'm m

Re: [RFC 0/8] Introduce an extensible static analyzer

2022-07-06 Thread Alberto Faria
On Tue, Jul 5, 2022 at 5:13 PM Daniel P. Berrangé wrote: > FWIW, after applying this series 'make check' throws lots of failures > and hangs for me in the block I/O tests, so something appears not quite > correct here. I didn't bother to investigate/debug since you marked this > as just an RFC Th

Re: [RFC 0/8] Introduce an extensible static analyzer

2022-07-06 Thread Alberto Faria
On Tue, Jul 5, 2022 at 5:12 PM Daniel P. Berrangé wrote: > On Tue, Jul 05, 2022 at 12:28:55PM +0100, Alberto Faria wrote: > > On Tue, Jul 5, 2022 at 8:16 AM Daniel P. Berrangé > > wrote: > > > for i in `git ls-tree --name-only -r HEAD:` > > > do > &

[PATCH v2 14/18] block: Implement blk_flush() using generated_co_wrapper

2022-07-05 Thread Alberto Faria
Signed-off-by: Alberto Faria Reviewed-by: Paolo Bonzini Reviewed-by: Hanna Reitz --- block/block-backend.c | 11 --- block/coroutines.h| 2 -- include/sysemu/block-backend-io.h | 2 +- 3 files changed, 1 insertion(+), 14 deletions(-) diff --git a/block

[PATCH v2 12/18] block: Implement blk_pwrite_zeroes() using generated_co_wrapper

2022-07-05 Thread Alberto Faria
Signed-off-by: Alberto Faria Reviewed-by: Paolo Bonzini Reviewed-by: Hanna Reitz --- block/block-backend.c | 8 include/sysemu/block-backend-io.h | 5 +++-- tests/unit/test-block-iothread.c | 17 + 3 files changed, 20 insertions(+), 10 deletions(-) diff

[PATCH v2 17/18] block: Reorganize some declarations in block-backend-io.h

2022-07-05 Thread Alberto Faria
Keep generated_co_wrapper and coroutine_fn pairs together. This should make it clear that each I/O function has these two versions. Also move blk_co_{pread,pwrite}()'s implementations out of the header file for consistency. Signed-off-by: Alberto Faria Reviewed-by: Paolo Bonzini ---

[PATCH v2 11/18] block: Add blk_co_pwrite_compressed()

2022-07-05 Thread Alberto Faria
Also convert blk_pwrite_compressed() into a generated_co_wrapper. Signed-off-by: Alberto Faria Reviewed-by: Paolo Bonzini Reviewed-by: Hanna Reitz --- block/block-backend.c | 8 include/sysemu/block-backend-io.h | 7 +-- tests/unit/test-block-iothread.c | 18

[PATCH v2 15/18] block: Add blk_co_ioctl()

2022-07-05 Thread Alberto Faria
Also convert blk_ioctl() into a generated_co_wrapper. Signed-off-by: Alberto Faria Reviewed-by: Paolo Bonzini Reviewed-by: Hanna Reitz --- block/block-backend.c | 7 --- block/coroutines.h| 6 -- include/sysemu/block-backend-io.h | 5 - 3 files changed

[PATCH v2 18/18] block: Remove remaining unused symbols in coroutines.h

2022-07-05 Thread Alberto Faria
Some can be made static, others are unused generated_co_wrappers. Signed-off-by: Alberto Faria Reviewed-by: Paolo Bonzini Reviewed-by: Hanna Reitz --- block/block-backend.c | 6 +++--- block/coroutines.h| 19 --- 2 files changed, 3 insertions(+), 22 deletions(-) diff

[PATCH v2 16/18] block: Add blk_co_truncate()

2022-07-05 Thread Alberto Faria
Also convert blk_truncate() into a generated_co_wrapper. Signed-off-by: Alberto Faria Reviewed-by: Paolo Bonzini Reviewed-by: Hanna Reitz --- block/block-backend.c | 7 --- include/sysemu/block-backend-io.h | 8 ++-- tests/unit/test-block-iothread.c | 14

[PATCH v2 09/18] block: Export blk_pwritev_part() in block-backend-io.h

2022-07-05 Thread Alberto Faria
Also convert it into a generated_co_wrapper. Signed-off-by: Alberto Faria Reviewed-by: Paolo Bonzini Reviewed-by: Hanna Reitz --- block/block-backend.c | 14 -- block/coroutines.h| 5 - include/sysemu/block-backend-io.h | 4 tests/unit/test

[PATCH v2 13/18] block: Implement blk_pdiscard() using generated_co_wrapper

2022-07-05 Thread Alberto Faria
Signed-off-by: Alberto Faria Reviewed-by: Paolo Bonzini Reviewed-by: Hanna Reitz --- block/block-backend.c | 12 block/coroutines.h| 3 --- include/sysemu/block-backend-io.h | 3 ++- 3 files changed, 2 insertions(+), 16 deletions(-) diff --git a

[PATCH v2 08/18] block: Add blk_[co_]preadv_part()

2022-07-05 Thread Alberto Faria
Implement blk_preadv_part() using generated_co_wrapper. Signed-off-by: Alberto Faria Reviewed-by: Paolo Bonzini Reviewed-by: Hanna Reitz --- block/block-backend.c | 30 +++--- block/coroutines.h| 5 - include/sysemu/block-backend-io.h

[PATCH v2 07/18] block: Add blk_{preadv,pwritev}()

2022-07-05 Thread Alberto Faria
Implement them using generated_co_wrapper. Signed-off-by: Alberto Faria Reviewed-by: Paolo Bonzini Reviewed-by: Hanna Reitz --- include/sysemu/block-backend-io.h | 6 + tests/unit/test-block-iothread.c | 42 ++- 2 files changed, 47 insertions(+), 1 deletion

[PATCH v2 10/18] block: Change blk_pwrite_compressed() param order

2022-07-05 Thread Alberto Faria
Swap 'buf' and 'bytes' around for consistency with other I/O functions. Signed-off-by: Alberto Faria Reviewed-by: Paolo Bonzini Reviewed-by: Hanna Reitz --- block/block-backend.c | 4 ++-- include/sysemu/block-backend-io.h | 4 ++-- qemu-img.c

[PATCH v2 06/18] block: Implement blk_{pread, pwrite}() using generated_co_wrapper

2022-07-05 Thread Alberto Faria
We need to add include/sysemu/block-backend-io.h to the inputs of the block-gen.c target defined in block/meson.build. Signed-off-by: Alberto Faria Reviewed-by: Hanna Reitz --- block/block-backend.c | 23 --- block/coroutines.h| 4 block

[PATCH v2 02/18] block: Add a 'flags' param to blk_pread()

2022-07-05 Thread Alberto Faria
no effect on hw/block/nand.c, presumably due to the #if, so that file was updated manually. Overly-long lines were then fixed by hand. Signed-off-by: Alberto Faria Reviewed-by: Paolo Bonzini Reviewed-by: Greg Kurz Reviewed-by: Hanna Reitz --- block.c | 2 +- block

[PATCH v2 05/18] block: Make blk_co_pwrite() take a const buffer

2022-07-05 Thread Alberto Faria
It does not mutate the buffer. Signed-off-by: Alberto Faria Reviewed-by: Paolo Bonzini Reviewed-by: Hanna Reitz --- include/sysemu/block-backend-io.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/sysemu/block-backend-io.h b/include/sysemu/block-backend-io.h

[PATCH v2 04/18] block: Make 'bytes' param of blk_{pread, pwrite}() an int64_t

2022-07-05 Thread Alberto Faria
For consistency with other I/O functions, and in preparation to implement them using generated_co_wrapper. Signed-off-by: Alberto Faria Reviewed-by: Paolo Bonzini Reviewed-by: Hanna Reitz --- block/block-backend.c | 6 +++--- include/sysemu/block-backend-io.h | 6 +++--- 2 files

[PATCH v2 03/18] block: Change blk_{pread,pwrite}() param order

2022-07-05 Thread Alberto Faria
hat file was updated manually. Overly-long lines were then fixed by hand. Signed-off-by: Alberto Faria Reviewed-by: Eric Blake Reviewed-by: Hanna Reitz --- block.c | 2 +- block/block-backend.c | 4 +-- block/commit.c| 4

[PATCH v2 01/18] block: Make blk_{pread, pwrite}() return 0 on success

2022-07-05 Thread Alberto Faria
They currently return the value of their 'bytes' parameter on success. Make them return 0 instead, for consistency with other I/O functions and in preparation to implement them using generated_co_wrapper. This also makes it clear that short reads/writes are not possible. Signed-off-b

[PATCH v2 00/18] Make block-backend-io.h API more consistent

2022-07-05 Thread Alberto Faria
old return values from blk_{pread,pwrite}(), as they don't return a length anymore. - Drop variables in_ret and out_ret in qemu-img.c:img_dd(). - Initialize buf in test_sync_op_blk_pwritev_part(). - Keep blk_co_copy_range() in the "I/O API functions" section of include

Re: [PATCH 17/18] block: Reorganize some declarations in block-backend-io.h

2022-07-05 Thread Alberto Faria
On Tue, Jul 5, 2022 at 10:18 AM Hanna Reitz wrote: > This moves blk_co_copy_range() from the “I/O API functions” section of > this header into the “"I/O or GS" API functions” section. Is that intended? Oops, thanks, it wasn't intended. Will fix. Alberto

Re: [RFC 0/8] Introduce an extensible static analyzer

2022-07-05 Thread Alberto Faria
On Tue, Jul 5, 2022 at 8:16 AM Daniel P. Berrangé wrote: > for i in `git ls-tree --name-only -r HEAD:` > do > clang-tidy $i 1>/dev/null 2>&1 > done All of those invocations are probably failing quickly due to missing includes and other problems, since the location of the co

Re: [RFC 0/8] Introduce an extensible static analyzer

2022-07-04 Thread Alberto Faria
On Mon, Jul 4, 2022 at 5:28 PM Daniel P. Berrangé wrote: > Have you done any measurement see how much of the overhead is from > the checks you implemented, vs how much is inherantly forced on us > by libclang ? ie what does it look like if you just load the libclang > framework and run it actross

Re: [RFC 5/8] static-analyzer: Enforce coroutine_fn restrictions on function pointers

2022-07-04 Thread Alberto Faria
On Mon, Jul 4, 2022 at 6:46 PM Víctor Colombo wrote: > Yes, this line is present at the beginning of the output > Is this caused by problems with the code being analyzed or is it because > libclang is getting confused with something that is outside of our > control? I think I found the problem: t

Re: [RFC 5/8] static-analyzer: Enforce coroutine_fn restrictions on function pointers

2022-07-04 Thread Alberto Faria
Hi Víctor, On Mon, Jul 4, 2022 at 3:18 PM Víctor Colombo wrote: > And I receive an exception on the line above saying that node is of type > NoneType. Seems that `node = node.referenced` is setting `node` to None > in this case. > > I was unable to understand the root cause of it. Is this an inco

Re: [PATCH 01/18] block: Make blk_{pread, pwrite}() return 0 on success

2022-07-04 Thread Alberto Faria
On Mon, Jul 4, 2022 at 2:52 PM Hanna Reitz wrote: > There are a couple of places where you decided to replace “*len” > variables that used to store the return value by a plain “ret”. That > seems good to me, given how these functions no longer return length > values, but you haven’t done so consis

Re: [PATCH v2 26/26] test-coroutine: add missing coroutine_fn annotations

2022-07-04 Thread Alberto Faria
ile changed, 1 insertion(+), 1 deletion(-) Reviewed-by: Alberto Faria

Re: [PATCH v2 22/26] coroutine-lock: add missing coroutine_fn annotations

2022-07-04 Thread Alberto Faria
On Mon, May 9, 2022 at 12:13 PM Paolo Bonzini wrote: > Signed-off-by: Paolo Bonzini > --- > util/qemu-coroutine-lock.c | 14 +++--- > 1 file changed, 7 insertions(+), 7 deletions(-) Reviewed-by: Alberto Faria

Re: [PATCH v2 23/26] raw-format: add missing coroutine_fn annotations

2022-07-04 Thread Alberto Faria
id > *buf) > +static int coroutine_fn raw_co_ioctl(BlockDriverState *bs, unsigned long int > req, void *buf) Overly long line. > { > BDRVRawState *s = bs->opaque; > if (s->offset || s->has_size) { > -- > 2.35.1 Reviewed-by: Alberto Faria

Re: [PATCH v2 21/26] job: add missing coroutine_fn annotations

2022-07-04 Thread Alberto Faria
On Mon, May 9, 2022 at 12:02 PM Paolo Bonzini wrote: > Signed-off-by: Paolo Bonzini > --- > include/qemu/job.h | 2 +- > job.c | 2 +- > 2 files changed, 2 insertions(+), 2 deletions(-) Reviewed-by: Alberto Faria

Re: [PATCH v2 12/26] nvme: add missing coroutine_fn annotations

2022-07-04 Thread Alberto Faria
On Mon, May 9, 2022 at 12:02 PM Paolo Bonzini wrote: > Signed-off-by: Paolo Bonzini > --- > block/nvme.c | 5 +++-- > 1 file changed, 3 insertions(+), 2 deletions(-) Reviewed-by: Alberto Faria

Re: [PATCH v2 24/26] 9p: add missing coroutine_fn annotations

2022-07-04 Thread Alberto Faria
On Mon, May 9, 2022 at 12:09 PM Paolo Bonzini wrote: > From: Marc-André Lureau > > Signed-off-by: Marc-André Lureau > Acked-by: Greg Kurz > Signed-off-by: Paolo Bonzini > --- > hw/9pfs/9p.h | 9 ++--- > 1 file changed, 6 insertions(+), 3 deletions(-) Reviewed-by: Alberto Faria

Re: [PATCH v2 16/26] curl: add missing coroutine_fn annotations

2022-07-04 Thread Alberto Faria
On Mon, May 9, 2022 at 12:08 PM Paolo Bonzini wrote: > Signed-off-by: Paolo Bonzini > --- > block/curl.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) Reviewed-by: Alberto Faria

Re: [PATCH v2 25/26] migration: add missing coroutine_fn annotations

2022-07-04 Thread Alberto Faria
2 insertions(+), 1 deletion(-) Reviewed-by: Alberto Faria

Re: [PATCH v2 13/26] parallels: add missing coroutine_fn annotations

2022-07-04 Thread Alberto Faria
On Mon, May 9, 2022 at 11:46 AM Paolo Bonzini wrote: > Signed-off-by: Paolo Bonzini > --- > block/parallels.c | 5 +++-- > 1 file changed, 3 insertions(+), 2 deletions(-) Reviewed-by: Alberto Faria

Re: [PATCH v2 19/26] throttle: add missing coroutine_fn annotations

2022-07-04 Thread Alberto Faria
On Mon, May 9, 2022 at 12:13 PM Paolo Bonzini wrote: > Signed-off-by: Paolo Bonzini > --- > block/throttle.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) Reviewed-by: Alberto Faria

Re: [PATCH v2 10/26] nbd: add missing coroutine_fn annotations

2022-07-04 Thread Alberto Faria
On Mon, May 9, 2022 at 11:54 AM Paolo Bonzini wrote: > Signed-off-by: Paolo Bonzini > --- > block/nbd.c | 10 +- > 1 file changed, 5 insertions(+), 5 deletions(-) Reviewed-by: Alberto Faria

Re: [PATCH v2 20/26] vmdk: add missing coroutine_fn annotations

2022-07-04 Thread Alberto Faria
On Mon, May 9, 2022 at 12:18 PM Paolo Bonzini wrote: > Signed-off-by: Paolo Bonzini > --- > block/vmdk.c | 20 ++-- > 1 file changed, 10 insertions(+), 10 deletions(-) Some overly long lines. Reviewed-by: Alberto Faria

Re: [PATCH v2 17/26] qed: add missing coroutine_fn annotations

2022-07-04 Thread Alberto Faria
On Mon, May 9, 2022 at 12:05 PM Paolo Bonzini wrote: > Signed-off-by: Paolo Bonzini > --- > block/qed.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) Reviewed-by: Alberto Faria

Re: [PATCH v2 06/26] blkverify: add missing coroutine_fn annotations

2022-07-04 Thread Alberto Faria
On Mon, May 9, 2022 at 11:46 AM Paolo Bonzini wrote: > Signed-off-by: Paolo Bonzini > --- > block/blkverify.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) Reviewed-by: Alberto Faria

  1   2   3   >