[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CANejiEV+Joc7qvWr1DF4cOR61GKy8MLX4TT4oWh7pxMkhb74Qg@mail.gmail.com>
Date: Sun, 9 Oct 2011 15:16:39 +0800
From: Shaohua Li <shli@...nel.org>
To: Mike Snitzer <snitzer@...hat.com>
Cc: Jeff Moyer <jmoyer@...hat.com>, Jens Axboe <axboe@...nel.dk>,
Tejun Heo <tj@...nel.org>,
device-mapper development <dm-devel@...hat.com>,
Christophe Saout <christophe@...ut.de>,
linux-kernel@...r.kernel.org
Subject: Re: Block regression since 3.1-rc3
2011/10/9 Shaohua Li <shli@...nel.org>:
> 2011/10/9 Mike Snitzer <snitzer@...hat.com>:
>> On Sat, Oct 08 2011 at 7:02am -0400,
>> Shaohua Li <shli@...nel.org> wrote:
>>
>>> Looks the dm request based flush logic is broken.
>>>
>>> saved_make_request_fn
>>> __make_request
>>> blk_insert_flush
>>> but blk_insert_flush doesn't put the original request to list, instead, the
>>> q->flush_rq is in list.
>>> then
>>> dm_request_fn
>>> blk_peek_request
>>> dm_prep_fn
>>> clone_rq
>>> map_request
>>> blk_insert_cloned_request
>>> so q->flush_rq is cloned, and get dispatched. but we can't clone q->flush_rq
>>> and use it to do flush. map_request even could assign a different blockdev to
>>> the cloned request.
>>
>> You haven't explained why cloning q->flush_rq is broken. What is the
>> problem with map_request changing the blockdev? For the purposes of
>> request-based DM the flush machinery has already managed the processing
>> of the flush at the higher level request_queue.
> hmm, looks I overlook the issue. cloned flush_rq has some problems but can
> be fixed.
> 1. it doesn't set requet->bio, request->bio_tail
> 2. REQ_CLONE_MASK should set REQ_FLUSH_SEQ
oh, don't need set REQ_FLUSH_SEQ, the low level queue will set it
anyway. sorry for
the noise. Jeff's patch looks ok then.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists