01.12.2020 19:07, Vladimir Sementsov-Ogievskiy wrote:
I have an idea: instead of auditing each function callers, can we just make some
good assumptions (like that the whole offset/bytes request being aligned to
bs->request_alignement doesn't lay inside [0..INT64_MAX] region), check it o
ong, we'll have a crash and fix the bug.
30.04.2020 14:10, Vladimir Sementsov-Ogievskiy wrote:
Hi all!
We want 64bit write-zeroes, and for this, convert all io functions to
64bit.
We chose signed type, to be consistent with off_t (which is signed) and
with possibility for signed return type (wh
22.09.2020 21:11, Neal Gompa wrote:
On Tue, Sep 22, 2020 at 1:43 PM Daniel P. Berrangé wrote:
On Tue, Sep 22, 2020 at 01:09:06PM -0400, Neal Gompa wrote:
On Tue, Sep 22, 2020 at 12:16 PM Daniel P. Berrangé wrote:
2 years back I proposed dropping the sheepdog mailing list from the
Reviewed-by: Vladimir Sementsov-Ogievskiy
--
Best regards,
Vladimir
--
sheepdog mailing list
sheepdog@lists.wpkg.org
https://lists.wpkg.org/mailman/listinfo/sheepdog
. Berrangé
Reviewed-by: Vladimir Sementsov-Ogievskiy
--
Best regards,
Vladimir
--
sheepdog mailing list
sheepdog@lists.wpkg.org
https://lists.wpkg.org/mailman/listinfo/sheepdog
11.05.2020 21:34, Eric Blake wrote:
On 5/11/20 12:17 PM, Alberto Garcia wrote:
On Thu 30 Apr 2020 01:10:21 PM CEST, Vladimir Sementsov-Ogievskiy wrote:
compute 'int tail' via % 'int alignment' - safe
tail = (offset + bytes) % alignment;
both are int64_t, no chance of overflow here
22.05.2020 01:29, Eric Blake wrote:
On 4/30/20 6:10 AM, Vladimir Sementsov-Ogievskiy wrote:
We are generally moving to int64_t for both offset and bytes parameters
on all io paths.
Main motivation is realization of 64-bit write_zeroes operation for
fast zeroing large disk chunks, up
30.04.2020 14:10, Vladimir Sementsov-Ogievskiy wrote:
We are generally moving to int64_t for both offset and bytes parameters
on all io paths.
Main motivation is realization of 64-bit write_zeroes operation for
fast zeroing large disk chunks, up to the whole disk.
We chose signed type
: 64bit-block-status
Signed-off-by: Vladimir Sementsov-Ogievskiy
---
include/block/block_int.h | 2 +-
block/backup-top.c| 2 +-
block/blkdebug.c | 2 +-
block/blklogwrites.c | 4 ++--
block/blkreplay.c | 2 +-
block/copy-on-read.c | 2 +-
block/file-posix.c
) and
with possibility for signed return type (where negative value means
error).
So, convert now copy_range parameters which are already 64bit to signed
type.
Series: 64bit-block-status
Signed-off-by: Vladimir Sementsov-Ogievskiy
---
include/block/block.h | 6 +++---
include/block/block_int.h | 12
) and
with possibility for signed return type (where negative value means
error).
So, convert driver read handlers parameters which are already 64bit to
signed type.
While being here, convert also flags parameter to be BdrvRequestFlags.
Series: 64bit-block-status
Signed-off-by: Vladimir Sementsov-Ogievskiy
) and
with possibility for signed return type (where negative value means
error).
So, prepare bdrv_aligned_preadv() now.
Make byte variable in bdrv_padding_rmw_read() int64_t, as it defined
only to be passed to bdrv_aligned_preadv().
Series: 64bit-block-status
Signed-off-by: Vladimir Sementsov-Ogievskiy
---
block
) and
with possibility for signed return type (where negative value means
error).
So, convert driver copy_range handlers parameters which are already
64bit to signed type.
Series: 64bit-block-status
Signed-off-by: Vladimir Sementsov-Ogievskiy
---
include/block/block_int.h | 12 ++--
block/file-posix.c
.
Series: 64bit-block-status
Signed-off-by: Vladimir Sementsov-Ogievskiy
---
include/block/block_int.h | 2 +-
block/backup-top.c| 2 +-
block/blkdebug.c | 2 +-
block/blklogwrites.c | 4 ++--
block/blkreplay.c | 2 +-
block/copy-on-read.c | 2 +-
block/file
usage. Still, 64bit discard and write_zeroes (which
doesn't use QEMUIOVector) should work even on 32bit machines, not being
limited by max_transfer.
For now, we safe anyway, as all input goes through
bdrv_aligned_pwritev() and bdrv_aligned_preadv(), which are limiting
max_transfer to INT_MAX.
Series: 6
rather than 32-bit clamping, but it does not have
to happen here.
Series: 64bit-block-status
Signed-off-by: Vladimir Sementsov-Ogievskiy
Reviewed-by: Eric Blake
---
block/io.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/block/io.c b/block/io.c
index eeba3b828c
) and
with possibility for signed return type (where negative value means
error).
Now, when bdrv_co_preadv_part() and bdrv_co_pwritev_part() updated,
update all their wrappers.
Series: 64bit-block-status
Signed-off-by: Vladimir Sementsov-Ogievskiy
---
include/block/block.h | 11 ++-
include/block
) and
with possibility for signed return type (where negative value means
error).
So, convert driver write handlers parameters which are already 64bit to
signed type.
While being here, convert also flags parameter to be BdrvRequestFlags.
Series: 64bit-block-status
Signed-off-by: Vladimir Sementsov-Ogievskiy
) and
with possibility for signed return type (where negative value means
error).
So, prepare bdrv_co_preadv_part() and bdrv_co_pwritev_part() and their
remaining dependencies now.
Series: 64bit-block-status
Signed-off-by: Vladimir Sementsov-Ogievskiy
---
include/block/block_int.h | 4 ++--
block/io.c
) and
with possibility for signed return type (where negative value means
error).
Now bdrv layer is converted, convert blk layer too.
Series: 64bit-block-status
Signed-off-by: Vladimir Sementsov-Ogievskiy
---
include/sysemu/block-backend.h | 26 +++
block/block-backend.c | 60
) and
with possibility for signed return type (where negative value means
error).
So, prepare bdrv_aligned_pwritev() now and convert the dependencies:
bdrv_co_write_req_prepare() and bdrv_co_write_req_finish() to signed
type bytes.
Series: 64bit-block-status
Signed-off-by: Vladimir Sementsov-Ogievskiy
---
block
to do per iteration
So it looks like at present we are safe.
Series: 64bit-block-status
Signed-off-by: Vladimir Sementsov-Ogievskiy
Reviewed-by: Eric Blake
---
block/io.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/block/io.c b/block/io.c
index 20ebf3c536..7a7d
not introduce any 64-bit
gotchas once throttle_co_p{read,write}v are relaxed, and assuming
throttle_account() is not buggy.
Series: 64bit-block-status
Signed-off-by: Vladimir Sementsov-Ogievskiy
Reviewed-by: Eric Blake
---
include/block/throttle-groups.h | 2 +-
block/throttle-groups.c | 5
) and
with possibility for signed return type (where negative value means
error).
So, convert tracked requests now.
Series: 64bit-block-status
Signed-off-by: Vladimir Sementsov-Ogievskiy
Reviewed-by: Stefan Hajnoczi
Reviewed-by: Eric Blake
---
include/block/block_int.h | 4 ++--
block/io.c| 11
rv_co_write_req_prepare
09,10: simple rebase conflicts solved
Also, cover more drivers by driver-updating patches and fix int flags
to be BdrvRequestFlags flags.
Based-on: <20200427143907.5710-1-vsement...@virtuozzo.com>
Series: 64bit-block-status
Vladimir Sementsov-Ogievskiy
30.04.2020 1:04, Eric Blake wrote:
On 4/27/20 3:23 AM, Vladimir Sementsov-Ogievskiy wrote:
We are generally moving to int64_t for both offset and bytes parameters
on all io paths. Prepare bdrv_aligned_pwritev() now (and convert the
dependencies: bdrv_co_write_req_prepare
29.04.2020 18:50, Eric Blake wrote:
On 4/27/20 3:23 AM, Vladimir Sementsov-Ogievskiy wrote:
We are generally moving to int64_t for both offset and bytes parameters
on all io paths. Convert tracked requests now.
As mentioned elsewhere in the thread, this states 'what' but not 'why'; adding
29.04.2020 18:50, Eric Blake wrote:
On 4/27/20 3:23 AM, Vladimir Sementsov-Ogievskiy wrote:
We are generally moving to int64_t for both offset and bytes parameters
on all io paths. Convert tracked requests now.
As mentioned elsewhere in the thread, this states 'what' but not 'why'; adding
30.04.2020 8:30, Vladimir Sementsov-Ogievskiy wrote:
30.04.2020 8:25, Vladimir Sementsov-Ogievskiy wrote:
30.04.2020 1:04, Eric Blake wrote:
On 4/27/20 3:23 AM, Vladimir Sementsov-Ogievskiy wrote:
We are generally moving to int64_t for both offset and bytes parameters
on all io paths. Prepare
30.04.2020 8:25, Vladimir Sementsov-Ogievskiy wrote:
30.04.2020 1:04, Eric Blake wrote:
On 4/27/20 3:23 AM, Vladimir Sementsov-Ogievskiy wrote:
We are generally moving to int64_t for both offset and bytes parameters
on all io paths. Prepare bdrv_aligned_pwritev() now (and convert
30.04.2020 1:04, Eric Blake wrote:
On 4/27/20 3:23 AM, Vladimir Sementsov-Ogievskiy wrote:
We are generally moving to int64_t for both offset and bytes parameters
on all io paths. Prepare bdrv_aligned_pwritev() now (and convert the
dependencies: bdrv_co_write_req_prepare
29.04.2020 22:27, Eric Blake wrote:
On 4/27/20 3:23 AM, Vladimir Sementsov-Ogievskiy wrote:
We are generally moving to int64_t for both offset and bytes parameters
on all io paths. Convert bdrv_check_byte_request() now.
Signed-off-by: Vladimir Sementsov-Ogievskiy
---
block/io.c | 6
29.04.2020 0:33, Eric Blake wrote:
On 4/27/20 3:23 AM, Vladimir Sementsov-Ogievskiy wrote:
Hi all!
v1 was "[RFC 0/3] 64bit block-layer part I", please refer to initial
cover-letter
https://lists.gnu.org/archive/html/qemu-devel/2020-03/msg08723.html
for motivation.
v2:
patch 02 is
29.04.2020 1:09, Eric Blake wrote:
On 4/27/20 3:23 AM, Vladimir Sementsov-Ogievskiy wrote:
The function is called from 64bit io handlers, and bytes is just passed
to throttle_account() which is 64bit too (unsigned though). So, let's
convert intermediate argument to 64bit too.
My audit
Hmm. I definitely should rebase it onto "[PATCH for-5.0? 0/9] block/io: safer
inc/dec in_flight sections"...
27.04.2020 11:23, Vladimir Sementsov-Ogievskiy wrote:
Hi all!
v1 was "[RFC 0/3] 64bit block-layer part I", please refer to initial
cover-letter
https://lists.
27.04.2020 13:11, Philippe Mathieu-Daudé wrote:
On 4/27/20 10:23 AM, Vladimir Sementsov-Ogievskiy wrote:
We are generally moving to int64_t for both offset and bytes parameters
on all io paths. Convert tracked requests now.
This doesn't seem a strong justification... If I understand correctly
27.04.2020 11:23, Vladimir Sementsov-Ogievskiy wrote:
We are generally moving to int64_t for both offset and bytes parameters
on all io paths. Convert tracked requests now.
Signed-off-by: Vladimir Sementsov-Ogievskiy
Reviewed-by: Stefan Hajnoczi
---
include/block/block_int.h | 4
We are generally moving to int64_t for both offset and bytes parameters
on all io paths. Now bdrv layer is converted, convert blk layer too.
Signed-off-by: Vladimir Sementsov-Ogievskiy
---
include/sysemu/block-backend.h | 26 +++
block/block-backend.c | 60
We are generally moving to int64_t for both offset and bytes parameters
on all io paths. Convert driver write handlers parameters which are
already 64bit to signed type.
Signed-off-by: Vladimir Sementsov-Ogievskiy
---
include/block/block_int.h | 10 +-
block/backup-top.c| 3
We are generally moving to int64_t for both offset and bytes parameters
on all io paths. Prepare bdrv_aligned_preadv() now.
Make byte variable in bdrv_padding_rmw_read() int64_t, as it defined
only to be passed to bdrv_aligned_preadv().
Signed-off-by: Vladimir Sementsov-Ogievskiy
---
block
We are generally moving to int64_t for both offset and bytes parameters
on all io paths. Prepare bdrv_co_do_copy_on_readv() now.
Signed-off-by: Vladimir Sementsov-Ogievskiy
---
block/io.c | 6 +++---
block/trace-events | 2 +-
2 files changed, 4 insertions(+), 4 deletions(-)
diff --git
it is not obvious.
Signed-off-by: Vladimir Sementsov-Ogievskiy
---
include/block/block_int.h | 2 +-
block/backup-top.c| 2 +-
block/blkdebug.c | 2 +-
block/blklogwrites.c | 4 ++--
block/blkreplay.c | 2 +-
block/copy-on-read.c | 2 +-
block/file-posix.c
We are generally moving to int64_t for both offset and bytes parameters
on all io paths. Convert copy_range parameters which are already 64bit
to signed type.
Signed-off-by: Vladimir Sementsov-Ogievskiy
---
include/block/block.h | 6 +++---
include/block/block_int.h | 12
We are generally moving to int64_t for both offset and bytes parameters
on all io paths. Convert driver read handlers parameters which are
already 64bit to signed type.
Signed-off-by: Vladimir Sementsov-Ogievskiy
---
include/block/block_int.h | 6 +++---
block/backup-top.c| 2
it is not obvious.
Signed-off-by: Vladimir Sementsov-Ogievskiy
---
include/block/block_int.h | 2 +-
block/backup-top.c| 2 +-
block/blkdebug.c | 2 +-
block/blklogwrites.c | 4 ++--
block/blkreplay.c | 2 +-
block/copy-on-read.c | 2 +-
block/file
We are generally moving to int64_t for both offset and bytes parameters
on all io paths. Prepare bdrv_aligned_pwritev() now (and convert the
dependencies: bdrv_co_write_req_prepare() and
bdrv_co_write_req_finish() to signed type bytes)
Signed-off-by: Vladimir Sementsov-Ogievskiy
---
block/io.c
We are generally moving to int64_t for both offset and bytes parameters
on all io paths. Prepare bdrv_co_preadv_part() and
bdrv_co_pwritev_part() and their remaining dependencies now.
Signed-off-by: Vladimir Sementsov-Ogievskiy
---
include/block/block_int.h | 4 ++--
block/io.c
Now, when bdrv_co_preadv_part() and bdrv_co_pwritev_part() updated,
update all their wrappers.
Signed-off-by: Vladimir Sementsov-Ogievskiy
---
include/block/block.h | 10 +-
include/block/block_int.h | 4 ++--
block/blkverify.c | 2 +-
block/io.c| 17
ng
simple wrappers only in unobvious places. Still, if you consider it
risky, I can refactor it to use only wrappers as a first patch and
then update driver-by-driver, but it would be lot more patches, I'm
not sure it worth doing.
Vladimir Sementsov-Ogievskiy (17):
b
The function is called from 64bit io handlers, and bytes is just passed
to throttle_account() which is 64bit too (unsigned though). So, let's
convert intermediate argument to 64bit too.
Signed-off-by: Vladimir Sementsov-Ogievskiy
---
include/block/throttle-groups.h | 2 +-
block/throttle
We are generally moving to int64_t for both offset and bytes parameters
on all io paths. Prepare bdrv_co_do_pwrite_zeroes() now.
Signed-off-by: Vladimir Sementsov-Ogievskiy
---
block/io.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/block/io.c b/block/io.c
index
We are generally moving to int64_t for both offset and bytes parameters
on all io paths. Convert driver wrappers parameters which are
already 64bit to signed type.
Signed-off-by: Vladimir Sementsov-Ogievskiy
---
block/io.c | 8
1 file changed, 4 insertions(+), 4 deletions(-)
diff
We are generally moving to int64_t for both offset and bytes parameters
on all io paths. Convert bdrv_check_byte_request() now.
Signed-off-by: Vladimir Sementsov-Ogievskiy
---
block/io.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/block/io.c b/block/io.c
index
We are generally moving to int64_t for both offset and bytes parameters
on all io paths. Convert tracked requests now.
Signed-off-by: Vladimir Sementsov-Ogievskiy
Reviewed-by: Stefan Hajnoczi
---
include/block/block_int.h | 4 ++--
block/io.c| 11 ++-
2 files changed
05.02.2020 17:07, Eric Blake wrote:
On 2/5/20 1:51 AM, Vladimir Sementsov-Ogievskiy wrote:
+typedef enum {
+ /*
+ * bdrv_known_zeroes() should include this bit if the contents of
+ * a freshly-created image with no backing file reads as all
+ * zeroes without any additional
04.02.2020 20:42, Max Reitz wrote:
On 04.02.20 16:35, Vladimir Sementsov-Ogievskiy wrote:
31.01.2020 20:44, Eric Blake wrote:
Having two slightly-different function names for related purposes is
unwieldy, especially since I envision adding yet another notion of
zero support in an upcoming
31.01.2020 20:44, Eric Blake wrote:
Having two slightly-different function names for related purposes is
unwieldy, especially since I envision adding yet another notion of
zero support in an upcoming patch. It doesn't help that
bdrv_has_zero_init() is a misleading name (I originally thought
04.02.2020 18:49, Eric Blake wrote:
On 2/4/20 9:35 AM, Vladimir Sementsov-Ogievskiy wrote:
31.01.2020 20:44, Eric Blake wrote:
Having two slightly-different function names for related purposes is
unwieldy, especially since I envision adding yet another notion of
zero support in an upcoming
31.01.2020 20:44, Eric Blake wrote:
block_int.h claims that .bdrv_has_zero_init must return 0 if
.bdrv_has_zero_init_truncate does likewise; but this is violated if
Hmm, you changed this in patch 04..
only the former callback is provided if .bdrv_co_truncate also exists.
When adding the
05.12.2019 17:58, Vladimir Sementsov-Ogievskiy wrote:
> 05.12.2019 15:36, Markus Armbruster wrote:
>> Vladimir Sementsov-Ogievskiy writes:
>>
>>> 04.12.2019 17:59, Markus Armbruster wrote:
>>>> Vladimir Sementsov-Ogievskiy writes:
>>>>
&g
05.12.2019 15:36, Markus Armbruster wrote:
> Vladimir Sementsov-Ogievskiy writes:
>
>> 04.12.2019 17:59, Markus Armbruster wrote:
>>> Vladimir Sementsov-Ogievskiy writes:
>>>
>>>> Here is introduced ERRP_AUTO_PROPAGATE macro, to be used at start
04.12.2019 17:59, Markus Armbruster wrote:
> Vladimir Sementsov-Ogievskiy writes:
>
>> Here is introduced ERRP_AUTO_PROPAGATE macro, to be used at start of
>> functions with errp OUT parameter.
>>
>> It has three goals:
>>
>> 1. Fix issue with error_fat
28.11.2019 11:54, Markus Armbruster wrote:
> Please accept my sincere apologies for taking so long to reply. A few
> thoughts before I dig deeper.
>
> Vladimir Sementsov-Ogievskiy writes:
>
>> Hi all!
>>
>> At the request of Markus: full version of errp propag
that plan, hope someone will support
it.
08.11.2019 18:30, Vladimir Sementsov-Ogievskiy wrote:
> Finally, what is the plan?
>
> Markus what do you think?
>
> Now a lot of patches are reviewed, but a lot of are not.
>
> Is there any hope that all patches will be revi
12.11.2019 16:46, Cornelia Huck wrote:
> On Fri, 8 Nov 2019 22:57:25 +0400
> Marc-André Lureau wrote:
>
>> Hi
>>
>> On Fri, Nov 8, 2019 at 7:31 PM Vladimir Sementsov-Ogievskiy
>> wrote:
>>>
>>> Finally, what is the plan?
>>>
Finally, what is the plan?
Markus what do you think?
Now a lot of patches are reviewed, but a lot of are not.
Is there any hope that all patches will be reviewed? Should I resend the
whole series, or may be reduce it to reviewed subsystems only?
11.10.2019 19:03, Vladimir Sementsov-Ogievskiy
66 matches
Mail list logo