lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:	Sun, 9 Oct 2011 12:31:50 +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 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

> By the time request-based DM is cloning a flush request it really has no
> need to reenter the flush machinery (even though Tejun wants it to --
> but in practice it doesn't buy us anything because we never stack
> request-based DM at the moment.  Instead it showcases how brittle this
> path is).
if there is no benefit, we'd better not clone a flush request. Clearing flush
bit and set it to cloned request is more clean and avoid unnecessary
overhead/complexity.

Thanks,
Shaohua
--
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

Powered by Openwall GNU/*/Linux Powered by OpenVZ