I'm working on preparing my KVM Forum presentation on NBD, and ran
into a situation where I really wanted to do the equivalent of
'qemu-img map' over NBD for determining which portions of an overlay
image are changed from the backing layer. So after less than 24 hours
hacking, I'm pretty pleased w
'qemu-img map' provides a way to determine which extents of an image
come from the top layer vs. inherited from a backing chain. This is
useful information worth exposing over NBD. There is a proposal to
add a QMP command block-dirty-bitmap-populate which can create a dirty
bitmap that reflects a
Allow the server to expose an additional metacontext to be requested
by savvy clients. qemu-nbd adds a new option -A to expose the
qemu:allocation-depth metacontext through NBD_CMD_BLOCK_STATUS; this
can also be set via QMP when using nbd-server-add.
qemu as client can be hacked into viewing this
We had a premature optimization of trying to read as little from the
wire as possible while handling NBD_OPT_SET_META_CONTEXT in phases.
But in reality, we HAVE to read the entire string from the client
before we can get to the next command, and it is easier to just read
it all at once than it is t
On Sep 24 03:20, Dmitry Fomichev wrote:
> The emulation code has been changed to advertise NVM Command Set when
> "zoned" device property is not set (default) and Zoned Namespace
> Command Set otherwise.
>
> Handlers for three new NVMe commands introduced in Zoned Namespace
> Command Set specifica
22.07.2020 14:05, Max Reitz wrote:
On 01.06.20 20:11, Vladimir Sementsov-Ogievskiy wrote:
We are going to directly use one async block-copy operation for backup
job, so we need rate limitator.
%s/limitator/limiter/g, I think.
We want to maintain current backup behavior: only background copyi
On Sep 25 17:06, Dmitry Fomichev wrote:
> > From: Klaus Jensen
> >
> > * Standard blockdev-based approach to persistent state. The
> >
> > implementation uses a plain blockdev associated with the nvme-ns
> >
> > device for storing state persistently. This same 'pstate' blockdev
> >
>
Am 10.09.2020 um 15:24 hat Stefan Hajnoczi geschrieben:
> On Wed, Sep 09, 2020 at 05:11:36PM +0200, Kevin Wolf wrote:
> > Some QMP command handlers can block the main loop for a relatively long
> > time, for example because they perform some I/O. This is quite nasty.
> > Allowing such handlers to r
25.09.2020 13:24, Max Reitz wrote:
On 18.09.20 20:19, Vladimir Sementsov-Ogievskiy wrote:
Performance improvements / degradations are usually discussed in
percentage. Let's make the script calculate it for us.
Signed-off-by: Vladimir Sementsov-Ogievskiy
---
scripts/simplebench/simplebench.py
> -Original Message-
> From: Qemu-block bounces+dmitry.fomichev=wdc@nongnu.org> On Behalf Of Klaus
> Jensen
> Sent: Thursday, September 24, 2020 4:45 PM
> To: qemu-de...@nongnu.org
> Cc: Fam Zheng ; Kevin Wolf ; qemu-
> bl...@nongnu.org; Klaus Jensen ; Max Reitz
> ; Keith Busch ; Kla
25.09.2020 12:31, Max Reitz wrote:
On 18.09.20 20:19, Vladimir Sementsov-Ogievskiy wrote:
Introduce dynamic float precision and use percentage to show delta.
Signed-off-by: Vladimir Sementsov-Ogievskiy
---
scripts/simplebench/simplebench.py | 26 +-
1 file changed, 2
Am 15.09.2020 um 16:31 hat Stefan Hajnoczi geschrieben:
> On Wed, Sep 09, 2020 at 05:11:48PM +0200, Kevin Wolf wrote:
> > Add a function to move the current coroutine to the AioContext of a
> > given BlockDriverState.
> >
> > Signed-off-by: Kevin Wolf
> > ---
> > include/block/block.h | 6 +
On Thu, Sep 24, 2020 at 09:54:07PM +0300, Vladimir Sementsov-Ogievskiy wrote:
> Hi all!
>
> The aim of the series is to reduce code-duplication and writing
> parameters structure-packing by hand around coroutine function wrappers.
>
> Benefits:
> - no code duplication
> - less indirection
>
>
Am 15.09.2020 um 16:57 hat Stefan Hajnoczi geschrieben:
> On Wed, Sep 09, 2020 at 05:11:49PM +0200, Kevin Wolf wrote:
> > @@ -2456,8 +2456,7 @@ void qmp_block_resize(bool has_device, const char
> > *device,
> > return;
> > }
> >
> > -aio_context = bdrv_get_aio_context(bs);
> >
From: Thomas Huth
All our supported build platforms have Python 3.6 or newer nowadays, and
there are some useful features in Python 3.6 which are not available in
3.5 yet (e.g. the type hint annotations which will allow us to statically
type the QAPI parser), so let's bump the minimum Python vers
Am 14.09.2020 um 17:30 hat Markus Armbruster geschrieben:
> Kevin Wolf writes:
>
> > This moves the QMP dispatcher to a coroutine and runs all QMP command
> > handlers that declare 'coroutine': true in coroutine context so they
> > can avoid blocking the main loop while doing I/O or waiting for o
25.09.2020 18:11, Vladimir Sementsov-Ogievskiy wrote:
25.09.2020 12:11, Max Reitz wrote:
On 25.09.20 10:49, Vladimir Sementsov-Ogievskiy wrote:
25.09.2020 11:26, Max Reitz wrote:
On 18.09.20 20:19, Vladimir Sementsov-Ogievskiy wrote:
Signed-off-by: Vladimir Sementsov-Ogievskiy
---
tests/q
Am 14.09.2020 um 17:15 hat Markus Armbruster geschrieben:
> Kevin Wolf writes:
>
> > This patch adds a new 'coroutine' flag to QMP command definitions that
> > tells the QMP dispatcher that the command handler is safe to be run in a
> > coroutine.
> >
> > The documentation of the new flag pretend
Am 14.09.2020 um 17:11 hat Markus Armbruster geschrieben:
> Kevin Wolf writes:
>
> > This way, a monitor command handler will still be able to access the
> > current monitor, but when it yields, all other code code will correctly
> > get NULL from monitor_cur().
> >
> > This uses a hash table to
On Tue, Sep 22, 2020 at 10:38:15AM +0200, Philippe Mathieu-Daudé wrote:
> Instead of mapping 8K of I/O + doorbells as RW during the whole
> execution, maps I/O temporarly at init, and map doorbells WO.
>
> Replace various magic values by slighly more explicit macros from
> "block/nvme.h".
>
> Sin
On Tue, Sep 22, 2020 at 10:38:18AM +0200, Philippe Mathieu-Daudé wrote:
> @@ -808,6 +808,10 @@ static int nvme_init(BlockDriverState *bs, const char
> *device, int namespace,
> ret = -EIO;
> }
> out:
> +if (regs) {
> +qemu_vfio_pci_unmap_bar(s->vfio, 0, (void *)regs, 0,
Am 14.09.2020 um 17:10 hat Markus Armbruster geschrieben:
> Kevin Wolf writes:
>
> > The correct way to set the current monitor for a coroutine handler will
> > be different than for a blocking handler, so monitor_set_cur() needs to
> > be called in qmp_dispatch().
> >
> > Signed-off-by: Kevin Wo
25.09.2020 12:11, Max Reitz wrote:
On 25.09.20 10:49, Vladimir Sementsov-Ogievskiy wrote:
25.09.2020 11:26, Max Reitz wrote:
On 18.09.20 20:19, Vladimir Sementsov-Ogievskiy wrote:
Signed-off-by: Vladimir Sementsov-Ogievskiy
---
tests/qemu-iotests/298 | 186 +
On Fri, Sep 25, 2020 at 04:11:54PM +0200, Paolo Bonzini wrote:
> On 25/09/20 15:42, Stefan Hajnoczi wrote:
> > Block exports are used by softmmu, qemu-storage-daemon, and qemu-nbd.
> > They are not used by other programs and are not otherwise needed in
> > libblock.
> >
> > Undo the recent move of
Am 25.09.2020 um 15:42 hat Stefan Hajnoczi geschrieben:
> Make it possible to specify the iothread where the export will run.
>
> Signed-off-by: Stefan Hajnoczi
> ---
> Note the x-blockdev-set-iothread QMP command can be used to do the same,
> but not from the command-line. And it requires sendin
On 25/09/20 15:42, Stefan Hajnoczi wrote:
> Block exports are used by softmmu, qemu-storage-daemon, and qemu-nbd.
> They are not used by other programs and are not otherwise needed in
> libblock.
>
> Undo the recent move of blockdev-nbd.c from blockdev_ss into block_ss.
> Two stubs are required to
On 25/09/20 15:42, Stefan Hajnoczi wrote:
> Introduce libblkdev.fa to avoid recompiling blockdev_ss twice.
>
> Suggested-by: Paolo Bonzini
> Signed-off-by: Stefan Hajnoczi
> ---
> meson.build| 12 ++--
> storage-daemon/meson.build | 3 +--
> 2 files changed, 11 insertio
On 25/09/20 15:42, Stefan Hajnoczi wrote:
> Don't compile contrib/libvhost-user/libvhost-user.c again. Instead build
> the static library once and then reuse it throughout QEMU.
>
> Also switch from CONFIG_LINUX to CONFIG_VHOST_USER, which is what the
> vhost-user tools (vhost-user-gpu, etc) do.
>
Introduce libblkdev.fa to avoid recompiling blockdev_ss twice.
Suggested-by: Paolo Bonzini
Signed-off-by: Stefan Hajnoczi
---
meson.build| 12 ++--
storage-daemon/meson.build | 3 +--
2 files changed, 11 insertions(+), 4 deletions(-)
diff --git a/meson.build b/meson.bu
Block exports are used by softmmu, qemu-storage-daemon, and qemu-nbd.
They are not used by other programs and are not otherwise needed in
libblock.
Undo the recent move of blockdev-nbd.c from blockdev_ss into block_ss.
Two stubs are required to support this:
1. bdrv_close_all() (libblock) calls bl
Make it possible to specify the iothread where the export will run.
Signed-off-by: Stefan Hajnoczi
---
Note the x-blockdev-set-iothread QMP command can be used to do the same,
but not from the command-line. And it requires sending an additional
command.
In the long run vhost-user-blk will suppor
This series adjusts the build system and then adds a
BlockExportOptions->iothread member so that it is possible to set the iothread
for an export.
Based-on: 20200924151549.913737-1-stefa...@redhat.com ("[PATCH v2 00/13]
block/export: convert vhost-user-blk-server to block exports API")
Stefan Ha
Don't compile contrib/libvhost-user/libvhost-user.c again. Instead build
the static library once and then reuse it throughout QEMU.
Also switch from CONFIG_LINUX to CONFIG_VHOST_USER, which is what the
vhost-user tools (vhost-user-gpu, etc) do.
Signed-off-by: Stefan Hajnoczi
---
block/export/ex
On 9/24/20 10:26 AM, Kevin Wolf wrote:
We want to have a common set of commands for all types of block exports.
Currently, this is only NBD, but we're going to add more types.
This patch adds the basic BlockExport and BlockExportDriver structs and
a QMP command block-export-add that creates a ne
On 24.09.20 17:27, Kevin Wolf wrote:
> Signed-off-by: Kevin Wolf
> ---
> tests/qemu-iotests/307 | 132 +
> tests/qemu-iotests/307.out | 124 ++
> tests/qemu-iotests/group | 1 +
> 3 files changed, 257 insertions(+)
> cre
On 24.09.20 17:27, Kevin Wolf wrote:
> This is useful for specifying 'generic' as supported (which includes
> only writable image formats), but still excluding some incompatible
> writable formats.
>
> It also removes more lines than it adds.
>
> Signed-off-by: Kevin Wolf
> ---
> tests/qemu-iot
On 9/25/20 3:32 AM, Vladimir Sementsov-Ogievskiy wrote:
This is the only non-ascii character in the file and it doesn't really
needed here. Let's use normal "'" symbol for consistency with the rest
11 occurrences of "'" in the file.
Signed-off-by: Vladimir Sementsov-Ogievskiy
---
include/bloc
On 24.09.20 17:27, Kevin Wolf wrote:
> Add a function to list the NBD exports offered by an NBD server.
>
> Signed-off-by: Kevin Wolf
> ---
> tests/qemu-iotests/iotests.py | 13 -
> 1 file changed, 12 insertions(+), 1 deletion(-)
Reviewed-by: Max Reitz
signature.asc
Description:
On 9/25/20 3:04 AM, Vladimir Sementsov-Ogievskiy wrote:
24.09.2020 23:32, no-re...@patchew.org wrote:
Patchew URL:
https://patchew.org/QEMU/20200924185414.28642-1-vsement...@virtuozzo.com/
Program python3 found: YES (/usr/bin/python3)
Configuring ninjatool using configuration
---
retur
This creates the QEMU side of the vhost-user-rpmb device which
connects to the remote daemon. It is based of the reasonably modern
vhost-user-fs code with bits from vhost-user-blk as we want the
virtio-config itself to be sourced from the daemon.
Signed-off-by: Alex Bennée
---
include/hw/virtio/
This allows is to instantiate a vhost-user-rpmb device as part of a
PCI bus. It is mostly boilerplate which looks pretty similar to the
vhost-user-fs-pci device if you squint.
Signed-off-by: Alex Bennée
---
- enable use IOEVENTFD flag
- swap obj set bool args
---
hw/block/vhost-user-rpmb-pc
On 24.09.20 17:27, Kevin Wolf wrote:
> We have three almost identical functions that call an external process
> and return its output and return code. Refactor them into small wrappers
> around a common function.
>
> Signed-off-by: Kevin Wolf
> ---
> tests/qemu-iotests/iotests.py | 49 ++
On 24.09.20 17:27, Kevin Wolf wrote:
> There is no real reason any more why nbd_export_new() and
> nbd_export_create() should be separate functions. The latter only
> performs a few checks before it calls the former.
>
> What makes the current state stand out is that it's the only function in
> Bl
On 24.09.20 17:27, Kevin Wolf wrote:
> These QMP commands are replaced by block-export-add/del.
>
> Signed-off-by: Kevin Wolf
> ---
> qapi/block-export.json | 11 +--
> docs/system/deprecated.rst | 6 ++
> 2 files changed, 15 insertions(+), 2 deletions(-)
Reviewed-by: Max Reitz
On 24.09.20 17:27, Kevin Wolf wrote:
> Clients may want to know when an export has finally disappeard
> (block-export-del returns earlier than that in the general case), so add
> a QAPI event for it.
>
> Signed-off-by: Kevin Wolf
> ---
> qapi/block-export.json | 12
> block/expo
On 18.09.20 20:19, Vladimir Sementsov-Ogievskiy wrote:
> Benchmark for new preallocate filter.
>
> Example usage:
> ./bench_prealloc.py ../../build/qemu-img \
> ssd-ext4:/path/to/mount/point \
> ssd-xfs:/path2 hdd-ext4:/path3 hdd-xfs:/path4
>
> The benchmark shows performance
On 18.09.20 20:19, Vladimir Sementsov-Ogievskiy wrote:
> Performance improvements / degradations are usually discussed in
> percentage. Let's make the script calculate it for us.
>
> Signed-off-by: Vladimir Sementsov-Ogievskiy
> ---
> scripts/simplebench/simplebench.py | 46 +
On Wed, 23 Sep 2020 at 17:10, Stefan Hajnoczi wrote:
>
> The following changes since commit 0fc0142828b5bc965790a1c5c6e241897d3387cb:
>
> Merge remote-tracking branch
> 'remotes/kraxel/tags/input-20200921-pull-request' into staging (2020-09-22
> 21:11:10 +0100)
>
> are available in the Git rep
On 18.09.20 20:19, Vladimir Sementsov-Ogievskiy wrote:
> Introduce dynamic float precision and use percentage to show delta.
>
> Signed-off-by: Vladimir Sementsov-Ogievskiy
> ---
> scripts/simplebench/simplebench.py | 26 +-
> 1 file changed, 25 insertions(+), 1 deletion(
On 25.09.20 10:49, Vladimir Sementsov-Ogievskiy wrote:
> 25.09.2020 11:26, Max Reitz wrote:
>> On 18.09.20 20:19, Vladimir Sementsov-Ogievskiy wrote:
>>> Signed-off-by: Vladimir Sementsov-Ogievskiy
>>> ---
>>> tests/qemu-iotests/298 | 186 +
>>> tests/qem
On 18.09.20 20:19, Vladimir Sementsov-Ogievskiy wrote:
> Support benchmarks returning not seconds but iops. We'll use it for
> further new test.
>
> Signed-off-by: Vladimir Sementsov-Ogievskiy
> ---
> scripts/simplebench/simplebench.py | 35 +++---
> 1 file changed, 27 in
On Thu, Sep 24, 2020 at 05:26:46PM +0200, Kevin Wolf wrote:
> We are planning to add more block export types than just NBD in the near
> future (e.g. vhost-user-blk and FUSE). This series lays the ground for
> this with some generic block export infrastructure and QAPI interfaces
> that will allow
25.09.2020 11:26, Max Reitz wrote:
On 18.09.20 20:19, Vladimir Sementsov-Ogievskiy wrote:
Signed-off-by: Vladimir Sementsov-Ogievskiy
---
tests/qemu-iotests/298 | 186 +
tests/qemu-iotests/298.out | 5 +
tests/qemu-iotests/group | 1 +
3 files
On Thu, Sep 24, 2020 at 10:21:56AM -0700, no-re...@patchew.org wrote:
> ERROR: "(foo*)" should be "(foo *)"
> #156: FILE: blockdev-nbd.c:224:
> +return (BlockExport*) exp;
[...]
> ERROR: "(foo*)" should be "(foo *)"
> #49: FILE: blockdev-nbd.c:239:
> +blk_exp_unref((BlockExport*) exp);
The
On Wed, Sep 23, 2020 at 01:28:47PM -0700, no-re...@patchew.org wrote:
> Patchew URL:
> https://patchew.org/QEMU/20200923161031.69474-1-stefa...@redhat.com/
checkpatch is warning about pre-existing issues.
Stefan
signature.asc
Description: PGP signature
It's all because underlying "[PATCH v9 0/7] coroutines: generate wrapper code" series,
I've answered in "[PATCH v9 0/7] coroutines: generate wrapper code" thread.
25.09.2020 00:45, no-re...@patchew.org wrote:
Patchew URL:
https://patchew.org/QEMU/20200924194003.22080-1-vsement...@virtuozzo.com
This is the only non-ascii character in the file and it doesn't really
needed here. Let's use normal "'" symbol for consistency with the rest
11 occurrences of "'" in the file.
Signed-off-by: Vladimir Sementsov-Ogievskiy
---
include/block/block.h | 2 +-
1 file changed, 1 insertion(+), 1 deletio
On 18.09.20 20:19, Vladimir Sementsov-Ogievskiy wrote:
> Signed-off-by: Vladimir Sementsov-Ogievskiy
> ---
> tests/qemu-iotests/298 | 186 +
> tests/qemu-iotests/298.out | 5 +
> tests/qemu-iotests/group | 1 +
> 3 files changed, 192 insertions(+)
>
24.09.2020 21:54, Vladimir Sementsov-Ogievskiy wrote:
We have a very frequent pattern of creating a coroutine from a function
with several arguments:
- create a structure to pack parameters
- create _entry function to call original function taking parameters
from struct
- do differ
24.09.2020 23:32, no-re...@patchew.org wrote:
Patchew URL:
https://patchew.org/QEMU/20200924185414.28642-1-vsement...@virtuozzo.com/
Hi,
This series failed the docker-quick@centos7 build test. Please find the testing
commands and
their output below. If you have Docker installed, you can pro
On Sep 24 15:43, no-re...@patchew.org wrote:
> Patchew URL:
> https://patchew.org/QEMU/20200924204516.1881843-1-...@irrelevant.dk/
>
>
>
> Hi,
>
> This series seems to have some coding style problems. See output below for
> more information:
>
> Type: series
> Message-id: 20200924204516.18818
On 18.09.20 20:19, Vladimir Sementsov-Ogievskiy wrote:
> Signed-off-by: Vladimir Sementsov-Ogievskiy
> ---
> tests/qemu-iotests/iotests.py | 7 ++-
> 1 file changed, 6 insertions(+), 1 deletion(-)
Reviewed-by: Max Reitz
signature.asc
Description: OpenPGP digital signature
62 matches
Mail list logo