We only have one caller that wants to export a bitmap name,
which it does right after creation of the export. But there is
still a brief window of time where an NBD client could see the
export but not the dirty bitmap, which a robust client would
have to interpret as meaning the entire image should
Having to fire up qemu, then use QMP commands for nbd-server-start
and nbd-server-add, just to expose a persistent dirty bitmap, is
rather tedious. Make it possible to expose a dirty bitmap using
just qemu-nbd (of course, for now this only works when qemu-nbd is
visiting a BDS formatted as qcow2).
With the experimental x-nbd-server-add-bitmap command, there was
a window of time where a client could see the export but not the
associated dirty bitmap, which can cause a client that planned
on using the dirty bitmap to be forced to treat the entire image
as dirty as a safety fallback. Furthermo
The existing NBD code had a weird split where nbd_export_new()
created an export but did not add it to the list of exported
names until a later nbd_export_set_name() came along and grabbed
a second reference on the object; later, nbd_export_close()
drops the second reference. But since we never ch
Now that nbd-server-add can do the same functionality, we no
longer need the experimental separate command.
Signed-off-by: Eric Blake
---
qapi/block.json | 23 ---
blockdev-nbd.c | 23 ---
2 files changed, 46 deletions(-)
diff --git a/qapi/block.json b/q
Or rather, move its functionality into nbd-server-add. And as
a side effect, teach qemu-nbd how to export a persistent bitmap
without having to go through a qemu process and several QMP
commands.
Based-on: <20181221093529.23855-1-js...@redhat.com>
[0/11 bitmaps: remove x- prefix from QMP api]
Pa
On 12/21/18 3:35 AM, John Snow wrote:
> New interface, new smoke test.
>
> Signed-off-by: John Snow
> Reviewed-by: Vladimir Sementsov-Ogievskiy
> Reviewed-by: Eric Blake
> ---
> tests/qemu-iotests/236 | 161 +
> tests/qemu-iotests/236.out | 351 +
On 1/8/19 1:45 PM, Vladimir Sementsov-Ogievskiy wrote:
> bdrv_co_block_status digs bs->file for additional, more accurate search
> for hole inside region, reported as DATA by bs since 5daa74a6ebc.
>
> This accuracy is not free: assume we have qcow2 disk. Actually, qcow2
> knows, where are holes an
bdrv_co_block_status digs bs->file for additional, more accurate search
for hole inside region, reported as DATA by bs since 5daa74a6ebc.
This accuracy is not free: assume we have qcow2 disk. Actually, qcow2
knows, where are holes and where is data. But every block_status
request calls lseek addit
Am 08.01.2019 um 18:18 hat Markus Armbruster geschrieben:
> This patch series got stuck.
>
> Markus Armbruster writes:
>
> > Fam Zheng writes:
> >
> >> On Tue, 09/25 07:00, Markus Armbruster wrote:
> >>> Jeff Cody writes:
> >>>
> >>> > I'll not be involved in day-to-day qemu development. Rem
Am 13.12.2018 um 18:51 hat Markus Armbruster geschrieben:
> Patch created mechanically by rerunning:
>
> $ spatch --sp-file scripts/coccinelle/qobject.cocci \
> --macro-file scripts/cocci-macro-file.h \
> --dir block --in-place
>
> Signed-off-by: Markus Armbruster
Thanks,
This patch series got stuck.
Markus Armbruster writes:
> Fam Zheng writes:
>
>> On Tue, 09/25 07:00, Markus Armbruster wrote:
>>> Jeff Cody writes:
>>>
>>> > I'll not be involved in day-to-day qemu development. Remove
>>> > myself as maintainer from the remainder of the network block drivers
Hi all!
The series brings threads to qcow2 encryption/decryption path,
like it is already done for compression.
Now, based on master
v3:
01: drop 'include block_int.h' lines not needed more [Alberto]
02: fix comments style (open/close on separate line), add Alberto's r-b
03: improve commit messag
Encryption will be done in threads, to take benefit of it, we should
move it out of the lock first.
Signed-off-by: Vladimir Sementsov-Ogievskiy
---
block/qcow2.c | 35 +--
1 file changed, 21 insertions(+), 14 deletions(-)
diff --git a/block/qcow2.c b/block/qcow2.
qcow2.h depends on block_int.h. Compilation isn't broken currently only
due to block_int.h always included before qcow2.h. Though, it seems
better to directly include block_int.h in qcow2.h.
Signed-off-by: Vladimir Sementsov-Ogievskiy
---
block/qcow2.h | 1 +
block/qcow2-bitmap.c | 1
Signed-off-by: Vladimir Sementsov-Ogievskiy
---
block/qcow2-threads.c | 10 +++---
1 file changed, 7 insertions(+), 3 deletions(-)
diff --git a/block/qcow2-threads.c b/block/qcow2-threads.c
index 20b2616529..156e0667be 100644
--- a/block/qcow2-threads.c
+++ b/block/qcow2-threads.c
@@ -158,15
qemu_iovec_memset has @offset parameter, so using hd_qiov for it is not
needed.
Signed-off-by: Vladimir Sementsov-Ogievskiy
---
block/qcow2.c | 12 ++--
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/block/qcow2.c b/block/qcow2.c
index e650528af7..d6ef606d89 100644
--- a/b
Background: decryption will be done in threads, to take benefit of it,
we should move it out of the lock first.
But let's go further: it turns out, that for locking around switch
cases we have only two variants: when we just do memset(0) not
releasing the lock (it is useless) and when we actually
Do encryption/decryption in threads, like it is already done for
compression. This improves asynchronous encrypted io.
Signed-off-by: Vladimir Sementsov-Ogievskiy
---
block/qcow2.h | 8 ++
block/qcow2-cluster.c | 7 ++---
block/qcow2-threads.c | 65 +
Move compression-on-threads to separate file. Encryption will be in it
too.
Signed-off-by: Vladimir Sementsov-Ogievskiy
Reviewed-by: Alberto Garcia
---
block/qcow2.h | 7 ++
block/qcow2-threads.c | 201 ++
block/qcow2.c | 169 ---
Move generic part out of qcow2_co_do_compress, to reuse it for
encryption and rename things that would be shared with encryption path.
Signed-off-by: Vladimir Sementsov-Ogievskiy
---
block/qcow2.h | 4 ++--
block/qcow2-threads.c | 47 ---
block/qc
Use thread_pool_submit_co, instead of reinventing it here. Note, that
thread_pool_submit_aio() never returns NULL, so checking it was an
extra thing.
Signed-off-by: Vladimir Sementsov-Ogievskiy
Reviewed-by: Alberto Garcia
---
block/qcow2-threads.c | 17 ++---
1 file changed, 2 inser
On Mon, Jan 07, 2019 at 01:02:48PM +0100, Kevin Wolf wrote:
> In the block layer, synchronous APIs are often implemented by creating a
> coroutine that calls the asynchronous coroutine-based implementation and
> then waiting for completion with BDRV_POLL_WHILE().
>
> For this to work with iothread
On Sat, Jan 05, 2019 at 04:42:43PM +0800, yuchenlin wrote:
> Recently, some bugs in dmg file have been fixed. To prevent reading dmg
> is broken someday in the future, add a simple test which ensures the
> conversion from dmg to raw should not hang or face any I/O error.
>
> Signed-off-by: yuchenl
Am 05.01.2019 um 09:42 hat yuchenlin geschrieben:
> Recently, some bugs in dmg file have been fixed. To prevent reading dmg
> is broken someday in the future, add a simple test which ensures the
> conversion from dmg to raw should not hang or face any I/O error.
>
> Signed-off-by: yuchenlin
Than
Am 14.11.2018 um 15:58 hat Alberto Garcia geschrieben:
> Refcount table entries have a field to store the offset of the
> refcount block. The rest of the bits of the entry are currently
> reserved.
>
> The offset is always taken from the entry using REFT_OFFSET_MASK to
> ensure that we only use th
Am 22.11.2018 um 16:00 hat Alberto Garcia geschrieben:
> Hi,
>
> a couple of minor fixes for the mirror block job. I don't think these
> bugs can be reproduced at the moment so this shouldn't be 3.1
> material.
Thanks, applied to the block branch.
Kevin
ping 2
On Wed 14 Nov 2018 03:58:57 PM CET, Alberto Garcia wrote:
> Refcount table entries have a field to store the offset of the
> refcount block. The rest of the bits of the entry are currently
> reserved.
>
> The offset is always taken from the entry using REFT_OFFSET_MASK to
> ensure that we o
On Tue, Jan 08, 2019 at 04:13:09PM +0100, Kevin Wolf wrote:
> Am 08.01.2019 um 15:51 hat Eric Blake geschrieben:
> > On 1/8/19 6:16 AM, Kevin Wolf wrote:
> > > Unconditionally setting optind = 1 looks fine. I would, however, quote a
> > > different part of the glibc man page (in addition or instead
ping 2
On Thu 22 Nov 2018 04:00:25 PM CET, Alberto Garcia wrote:
> Hi,
>
> a couple of minor fixes for the mirror block job. I don't think these
> bugs can be reproduced at the moment so this shouldn't be 3.1
> material.
>
> Berto
>
> Alberto Garcia (2):
> mirror: Release the dirty bitmap if mir
Am 08.01.2019 um 15:20 hat Paul Durrant geschrieben:
> > -Original Message-
> > From: Xen-devel [mailto:xen-devel-boun...@lists.xenproject.org] On Behalf
> > Of Paul Durrant
> > Sent: 08 January 2019 14:11
> > To: Anthony Perard
> > Cc: 'Kevin Wolf' ; Stefano Stabellini
> > ; qemu-block@no
On 1/8/19 3:31 AM, Markus Armbruster wrote:
> Copying our resident shell script guru Eric.
Who already expressed a desire to keep things hard-coded on v1 ;)
And I've also already expressed a dislike for the entire S_XXXiB macro
list, thinking that a nicer solution would instead be teaching QemuOp
Am 08.01.2019 um 15:51 hat Eric Blake geschrieben:
> On 1/8/19 6:16 AM, Kevin Wolf wrote:
> > Unconditionally setting optind = 1 looks fine. I would, however, quote a
> > different part of the glibc man page (in addition or instead of the
> > paragraph you already quoted):
> >
> > The variabl
This patch adds the transformations necessary to get dataplane/xen-block.c
to build against the new XenBus/XenDevice framework. MAINTAINERS is also
updated due to the introduction of dataplane/xen-block.h.
NOTE: Existing data structure names are retained for the moment. These will
be modifie
I have made many significant contributions to the Xen code in QEMU,
particularly the recent patches introducing a new PV device framework.
I intend to make further significant contributions, porting other PV back-
ends to the new framework with the intent of eventually removing the
legacy code. It
...and wire in the dataplane.
This patch adds the remaining code to make the xen-block XenDevice
functional. The parameters that a block frontend expects to find are
populated in the backend xenstore area, and the 'ring-ref' and
'event-channel' values specified in the frontend xenstore area are
ma
...that maintains compatibility with existing Xen toolstacks.
Xen toolstacks instantiate PV backends by simply writing information into
xenstore and expecting a backend implementation to be watching for this.
This patch adds a new 'xen-backend' module to allow individual XenDevice
implementations
This is a purely cosmetic patch that substitutes the old 'struct XenBlkDev'
name with 'XenBlockDataPlane' and 'blkdev' field/variable names with
'dataplane', and then does necessary fix-up to adhere to coding style.
No functional change.
Signed-off-by: Paul Durrant
Acked-by: Anthony Perard
---
This patch adds create and destroy function for XenBlockDevice-s so that
they can be created automatically when the Xen toolstack instantiates a new
PV backend via xenstore. When the XenBlockDevice is created this way it is
also necessary to create a 'drive' which matches the configuration that the
This backend has now been replaced by the 'xen-qdisk' XenDevice.
Signed-off-by: Paul Durrant
Acked-by: Anthony Perard
---
Cc: Kevin Wolf
Cc: Max Reitz
Cc: Stefano Stabellini
---
hw/block/Makefile.objs |1 -
hw/block/xen_disk.c| 1011
2 files c
This is a purely cosmetic patch that purges the name 'ioreq' from struct,
variable and field names. (This name has been problematic for a long time
as 'ioreq' is the name used for generic I/O requests coming from Xen).
The patch replaces 'struct ioreq' with a new 'XenBlockRequest' type and
'ioreq'
This is a purely cosmetic patch that purges remaining use of 'blk' and
'ioreq' in local function names, and then makes sure all functions are
prefixed with 'xen_block_'.
No functional change.
Signed-off-by: Paul Durrant
Acked-by: Anthony Perard
---
Cc: Stefano Stabellini
Cc: Stefan Hajnoczi
C
...and xen_backend.h to xen-legacy-backend.h
Rather than attempting to convert the existing backend infrastructure to
be QOM compliant (which would be hard to do in an incremental fashion),
subsequent patches will introduce a completely new framework for Xen PV
backends. Hence it is necessary to r
On 1/8/19 6:16 AM, Kevin Wolf wrote:
> Unconditionally setting optind = 1 looks fine. I would, however, quote a
> different part of the glibc man page (in addition or instead of the
> paragraph you already quoted):
>
> The variable optind is the index of the next element to be
> proces
This series introduces a new QOM compliant framework for Xen PV backends.
This is achieved by first moving the current non-compliant framework aside,
before building up a new framework incrementally.
This series was prompted by a thread [1] started by Kevin Wolf in response
to patches against xen_
A Xen PV frontend communicates its state to the PV backend by writing to
the 'state' key in the frontend area in xenstore. It is therefore
necessary for a XenDevice implementation to be notified whenever the
value of this key changes.
This patch adds code to do this as follows:
- an 'fd handler'
This patch adds the basic boilerplate for a 'XenBus' object that will act
as a parent to 'XenDevice' PV backends.
A new 'XenBridge' object is also added to connect XenBus to the system bus.
The XenBus object is instantiated by a new xen_bus_init() function called
from the same sites as the legacy
This patch adds a new source module, xen-bus-helper.c, which builds on
basic libxenstore primitives to provide functions to create (setting
permissions appropriately) and destroy xenstore areas, and functions to
'printf' and 'scanf' nodes therein. The main xen-bus code then uses
these primitives [1
Not all of the code duplicated from xen_disk.c is required as the basis for
the new dataplane implementation so this patch removes extraneous code,
along with the legacy #includes and calls to the legacy xen_pv_printf()
function. Error messages are changed to be reported using error_report().
NOTE
The new xen-block XenDevice implementation requires the same core
dataplane as the legacy xen_disk implementation it will eventually replace.
This patch therefore copies the legacy xen_disk.c source module into a new
dataplane/xen-block.c source module as the basis for the new dataplane and
adjusts
The legacy PV backend infrastructure provides functions to bind, unbind
and send notifications to event channnels. Similar functionality will be
required by XenDevice implementations so this patch adds the necessary
support.
Signed-off-by: Paul Durrant
Reviewed-by: Anthony Perard
---
Cc: Stefano
The legacy PV backend infrastructure provides functions to map, unmap and
copy pages granted by frontends. Similar functionality will be required
by XenDevice implementations so this patch adds the necessary support.
Signed-off-by: Paul Durrant
Reviewed-by: Anthony Perard
---
Cc: Stefano Stabell
This patch adds new XenDevice-s: 'xen-disk' and 'xen-cdrom', both derived
from a common 'xen-block' parent type. These will eventually replace the
'xen_disk' (note the underscore rather than hyphen) legacy PV backend but
it is illustrative to build up the implementation incrementally, along with
th
> I've tested your patch and it does seem like the best way forward. I'll
> squash it in. Do you want me to put your S-o-b on the combined patch?
You can, I'll have to add it anyway when I'll prepare the pull request.
Thanks,
--
Anthony PERARD
> -Original Message-
> From: Anthony PERARD [mailto:anthony.per...@citrix.com]
> Sent: 08 January 2019 13:28
> To: Paul Durrant
> Cc: 'Kevin Wolf' ; qemu-de...@nongnu.org; qemu-
> bl...@nongnu.org; xen-de...@lists.xenproject.org; Max Reitz
> ; Stefano Stabellini
> Subject: Re: [PATCH v7 1
> -Original Message-
> From: Xen-devel [mailto:xen-devel-boun...@lists.xenproject.org] On Behalf
> Of Paul Durrant
> Sent: 08 January 2019 14:11
> To: Anthony Perard
> Cc: 'Kevin Wolf' ; Stefano Stabellini
> ; qemu-block@nongnu.org; qemu-de...@nongnu.org;
> Max Reitz ; xen-de...@lists.xenp
> -Original Message-
> From: Anthony PERARD [mailto:anthony.per...@citrix.com]
> Sent: 08 January 2019 13:28
> To: Paul Durrant
> Cc: 'Kevin Wolf' ; qemu-de...@nongnu.org; qemu-
> bl...@nongnu.org; xen-de...@lists.xenproject.org; Max Reitz
> ; Stefano Stabellini
> Subject: Re: [PATCH v7 1
30.12.2018 23:09, Andrey Shinkevich wrote:
> The copy-on-read filter is applied to block-stream operation.
> It is necessary for further block discard option.
If we move to c-o-r filter in stream, I think we should:
1. get rid of COPY_ON_READ flag in stream code (so, this thing to be done in
one
On Tue 18 Dec 2018 08:57:45 AM CET, Anton Nefedov wrote:
> @@ -2126,24 +2202,33 @@ static coroutine_fn int
> qcow2_co_pwritev(BlockDriverState *bs, uint64_t offset,
> goto fail;
> }
>
> +qemu_co_mutex_unlock(&s->lock);
> +
> +ret = handle_alloc_space(bs, l2m
On Tue, Jan 08, 2019 at 01:07:49PM +, Paul Durrant wrote:
> > -Original Message-
> > From: Kevin Wolf [mailto:kw...@redhat.com]
> > Sent: 08 January 2019 12:53
> > To: Paul Durrant
> > Cc: Anthony Perard ; qemu-de...@nongnu.org;
> > qemu-block@nongnu.org; xen-de...@lists.xenproject.org
Vladimir Sementsov-Ogievskiy writes:
> Move to way of device selecting, however fall back to device name if
> path is not found.
>
> Signed-off-by: Vladimir Sementsov-Ogievskiy
> ---
> qapi/block-core.json | 4 ++--
> blockdev.c | 22 +++---
> 2 files changed, 17 inse
> -Original Message-
> From: Kevin Wolf [mailto:kw...@redhat.com]
> Sent: 08 January 2019 12:53
> To: Paul Durrant
> Cc: Anthony Perard ; qemu-de...@nongnu.org;
> qemu-block@nongnu.org; xen-de...@lists.xenproject.org; Max Reitz
> ; Stefano Stabellini
> Subject: Re: [PATCH v7 16/18] xen: a
Am 04.01.2019 um 17:40 hat Paul Durrant geschrieben:
> > -Original Message-
> > From: Anthony PERARD [mailto:anthony.per...@citrix.com]
> > Sent: 04 January 2019 16:31
> > To: Paul Durrant
> > Cc: qemu-de...@nongnu.org; qemu-block@nongnu.org; xen-
> > de...@lists.xenproject.org; Kevin Wolf
Am 03.01.2019 um 22:33 hat Leonid Bloch geschrieben:
> The lookup table for power-of-two sizes is now auto-generated during the
> build, and not hard-coded into the units.h file.
>
> This partially reverts commit 540b8492618eb.
>
> Signed-off-by: Leonid Bloch
During a downstream review, Max fou
Am 07.01.2019 um 19:40 hat Richard W.M. Jones geschrieben:
> On Mon, Jan 07, 2019 at 06:50:53PM +0100, Max Reitz wrote:
> [...]
>
> I don't particularly care how we fix this, but it breaks the nbdkit
> tests on FreeBSD so I am keen to fix it one way or another.
>
> > And if optreset not being ava
07.01.2019 15:52, Max Reitz wrote:
> On 24.12.18 16:50, Vladimir Sementsov-Ogievskiy wrote:
>> Hi all!
>>
>> bdrv_co_block_status digs bs->file for additional, more accurate search for
>> hole
>> inside region, reported as DATA by bs since long-ago
>>
>> commit 5daa74a6ebce7543aaad178c4061dc08
04.01.2019 2:21, Eric Blake wrote:
> On 12/21/18 3:35 AM, John Snow wrote:
>> The 'x' prefix was added because I was uncertain of the direction we'd
>> take for the libvirt API. With the general approach solidified, I feel
>> comfortable committing to this API for 4.0.
>>
>> Signed-off-by: John Sno
Copying our resident shell script guru Eric.
Leonid Bloch writes:
> The lookup table for power-of-two sizes is now auto-generated during the
> build, and not hard-coded into the units.h file.
>
> This partially reverts commit 540b8492618eb.
>
> Signed-off-by: Leonid Bloch
> ---
> .gitignore
68 matches
Mail list logo