mbox series

[v3,for-4.2,0/3] block: BDRV_REQ_PREFETCH

Message ID 20190725100550.33801-1-vsementsov@virtuozzo.com (mailing list archive)
Headers show
Series block: BDRV_REQ_PREFETCH | expand

Message

Vladimir Sementsov-Ogievskiy July 25, 2019, 10:05 a.m. UTC
Hi all!

Here is small new read flag: BDRV_REQ_PREFETCH, which in combination with
BDRV_REQ_COPY_ON_READ does copy-on-read without
extra buffer for read data. This means that only parts that needs COR
will be actually read and only corresponding buffers allocated, no more.

This allows to improve a bit block-stream and NBD_CMD_CACHE

v3: rebase 02 on master, fix commit message of 03.

v2: change interface to be just one flag BDRV_REQ_PREFETCH

v1 was "[PATCH 0/3] block: blk_co_pcache"
   https://lists.gnu.org/archive/html/qemu-devel/2019-06/msg01047.html

Vladimir Sementsov-Ogievskiy (3):
  block: implement BDRV_REQ_PREFETCH
  block/stream: use BDRV_REQ_PREFETCH
  nbd: improve CMD_CACHE: use BDRV_REQ_PREFETCH

 include/block/block.h |  8 +++++++-
 block/io.c            | 18 ++++++++++++------
 block/stream.c        | 20 +++++++-------------
 nbd/server.c          | 43 +++++++++++++++++++++++++++++++++++--------
 4 files changed, 61 insertions(+), 28 deletions(-)

Comments

Stefan Hajnoczi July 29, 2019, 3 p.m. UTC | #1
On Thu, Jul 25, 2019 at 01:05:47PM +0300, Vladimir Sementsov-Ogievskiy wrote:
> Hi all!
> 
> Here is small new read flag: BDRV_REQ_PREFETCH, which in combination with
> BDRV_REQ_COPY_ON_READ does copy-on-read without
> extra buffer for read data. This means that only parts that needs COR
> will be actually read and only corresponding buffers allocated, no more.
> 
> This allows to improve a bit block-stream and NBD_CMD_CACHE
> 
> v3: rebase 02 on master, fix commit message of 03.
> 
> v2: change interface to be just one flag BDRV_REQ_PREFETCH
> 
> v1 was "[PATCH 0/3] block: blk_co_pcache"
>    https://lists.gnu.org/archive/html/qemu-devel/2019-06/msg01047.html
> 
> Vladimir Sementsov-Ogievskiy (3):
>   block: implement BDRV_REQ_PREFETCH
>   block/stream: use BDRV_REQ_PREFETCH
>   nbd: improve CMD_CACHE: use BDRV_REQ_PREFETCH
> 
>  include/block/block.h |  8 +++++++-
>  block/io.c            | 18 ++++++++++++------
>  block/stream.c        | 20 +++++++-------------
>  nbd/server.c          | 43 +++++++++++++++++++++++++++++++++++--------
>  4 files changed, 61 insertions(+), 28 deletions(-)
> 
> -- 
> 2.18.0
> 
> 

Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Vladimir Sementsov-Ogievskiy July 29, 2019, 3:29 p.m. UTC | #2
29.07.2019 18:00, Stefan Hajnoczi wrote:
> On Thu, Jul 25, 2019 at 01:05:47PM +0300, Vladimir Sementsov-Ogievskiy wrote:
>> Hi all!
>>
>> Here is small new read flag: BDRV_REQ_PREFETCH, which in combination with
>> BDRV_REQ_COPY_ON_READ does copy-on-read without
>> extra buffer for read data. This means that only parts that needs COR
>> will be actually read and only corresponding buffers allocated, no more.
>>
>> This allows to improve a bit block-stream and NBD_CMD_CACHE
>>
>> v3: rebase 02 on master, fix commit message of 03.
>>
>> v2: change interface to be just one flag BDRV_REQ_PREFETCH
>>
>> v1 was "[PATCH 0/3] block: blk_co_pcache"
>>     https://lists.gnu.org/archive/html/qemu-devel/2019-06/msg01047.html
>>
>> Vladimir Sementsov-Ogievskiy (3):
>>    block: implement BDRV_REQ_PREFETCH
>>    block/stream: use BDRV_REQ_PREFETCH
>>    nbd: improve CMD_CACHE: use BDRV_REQ_PREFETCH
>>
>>   include/block/block.h |  8 +++++++-
>>   block/io.c            | 18 ++++++++++++------
>>   block/stream.c        | 20 +++++++-------------
>>   nbd/server.c          | 43 +++++++++++++++++++++++++++++++++++--------
>>   4 files changed, 61 insertions(+), 28 deletions(-)
>>
>> -- 
>> 2.18.0
>>
>>
> 
> Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
> 

Thank you for reviewing!
Eric Blake July 29, 2019, 3:38 p.m. UTC | #3
On 7/29/19 10:00 AM, Stefan Hajnoczi wrote:
> On Thu, Jul 25, 2019 at 01:05:47PM +0300, Vladimir Sementsov-Ogievskiy wrote:
>> Hi all!
>>
>> Here is small new read flag: BDRV_REQ_PREFETCH, which in combination with
>> BDRV_REQ_COPY_ON_READ does copy-on-read without
>> extra buffer for read data. This means that only parts that needs COR
>> will be actually read and only corresponding buffers allocated, no more.
>>
>> This allows to improve a bit block-stream and NBD_CMD_CACHE
>>
>> v3: rebase 02 on master, fix commit message of 03.
>>
>> v2: change interface to be just one flag BDRV_REQ_PREFETCH
>>
>> v1 was "[PATCH 0/3] block: blk_co_pcache"
>>    https://lists.gnu.org/archive/html/qemu-devel/2019-06/msg01047.html
>>
>> Vladimir Sementsov-Ogievskiy (3):
>>   block: implement BDRV_REQ_PREFETCH
>>   block/stream: use BDRV_REQ_PREFETCH
>>   nbd: improve CMD_CACHE: use BDRV_REQ_PREFETCH
>>
>>  include/block/block.h |  8 +++++++-
>>  block/io.c            | 18 ++++++++++++------
>>  block/stream.c        | 20 +++++++-------------
>>  nbd/server.c          | 43 +++++++++++++++++++++++++++++++++++--------
>>  4 files changed, 61 insertions(+), 28 deletions(-)
>>
>> -- 
>> 2.18.0
>>
>>
> 
> Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
> 

I'm happy to queue this one through my NBD tree for 4.2.