Signed-off-by: Manos Pitsidianakis <el13...@mail.ntua.gr>
---
tests/qemu-iotests/184 | 237 +
tests/qemu-iotests/184.out | 319 +
tests/qemu-iotests/group | 1 +
3 files changed, 557 insertions(+)
creat
This is needed to configure throttle filter driver nodes with QAPI.
Signed-off-by: Manos Pitsidianakis <el13...@mail.ntua.gr>
---
qapi/block-core.json | 20 +++-
1 file changed, 19 insertions(+), 1 deletion(-)
diff --git a/qapi/block-core.json b/qapi/block-core.json
. This is done by gathering ThrottleGroup membership
details from BlockBackendPublic into ThrottleGroupMember and refactoring
existing code to use the structure.
Reviewed-by: Stefan Hajnoczi <stefa...@redhat.com>
Signed-off-by: Manos Pitsidianakis <el13...@mail.ntua.gr>
---
block/blo
Move the CoMutex and CoQueue inits inside throttle_group_register_tgm()
which is called whenever a ThrottleGroupMember is initialized. There's
no need for them to be separate.
Reviewed-by: Stefan Hajnoczi <stefa...@redhat.com>
Signed-off-by: Manos Pitsidianakis <el13...@mail.ntua.gr>
-obj-y += throttle.o
block-obj-y += crypto.o
diff --git a/block/throttle.c b/block/throttle.c
new file mode 100644
index 00..f3395462fb
--- /dev/null
+++ b/block/throttle.c
@@ -0,0 +1,395 @@
+/*
+ * QEMU block throttling filter driver infrastructure
+ *
+ * Copyright (c) 2017 Manos Pitsidi
com>
Signed-off-by: Manos Pitsidianakis <el13...@mail.ntua.gr>
---
block/block-backend.c | 15 +-
block/throttle-groups.c | 38 -
include/block/throttle-groups.h | 7 -
tests/test-throttle.c
'
v2:
change QOM throttle group object name
print valid ranges for uint on error
move frees in throttle_group_obj_finalize()
split throttle_group_{set,get}()
add throttle_recurse_is_first_non_filter()
Manos Pitsidianakis (7):
block: move ThrottleGroup membership to ThrottleGroupMember
{
"iops-total" : 99
}
}
}
This also means a group's configuration can be fetched with qom-get.
ThrottleGroups can be anonymous which means they can't get accessed by
other users ie they will always be units instead of group (Because they
have one ThrottleGroupM
On Fri, Jul 28, 2017 at 02:08:43PM +0200, Kevin Wolf wrote:
Am 27.07.2017 um 12:07 hat Stefan Hajnoczi geschrieben:
On Wed, Jul 26, 2017 at 09:23:20PM +0300, Manos Pitsidianakis wrote:
> On Wed, Jul 26, 2017 at 04:12:21PM +0100, Stefan Hajnoczi wrote:
> > On Wed, Jul 26, 2017 at 0
On Wed, Aug 02, 2017 at 11:39:22AM +0100, Stefan Hajnoczi wrote:
On Tue, Aug 01, 2017 at 07:49:33PM +0300, Manos Pitsidianakis wrote:
On Tue, Aug 01, 2017 at 04:47:03PM +0100, Stefan Hajnoczi wrote:
> On Mon, Jul 31, 2017 at 12:54:40PM +0300, Manos Pitsidianakis wrote:
> > Thro
On Wed, Aug 02, 2017 at 11:07:24AM +0100, Stefan Hajnoczi wrote:
On Tue, Aug 01, 2017 at 04:49:07PM +0300, Manos Pitsidianakis wrote:
diff --git a/block.c b/block.c
index 9ebdba28b0..c6aad25286 100644
--- a/block.c
+++ b/block.c
@@ -1975,6 +1975,7 @@ BdrvChild *bdrv_root_attach_child
On Thu, Aug 03, 2017 at 03:32:58PM +0200, Kevin Wolf wrote:
Am 03.08.2017 um 15:24 hat Manos Pitsidianakis geschrieben:
On Thu, Aug 03, 2017 at 10:07:50AM +0200, Kevin Wolf wrote:
> Am 31.07.2017 um 11:54 hat Manos Pitsidianakis geschrieben:
> > Signed-off-by: Manos Pitsidiana
On Thu, Aug 03, 2017 at 10:07:41AM +0200, Kevin Wolf wrote:
Am 31.07.2017 um 11:54 hat Manos Pitsidianakis geschrieben:
+/* Extract ThrottleConfig options. Assumes cfg is initialized and will be
+ * checked for validity.
+ */
+static int throttle_extract_options(QemuOpts *opts, ThrottleConfig
On Thu, Aug 03, 2017 at 10:07:50AM +0200, Kevin Wolf wrote:
Am 31.07.2017 um 11:54 hat Manos Pitsidianakis geschrieben:
Signed-off-by: Manos Pitsidianakis <el13...@mail.ntua.gr>
I would add at least two more cases:
* Both limits and throttle-group are given in blockdev-add
This
On Tue, Aug 15, 2017 at 05:12:42PM -0500, Eric Blake wrote:
On 08/15/2017 02:45 AM, Manos Pitsidianakis wrote:
block-insert-node and its pair command block-remove-node provide runtime
insertion and removal of filter nodes.
block-insert-node takes a (parent, child) and (node, child) pair
-threshold) to using the filter driver.
Based-on: <20170809140256.25584-1-el13...@mail.ntua.gr>
Manos Pitsidianakis (2):
block: use internal filter node in backup
block: add filter driver to block/write-threshold.c
block.c | 89 --
block/ba
BdrvChildRole.
This is a different approach than x-blockdev-change which uses the driver
methods bdrv_add_child() and bdrv_del_child(),
Signed-off-by: Manos Pitsidianakis <el13...@mail.ntua.gr>
---
block.c| 192
blockdev.c | 44 ++
include/block/b
into the block layer. Block filter drivers are inserted into the graph
only when a feature is needed. This makes the block layer more modular
and reuses the block driver abstraction that is already present.
Signed-off-by: Manos Pitsidianakis <el13...@mail.ntua.gr>
---
block.c
present.
Signed-off-by: Manos Pitsidianakis <el13...@mail.ntua.gr>
---
block/qapi.c| 2 +-
block/write-threshold.c | 264 +++-
include/block/write-threshold.h | 22 ++--
qapi/block-core.json| 19 ++-
tests/test
On Tue, Aug 15, 2017 at 03:24:38PM +0200, Alberto Garcia wrote:
On Wed 09 Aug 2017 04:02:51 PM CEST, Manos Pitsidianakis wrote:
@@ -2988,6 +3004,9 @@ void qmp_block_stream(bool has_job_id, const char
*job_id, const char *device,
return;
}
+/* Skip implicit filter nodes
On Wed, Aug 09, 2017 at 01:07:32PM +0300, Manos Pitsidianakis wrote:
+static int coroutine_fn throttle_co_preadv(BlockDriverState *bs,
+ uint64_t offset, uint64_t bytes,
+ QEMUIOVector *qiov, int flags
On Thu, Aug 10, 2017 at 03:54:02PM +0200, Alberto Garcia wrote:
On Wed 09 Aug 2017 12:07:32 PM CEST, Manos Pitsidianakis wrote:
+/* Extract ThrottleConfig options. Assumes cfg is initialized and will be
+ * checked for validity.
+ *
+ * Returns -1 and sets errp if a burst_length value is over
On Wed, Aug 09, 2017 at 05:39:42PM +0200, Kevin Wolf wrote:
Am 09.08.2017 um 16:45 hat Alberto Garcia geschrieben:
On Wed 09 Aug 2017 03:42:07 PM CEST, Manos Pitsidianakis wrote:
> On Wed, Aug 09, 2017 at 02:36:20PM +0200, Alberto Garcia wrote:
>>On Wed 09 Aug 2017 11:36:12 AM CE
On Wed, Jul 12, 2017 at 09:49:20AM +0200, Markus Armbruster wrote:
Manos Pitsidianakis <el13...@mail.ntua.gr> writes:
This series makes implementing some of the bdrv_* callbacks easier for block
filters by passing requests to bs->file if bs->drv doesn't implement it instea
On Wed, Jul 12, 2017 at 10:33:37AM +0200, Kevin Wolf wrote:
Am 11.07.2017 um 20:50 hat Manos Pitsidianakis geschrieben:
On Tue, Jul 11, 2017 at 05:16:17PM +0200, Kevin Wolf wrote:
>Am 01.07.2017 um 17:39 hat Manos Pitsidianakis geschrieben:
>>bdrv_open_driver() is called in t
edhat.com>
Signed-off-by: Manos Pitsidianakis <el13...@mail.ntua.gr>
---
block.c | 21 +++--
include/block/block_int.h | 6 +-
2 files changed, 24 insertions(+), 3 deletions(-)
diff --git a/block.c b/block.c
index d24ae85868..dd409bfb5b 100644
--- a/b
octl()
new patch: remove duplicate code from block/raw-format.c
Manos Pitsidianakis (4):
block: pass bdrv_* methods to bs->file by default in block filters
block: remove unused bdrv_media_changed
block: remove bdrv_truncate callback in blkdebug
block: add default implementations for bdr
edhat.com>
Reviewed-by: Eric Blake <ebl...@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefa...@redhat.com>
Reviewed-by: Kevin Wolf <kw...@redhat.com>
Signed-off-by: Manos Pitsidianakis <el13...@mail.ntua.gr>
---
block/blkdebug.c | 12 +---
block/commit.c
i <stefa...@redhat.com>
Signed-off-by: Manos Pitsidianakis <el13...@mail.ntua.gr>
---
block.c | 14 --
block/raw-format.c| 6 --
include/block/block.h | 1 -
include/block/block_int.h | 1 -
4 files changed, 22 deletions(-)
diff --git a/
d-by: Stefan Hajnoczi <stefa...@redhat.com>
Signed-off-by: Manos Pitsidianakis <el13...@mail.ntua.gr>
---
block/blkdebug.c | 8 +---
1 file changed, 1 insertion(+), 7 deletions(-)
diff --git a/block/blkdebug.c b/block/blkdebug.c
index c19ab28f07..91ffd1fe12 100644
--- a/bloc
v3:
new commit: block: fix dangling bs->explicit_options in block.c
rework error paths in bdrv_open_driver()
v2:
move bdrv_unref_child(bs, bs->file) to bdrv_open_driver
do not set bs->drv to NULL if open succeeds
Manos Pitsidianakis (2):
block: fix dangling bs->explicit_option
On Fri, Jul 14, 2017 at 09:42:22AM -0500, Eric Blake wrote:
On 07/14/2017 09:35 AM, Manos Pitsidianakis wrote:
In some error paths it is possible to QDECREF a freed dangling
explicit_options, resulting in a heap overflow crash. For example
bdrv_open_inherit()'s fail unrefs it, then calls
If open succeeds but we fail after, return the error and let callers
unref and delete their bs, while cleaning up their allocations.
Signed-off-by: Manos Pitsidianakis <el13...@mail.ntua.gr>
---
block.c | 24
1 file changed, 12 insertions(+), 12 deletions(-)
diff -
In some error paths it is possible to QDECREF a freed dangling
explicit_options, resulting in a heap overflow crash. For example
bdrv_open_inherit()'s fail unrefs it, then calls bdrv_unref which calls
bdrv_close which also unrefs it.
Signed-off-by: Manos Pitsidianakis <el13...@mail.ntua
edhat.com>
Reviewed-by: Eric Blake <ebl...@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefa...@redhat.com>
Reviewed-by: Kevin Wolf <kw...@redhat.com>
Signed-off-by: Manos Pitsidianakis <el13...@mail.ntua.gr>
---
block/blkdebug.c | 12 +---
block/commit.c
Now that bdrv_truncate is passed to bs->file by default, remove the
callback from block/blkdebug.c and set is_filter to true.
Signed-off-by: Manos Pitsidianakis <el13...@mail.ntua.gr>
---
block/blkdebug.c | 7 +--
1 file changed, 1 insertion(+), 6 deletions(-)
diff --git a/block/b
ithout implementing them. This
commit makes `drv->is_filter = true` imply that these callbacks will be
forwarded to bs->file by default, so disabling support for these
functions must be done explicitly.
Signed-off-by: Manos Pitsidianakis <el13...@mail.ntua.gr>
---
block.c
On Tue, Jul 11, 2017 at 05:16:17PM +0200, Kevin Wolf wrote:
Am 01.07.2017 um 17:39 hat Manos Pitsidianakis geschrieben:
bdrv_open_driver() is called in two places, bdrv_new_open_driver() and
bdrv_open_common(). In the latter, failure cleanup in is in its caller,
bdrv_open_inherit(), which
Is there a specific reason this patch wasn't finished? If I'm not wrong
using non-scalar properties with -object is still not possible, yet
would be a very useful feature for drivers with UserCreatable objects.
Archive link since this is an old patch:
On Fri, Jul 07, 2017 at 11:28:15AM +0200, Kevin Wolf wrote:
Am 29.06.2017 um 22:06 hat Manos Pitsidianakis geschrieben:
On Thu, Jun 29, 2017 at 03:57:49PM +0200, Kevin Wolf wrote:
>Am 29.06.2017 um 14:07 hat Manos Pitsidianakis geschrieben:
>>On Thu, Jun 29, 2017 at 01:18:24PM +0200, K
On Wed, Jul 12, 2017 at 05:15:01PM +0200, Kevin Wolf wrote:
Am 12.07.2017 um 09:41 hat Markus Armbruster geschrieben:
Eric Blake <ebl...@redhat.com> writes:
> On 07/11/2017 11:37 AM, Manos Pitsidianakis wrote:
>> This function is not used anywhere, so remove it.
>>
>
estion
new patch: remove bdrv_truncate method from blkdebug
v2:
do not pass to bs->file if bs->drv is NULL
move bs->file check outside of bdrv_inc_in_flight() area in bdrv_co_ioctl()
new patch: remove duplicate code from block/raw-format.c
Manos Pitsidianakis (4):
block: pass bdrv_
This function is not used anywhere, so remove it.
Signed-off-by: Manos Pitsidianakis <el13...@mail.ntua.gr>
---
block.c | 14 --
block/raw-format.c| 6 --
include/block/block.h | 1 -
include/block/block_int.h | 1 -
4 files changed, 22 del
On Tue, Jul 11, 2017 at 03:49:50PM +0100, Daniel P. Berrange wrote:
On Tue, Jul 11, 2017 at 04:44:46PM +0200, Markus Armbruster wrote:
Markus Armbruster <arm...@redhat.com> writes:
> Manos Pitsidianakis <el13...@mail.ntua.gr> writes:
>
>> Is there a specific reason th
edhat.com>
Reviewed-by: Eric Blake <ebl...@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefa...@redhat.com>
Reviewed-by: Kevin Wolf <kw...@redhat.com>
Signed-off-by: Manos Pitsidianakis <el13...@mail.ntua.gr>
Reviewed-by: Stefan Hajnoczi <stefa...@redhat.c
remove bdrv_truncate method from blkdebug
v2:
do not pass to bs->file if bs->drv is NULL
move bs->file check outside of bdrv_inc_in_flight() area in bdrv_co_ioctl()
new patch: remove duplicate code from block/raw-format.c
Manos Pitsidianakis (4):
block: pass bdrv_* methods to bs-&
i <stefa...@redhat.com>
Signed-off-by: Manos Pitsidianakis <el13...@mail.ntua.gr>
---
block.c | 14 --
block/raw-format.c| 6 --
include/block/block.h | 1 -
include/block/block_int.h | 1 -
4 files changed, 22 deletions(-)
diff --git a/
edhat.com>
Signed-off-by: Manos Pitsidianakis <el13...@mail.ntua.gr>
---
block.c | 21 +++--
include/block/block_int.h | 6 +-
2 files changed, 24 insertions(+), 3 deletions(-)
diff --git a/block.c b/block.c
index d24ae85868..892f29d231 100644
--- a/b
Now that bdrv_truncate is passed to bs->file by default, remove the
callback from block/blkdebug.c and set is_filter to true.
Reviewed-by: Eric Blake <ebl...@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefa...@redhat.com>
Signed-off-by: Manos Pitsidianakis <el13...@mail.n
On Thu, Jul 13, 2017 at 06:23:14AM -0500, Eric Blake wrote:
On 07/13/2017 05:01 AM, Manos Pitsidianakis wrote:
The following functions fail if bs->drv is a filter and does not
implement them:
bdrv_probe_blocksizes
bdrv_probe_geometry
bdrv_truncate
bdrv_has_zero_init
bdrv_get_info
Inst
This is needed to configure throttle filter driver nodes with QAPI.
Signed-off-by: Manos Pitsidianakis <el13...@mail.ntua.gr>
---
qapi/block-core.json | 20 +++-
1 file changed, 19 insertions(+), 1 deletion(-)
diff --git a/qapi/block-core.json b/qapi/block-core.json
Signed-off-by: Manos Pitsidianakis <el13...@mail.ntua.gr>
---
tests/qemu-iotests/184 | 237 +
tests/qemu-iotests/184.out | 319 +
tests/qemu-iotests/group | 1 +
3 files changed, 557 insertions(+)
creat
timer_cb() needs to know about the current Aio context of the throttle
request that is woken up. In order to make ThrottleGroupMember backend
agnostic, this information is stored in an aio_context field instead of
accessing it from BlockBackend.
Signed-off-by: Manos Pitsidianakis <e
. This is done by gathering ThrottleGroup membership
details from BlockBackendPublic into ThrottleGroupMember and refactoring
existing code to use the structure.
Signed-off-by: Manos Pitsidianakis <el13...@mail.ntua.gr>
---
Notes:
Dropped R-b because I changed some of the comments (remov
configurations (throttling at any point in the graph, chained filters)
There's also the question of how filter drivers affect the rest of the block
layer, especially live block jobs. This won't be tackled in this series though.
Manos Pitsidianakis (7):
block: move ThrottleGroup membership
{
"iops-total" : 99
}
}
}
This also means a group's configuration can be fetched with qom-get.
ThrottleGroups can be anonymous which means they can't get accessed by
other users ie they will always be units instead of group (Because they
have one ThrottleGroupMe
Move the CoMutex and CoQueue inits inside throttle_group_register_tgm()
which is called whenever a ThrottleGroupMember is initialized. There's
no need for them to be separate.
Signed-off-by: Manos Pitsidianakis <el13...@mail.ntua.gr>
---
block/block-backend.c | 3 ---
block/throttle-gr
-obj-y += throttle.o
block-obj-y += crypto.o
diff --git a/block/throttle.c b/block/throttle.c
new file mode 100644
index 00..5665ccd8b5
--- /dev/null
+++ b/block/throttle.c
@@ -0,0 +1,345 @@
+/*
+ * QEMU block throttling filter driver infrastructure
+ *
+ * Copyright (c) 2017 Manos Pitsidi
On Fri, Jul 14, 2017 at 12:45:19PM +0300, Manos Pitsidianakis wrote:
+static BlockDriver bdrv_throttle = {
+.format_name= "throttle",
+.protocol_name = "throttle",
+.instance_size = sizeof
patch is
not in the list archives either).
Reviewed-by: Manos Pitsidianakis <el13...@mail.ntua.gr>
signature.asc
Description: PGP signature
ting README that ./check runs just the raw
format but it might be a good idea to mention that it's the default in
the Howto as well. For this patch though:
Reviewed-by: Manos Pitsidianakis <el13...@mail.ntua.gr>
While we're on the topic of qemu-iotests, it'd be a nice thing to
parallelize the tests with a Makefile.
signature.asc
Description: PGP signature
On Mon, Jul 24, 2017 at 04:12:47PM +0100, Stefan Hajnoczi wrote:
On Fri, Jul 14, 2017 at 12:45:18PM +0300, Manos Pitsidianakis wrote:
ThrottleGroup is converted to an object. This will allow the future
throttle block filter drive easy creation and configuration of throttle
groups in QMP and cli
On Tue, Jul 25, 2017 at 05:09:41PM +0100, Stefan Hajnoczi wrote:
On Tue, Jul 25, 2017 at 01:29:08PM +0300, Manos Pitsidianakis wrote:
On Mon, Jul 24, 2017 at 04:12:47PM +0100, Stefan Hajnoczi wrote:
> On Fri, Jul 14, 2017 at 12:45:18PM +0300, Manos Pitsidianakis wrote:
> > Thro
On Thu, Jul 27, 2017 at 06:09:04PM -0400, John Snow wrote:
On 07/26/2017 02:23 PM, Manos Pitsidianakis wrote:
On Wed, Jul 26, 2017 at 04:12:21PM +0100, Stefan Hajnoczi wrote:
On Wed, Jul 26, 2017 at 05:19:24PM +0300, Manos Pitsidianakis wrote:
This proposal follows a discussion we had
This proposal follows a discussion we had with Kevin and Stefan on
filter node management.
With block filter drivers arises a need to configure filter nodes on
runtime with QMP on live graphs. A problem with doing live graph
modifications is that some block jobs modify the graph when they are
On Wed, Jul 26, 2017 at 04:12:21PM +0100, Stefan Hajnoczi wrote:
On Wed, Jul 26, 2017 at 05:19:24PM +0300, Manos Pitsidianakis wrote:
This proposal follows a discussion we had with Kevin and Stefan on filter
node management.
With block filter drivers arises a need to configure filter nodes
{
"iops-total" : 99
}
}
}
This also means a group's configuration can be fetched with qom-get.
ThrottleGroups can be anonymous which means they can't get accessed by
other users ie they will always be units instead of group (Because they
have one ThrottleGroupM
Move the CoMutex and CoQueue inits inside throttle_group_register_tgm()
which is called whenever a ThrottleGroupMember is initialized. There's
no need for them to be separate.
Reviewed-by: Stefan Hajnoczi <stefa...@redhat.com>
Signed-off-by: Manos Pitsidianakis <el13...@mail.ntua.gr>
for uint on error
move frees in throttle_group_obj_finalize()
split throttle_group_{set,get}()
add throttle_recurse_is_first_non_filter()
Manos Pitsidianakis (7):
block: move ThrottleGroup membership to ThrottleGroupMember
block: add aio_context field in ThrottleGroupMember
block: tidy
. This is done by gathering ThrottleGroup membership
details from BlockBackendPublic into ThrottleGroupMember and refactoring
existing code to use the structure.
Reviewed-by: Stefan Hajnoczi <stefa...@redhat.com>
Signed-off-by: Manos Pitsidianakis <el13...@mail.ntua.gr>
---
block/blo
Signed-off-by: Manos Pitsidianakis <el13...@mail.ntua.gr>
---
tests/qemu-iotests/184 | 237 +
tests/qemu-iotests/184.out | 319 +
tests/qemu-iotests/group | 1 +
3 files changed, 557 insertions(+)
creat
This is needed to configure throttle filter driver nodes with QAPI.
Signed-off-by: Manos Pitsidianakis <el13...@mail.ntua.gr>
---
qapi/block-core.json | 20 +++-
1 file changed, 19 insertions(+), 1 deletion(-)
diff --git a/qapi/block-core.json b/qapi/block-core.json
-obj-y += throttle.o
block-obj-y += crypto.o
diff --git a/block/throttle.c b/block/throttle.c
new file mode 100644
index 00..f3395462fb
--- /dev/null
+++ b/block/throttle.c
@@ -0,0 +1,395 @@
+/*
+ * QEMU block throttling filter driver infrastructure
+ *
+ * Copyright (c) 2017 Manos Pitsidi
com>
Signed-off-by: Manos Pitsidianakis <el13...@mail.ntua.gr>
---
block/block-backend.c | 14 -
block/throttle-groups.c | 38 -
include/block/throttle-groups.h | 7 -
tests/test-throttle.c | 63 +---
off-by: Manos Pitsidianakis <el13...@mail.ntua.gr>
---
block.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/block.c b/block.c
index 694396281b..aeacd520e0 100644
--- a/block.c
+++ b/block.c
@@ -1165,6 +1165,9 @@ BlockDriverState *bdrv_new_open_driver(BlockDriver *drv,
const char *
Now that passing the call to bs->file is the default for some bdrv_*
callbacks, remove the duplicate implementations in block/raw-format.c
Signed-off-by: Manos Pitsidianakis <el13...@mail.ntua.gr>
---
block/raw-format.c | 32 +---
1 file changed, 1 inserti
On Thu, Jun 29, 2017 at 03:57:49PM +0200, Kevin Wolf wrote:
Am 29.06.2017 um 14:07 hat Manos Pitsidianakis geschrieben:
On Thu, Jun 29, 2017 at 01:18:24PM +0200, Kevin Wolf wrote:
>Am 29.06.2017 um 08:03 hat Manos Pitsidianakis geschrieben:
>>bdrv_open_driver() is called in t
filter drivers to support those methods without implementing them.
Signed-off-by: Manos Pitsidianakis <el13...@mail.ntua.gr>
---
block.c| 27 +--
block/io.c | 5 +
2 files changed, 30 insertions(+), 2 deletions(-)
diff --git a/block.c b/block.c
index 694396
<stefa...@redhat.com>
Signed-off-by: Manos Pitsidianakis <el13...@mail.ntua.gr>
---
block/blkdebug.c | 12 +---
block/commit.c| 12 +---
block/io.c| 24
block/mirror.c| 12 +---
include/bloc
commit
0dd2ec6bc46bd93ea0b9df602962883417f31400
v2:
do not pass to bs->file if bs->drv is NULL
move bs->file check outside of bdrv_inc_in_flight() area in bdrv_co_ioctl()
new patch: remove duplicate code from block/raw-format.c
Manos Pitsidianakis (3):
block: pass bdrv_* methods to bs-&
e care of all
callers and do not set bs->drv to NULL unless the driver's open function
failed. When bs is destroyed by removing its last reference, bdrv_close()
checks bs->drv to perform the needed cleanups and also call the driver's close
function.
Signed-off-by: Manos Pitsidianakis <el13.
-by: Manos Pitsidianakis <el13...@mail.ntua.gr>
---
block/throttle-groups.c | 20 ++--
fsdev/qemu-fsdev-throttle.c | 2 +-
include/qemu/throttle.h | 1 +
tests/test-throttle.c | 4 ++--
util/throttle.c | 4 +++-
5 files changed, 17 insertions(
requests will follow the new configuration. This
also allows a throttle group's configuration to be changed even when it
has no members.
Signed-off-by: Manos Pitsidianakis <el13...@mail.ntua.gr>
---
block/throttle-groups.c | 10 +-
fsdev/qemu-fsdev-throttle.c | 2 +-
includ
Since in the future ThrottleGroup configuration will be done even if it
has no members, we need to separate the two.
Manos Pitsidianakis (2):
block: add clock_type field to ThrottleGroup
block: remove timer canceling in throttle_config()
block/throttle-groups.c | 27
filter drivers to support those methods without implementing them.
Reviewed-by: Eric Blake <ebl...@redhat.com>
Signed-off-by: Manos Pitsidianakis <el13...@mail.ntua.gr>
---
block.c| 27 +--
block/io.c | 5 +
2 files changed, 30 insertions(+), 2 deleti
Now that passing the call to bs->file is the default for some bdrv_*
callbacks, remove the duplicate implementations in block/raw-format.c
Reviewed-by: Eric Blake <ebl...@redhat.com>
Signed-off-by: Manos Pitsidianakis <el13...@mail.ntua.gr>
---
block/ra
edhat.com>
Reviewed-by: Eric Blake <ebl...@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefa...@redhat.com>
Signed-off-by: Manos Pitsidianakis <el13...@mail.ntua.gr>
---
block/blkdebug.c | 12 +---
block/commit.c| 12 +---
duplicate code from block/raw-format.c
Manos Pitsidianakis (4):
block: Pass bdrv_* methods to bs->file by default
block: Use defaults of bdrv_* callbacks in raw
block: Remove bdrv_truncate callback in blkdebug
block: Add default implementations for bdrv_co_get_block_status()
block.c
Now that bdrv_truncate is passed to bs->file by default, remove the
callback from block/blkdebug.c
Signed-off-by: Manos Pitsidianakis <el13...@mail.ntua.gr>
---
block/blkdebug.c | 6 --
1 file changed, 6 deletions(-)
diff --git a/block/blkdebug.c b/block/blkdebug.c
index b25856c4.
On Mon, Jul 03, 2017 at 12:51:45PM -0500, Eric Blake wrote:
On 07/03/2017 11:12 AM, Eric Blake wrote:
On 06/29/2017 01:43 PM, Manos Pitsidianakis wrote:
bdrv_co_get_block_status_from_file() and
bdrv_co_get_block_status_from_backing() set *file to bs->file and
bs->backing respective
On Tue, Jun 27, 2017 at 01:45:40PM +0100, Stefan Hajnoczi wrote:
On Mon, Jun 26, 2017 at 07:26:41PM +0300, Manos Pitsidianakis wrote:
On Mon, Jun 26, 2017 at 03:30:55PM +0100, Stefan Hajnoczi wrote:
> > +bs->file = bdrv_open_child(NULL, optio
On Thu, Jun 29, 2017 at 01:18:24PM +0200, Kevin Wolf wrote:
Am 29.06.2017 um 08:03 hat Manos Pitsidianakis geschrieben:
bdrv_open_driver() is called in two places, bdrv_new_open_driver() and
bdrv_open_common(). In the latter, failure cleanup in is in its caller,
bdrv_open_inherit(), which
On Wed, Jun 28, 2017 at 03:35:48PM +0200, Alberto Garcia wrote:
On Fri 23 Jun 2017 02:46:57 PM CEST, Manos Pitsidianakis wrote:
+# @BlockdevOptionsThrottle:
+#
+# Driver specific block device options for Throttle
+#
I would put this earlier in the json file, together with the rest
On Wed, Jun 28, 2017 at 03:42:41PM +0200, Alberto Garcia wrote:
On Fri 23 Jun 2017 02:46:58 PM CEST, Manos Pitsidianakis wrote:
BlockDriverState *bdrv_new_open_driver(BlockDriver *drv, const char *node_name,
- int flags, Error **errp
On Wed, Jun 28, 2017 at 05:36:54PM +0200, Kevin Wolf wrote:
Am 28.06.2017 um 17:22 hat Manos Pitsidianakis geschrieben:
Since we're moving groups to QOM we will need ids for each group.
Can objects be anonymous?
Hm, that's a good question. But object_new() doesn't take an ID, so I
think
On Wed, Jun 28, 2017 at 04:40:12PM +0200, Kevin Wolf wrote:
Am 23.06.2017 um 14:46 hat Manos Pitsidianakis geschrieben:
block/throttle.c uses existing I/O throttle infrastructure inside a
block filter driver. I/O operations are intercepted in the filter's
read/write coroutines, and referred
filter drivers to support those methods without implementing them.
Signed-off-by: Manos Pitsidianakis <el13...@mail.ntua.gr>
---
block.c| 45 ++---
block/io.c | 4
2 files changed, 38 insertions(+), 11 deletions(-)
diff --git a/block.c b/b
bdrv_co_get_block_status_from_file() and
bdrv_co_get_block_status_from_backing() set *file to bs->file and
bs->backing respectively, so that bdrv_co_get_block_status() can recurse
to them. Future block drivers won't have to duplicate code to implement
this.
Signed-off-by: Manos Pitsidi
commit
0dd2ec6bc46bd93ea0b9df602962883417f31400
Manos Pitsidianakis (2):
block: pass bdrv_* methods to bs->file by default
block: add default implementations for bdrv_co_get_block_status()
block.c | 45 ++---
block/blkdebug.c
group object name
print valid ranges for uint on error
move frees in throttle_group_obj_finalize()
split throttle_group_{set,get}()
add throttle_recurse_is_first_non_filter()
Manos Pitsidianakis (7):
block: move ThrottleGroup membership to ThrottleGroupMember
block: add aio_context
1 - 100 of 271 matches
Mail list logo