[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 2/4] block: immediately cancel oversized read/wr
From: |
Paolo Bonzini |
Subject: |
Re: [Qemu-devel] [PATCH 2/4] block: immediately cancel oversized read/write requests |
Date: |
Mon, 08 Sep 2014 15:49:22 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.0 |
Il 08/09/2014 15:44, Benoît Canet ha scritto:
>> > + if (bs->bl.max_transfer_length && nb_sectors >
>> > bs->bl.max_transfer_length) {
>> > + error_report("read of %d sectors at sector %ld exceeds device max"
>> > + " transfer length of %d sectors.", nb_sectors,
>> > sector_num,
>> > + bs->bl.max_transfer_length);
>> > + return -EINVAL;
>> > + }
>> > +
>> > return bdrv_co_do_preadv(bs, sector_num << BDRV_SECTOR_BITS,
>> > nb_sectors << BDRV_SECTOR_BITS, qiov, flags);
>> > }
>> > @@ -3507,6 +3514,13 @@ static int coroutine_fn
>> > bdrv_co_do_writev(BlockDriverState *bs,
>> > return -EINVAL;
>> > }
>> >
>> > + if (bs->bl.max_transfer_length && nb_sectors >
>> > bs->bl.max_transfer_length) {
>> > + error_report("write of %d sectors at sector %ld exceeds device
>> > max"
>> > + " transfer length of %d sectors.", nb_sectors,
>> > sector_num,
>> > + bs->bl.max_transfer_length);
>> > + return -EINVAL;
>> > + }
>> > +
>> > return bdrv_co_do_pwritev(bs, sector_num << BDRV_SECTOR_BITS,
>> > nb_sectors << BDRV_SECTOR_BITS, qiov,
>> > flags);
>> > }
>> > --
>> > 1.7.9.5
>> >
>> >
> Look like you are changing the coroutine version.
>
> Some hardware like virtio-blk uses the AIO version of read and writes.
> What would happen if all the block drivers down the chain are AIO enabled ?
The AIO version still goes through bdrv_co_do_readv/writev.
However, error_report is not something you can use for guest-accessible
error messages, unless you want your logs to fill up with error messages. :)
Paolo
- [Qemu-devel] [PATCH 0/4] introduce max_transfer_length, Peter Lieven, 2014/09/05
- [Qemu-devel] [PATCH 1/4] BlockLimits: introduce max_transfer_length, Peter Lieven, 2014/09/05
- [Qemu-devel] [PATCH 2/4] block: immediately cancel oversized read/write requests, Peter Lieven, 2014/09/05
- Re: [Qemu-devel] [PATCH 2/4] block: immediately cancel oversized read/write requests, Benoît Canet, 2014/09/08
- Re: [Qemu-devel] [PATCH 2/4] block: immediately cancel oversized read/write requests,
Paolo Bonzini <=
- Re: [Qemu-devel] [PATCH 2/4] block: immediately cancel oversized read/write requests, Peter Lieven, 2014/09/08
- Re: [Qemu-devel] [PATCH 2/4] block: immediately cancel oversized read/write requests, Paolo Bonzini, 2014/09/08
- Re: [Qemu-devel] [PATCH 2/4] block: immediately cancel oversized read/write requests, Peter Lieven, 2014/09/08
- Re: [Qemu-devel] [PATCH 2/4] block: immediately cancel oversized read/write requests, Paolo Bonzini, 2014/09/08
- Re: [Qemu-devel] [PATCH 2/4] block: immediately cancel oversized read/write requests, Peter Lieven, 2014/09/08
- Re: [Qemu-devel] [PATCH 2/4] block: immediately cancel oversized read/write requests, Kevin Wolf, 2014/09/23
- Re: [Qemu-devel] [PATCH 2/4] block: immediately cancel oversized read/write requests, Peter Lieven, 2014/09/23
- Re: [Qemu-devel] [PATCH 2/4] block: immediately cancel oversized read/write requests, Kevin Wolf, 2014/09/23
- Re: [Qemu-devel] [PATCH 2/4] block: immediately cancel oversized read/write requests, ronnie sahlberg, 2014/09/08
- Re: [Qemu-devel] [PATCH 2/4] block: immediately cancel oversized read/write requests, Paolo Bonzini, 2014/09/08