[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <CAD6i1fL3ED+BNdBfJio4e1w+sSGg0_tJea7DwD7h3r59VeT5iA@mail.gmail.com>
Date: Fri, 10 May 2013 18:44:16 +0530
From: Prashant Shah <pshah.mumbai@...il.com>
To: Dmitry Monakhov <dmonakhov@...nvz.org>
Cc: linux-ext4@...r.kernel.org
Subject: Re: Fwd: block level cow operation
Hi,
On Thu, Apr 25, 2013 at 6:30 PM, Prashant Shah <pshah.mumbai@...il.com> wrote:
> Hi,
>
> On Tue, Apr 9, 2013 at 8:16 PM, Dmitry Monakhov <dmonakhov@...nvz.org> wrote:
>>
>> you should not block bio/requests handling, but simply deffer original
>> bio. Some things like that:
>>
>> OUR_MAIN_ENTERING_POINT {
>> if (bio->bi_rw == WRITE) {
>> if (cow_required(bio))
>> cow_bio = create_cow_copy(bio)
>> submit_bio(cow_bio);
>> }
>> /* Cow is not required */
>> submit_bio(bio);
>> }
>
>> This approach gives us reasonable performance ~3 times slower than disk
>> throughput.
>> For a reference implementation you may look at driver/dm/dm-snap or to
>> Acronis snapapi module (AFAIR it is opensource)
>> }
Is this scenario possible ?
If a write bio (bio1) for a particular sector is under cow and waiting
for the read of the original block to complete. At the same time there
is another write bio (bio2) for the same sector. The original order is
bio1 then bio2. Now since bio1 is delayed due to cow and the new order
becomes bio2 followed by bio1 that goes in the queue. This will cause
the final on-disk write to be bio1.
Regards.
--
To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists