LKML Archive on lore.kernel.org
help / color / mirror / Atom feed
From: Mike Snitzer <snitzer@redhat.com>
To: Tejun Heo <tj@kernel.org>
Cc: axboe@kernel.dk, tytso@mit.edu, djwong@us.ibm.com,
shli@kernel.org, neilb@suse.de, adilger.kernel@dilger.ca,
jack@suse.cz, linux-kernel@vger.kernel.org, kmannth@us.ibm.com,
cmm@us.ibm.com, linux-ext4@vger.kernel.org, rwheeler@redhat.com,
hch@lst.de, josef@redhat.com, jmoyer@redhat.com
Subject: Re: [RFC PATCH 4/3] block: skip elevator initialization for flush requests -- was never BUGGY relative to upstream
Date: Wed, 26 Jan 2011 00:27:19 -0500 [thread overview]
Message-ID: <20110126052719.GA31818@redhat.com> (raw)
In-Reply-To: <20110125215500.GA6836@redhat.com>
On Tue, Jan 25 2011 at 4:55pm -0500,
Mike Snitzer <snitzer@redhat.com> wrote:
> On Tue, Jan 25 2011 at 3:41pm -0500,
> Mike Snitzer <snitzer@redhat.com> wrote:
>
> > Hi Tejun,
> >
> > On Fri, Jan 21 2011 at 10:59am -0500,
> > Tejun Heo <tj@kernel.org> wrote:
> > >
> > > * As flush requests are never put on the IO scheduler, request fields
> > > used for flush share space with rq->rb_node. rq->completion_data is
> > > moved out of the union. This increases the request size by one
> > > pointer.
> > >
> > > As rq->elevator_private* are used only by the iosched too, it is
> > > possible to reduce the request size further. However, to do that,
> > > we need to modify request allocation path such that iosched data is
> > > not allocated for flush requests.
> >
> > I decided to take a crack at using rq->elevator_private* and came up
> > with the following patch.
...
> It is an interesting duality that:
> 1) REQ_ELVPRIV is never set because priv=0 is passed to blk_alloc_request
> 2) yet when blk_free_request() checks rq->cmd_flags REQ_ELVPRIV is set;
> resulting in the call to elv_put_request()
Turns out priv=0 was never actually being established in get_request()
on the kernel I was testing (see below).
> > I know this because in my following get_request() change to _not_ call
> > elv_set_request() for flush requests hit cfq_put_request()'s
> > BUG_ON(!cfqq->allocated[rw]).
>
> FYI, here is the backtrace:
That backtrace was from a RHEL6 port of your recent flush merge work.
One RHELism associated with the RHEL6 flush+fua port in general (and now
this flush merge port) is that bio and request flags are _not_ shared.
As such I introduced BIO_FLUSH and BIO_FUA flags in RHEL6. Long story
short, my 4/3 patch works just fine ontop of your 3 patches that Jens
just staged for 2.6.39.
So sorry for the noise! I'm kicking myself for having tainted my patch
(and your work indirectly) by making an issue out of nothing.
Taking a step back, what do you think of my proposed patch?
Mike
next prev parent reply other threads:[~2011-01-26 5:27 UTC|newest]
Thread overview: 41+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-01-21 15:59 [PATCHSET] block: reimplement FLUSH/FUA to support merge Tejun Heo
2011-01-21 15:59 ` [PATCH 1/3] block: add REQ_FLUSH_SEQ Tejun Heo
2011-01-21 15:59 ` [PATCH 2/3] block: improve flush bio completion Tejun Heo
2011-01-21 15:59 ` [PATCH 3/3] block: reimplement FLUSH/FUA to support merge Tejun Heo
2011-01-21 18:56 ` Vivek Goyal
2011-01-21 19:19 ` Vivek Goyal
2011-01-23 10:25 ` Tejun Heo
2011-01-23 10:29 ` Tejun Heo
2011-01-24 20:31 ` Darrick J. Wong
2011-01-25 10:21 ` Tejun Heo
2011-01-25 11:39 ` Jens Axboe
2011-03-23 23:37 ` Darrick J. Wong
2011-01-25 22:56 ` Darrick J. Wong
2011-01-22 0:49 ` Mike Snitzer
2011-01-23 10:31 ` Tejun Heo
2011-01-25 20:46 ` Vivek Goyal
2011-01-25 21:04 ` Mike Snitzer
2011-01-23 10:48 ` [PATCH UPDATED " Tejun Heo
2011-01-25 20:41 ` [KNOWN BUGGY RFC PATCH 4/3] block: skip elevator initialization for flush requests Mike Snitzer
2011-01-25 21:55 ` Mike Snitzer
2011-01-26 5:27 ` Mike Snitzer [this message]
2011-01-26 10:03 ` Tejun Heo
2011-01-26 10:05 ` Tejun Heo
2011-02-01 17:38 ` [RFC " Mike Snitzer
2011-02-01 18:52 ` Tejun Heo
2011-02-01 22:46 ` [PATCH v2 1/2] " Mike Snitzer
2011-02-02 21:51 ` Vivek Goyal
2011-02-02 22:06 ` Mike Snitzer
2011-02-02 22:55 ` [PATCH v3 1/2] block: skip elevator data " Mike Snitzer
2011-02-03 9:28 ` Tejun Heo
2011-02-03 14:48 ` [PATCH v4 " Mike Snitzer
2011-02-03 13:24 ` [PATCH v3 " Jens Axboe
2011-02-03 13:38 ` Tejun Heo
2011-02-04 15:04 ` Vivek Goyal
2011-02-04 15:08 ` Tejun Heo
2011-02-04 16:58 ` [PATCH v5 " Mike Snitzer
2011-02-03 14:54 ` [PATCH v3 " Mike Snitzer
2011-02-01 22:46 ` [PATCH v2 2/2] block: share request flush fields with elevator_private Mike Snitzer
2011-02-02 21:52 ` Vivek Goyal
2011-02-03 9:24 ` Tejun Heo
2011-02-11 10:08 ` Jens Axboe
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20110126052719.GA31818@redhat.com \
--to=snitzer@redhat.com \
--cc=adilger.kernel@dilger.ca \
--cc=axboe@kernel.dk \
--cc=cmm@us.ibm.com \
--cc=djwong@us.ibm.com \
--cc=hch@lst.de \
--cc=jack@suse.cz \
--cc=jmoyer@redhat.com \
--cc=josef@redhat.com \
--cc=kmannth@us.ibm.com \
--cc=linux-ext4@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=neilb@suse.de \
--cc=rwheeler@redhat.com \
--cc=shli@kernel.org \
--cc=tj@kernel.org \
--cc=tytso@mit.edu \
--subject='Re: [RFC PATCH 4/3] block: skip elevator initialization for flush requests -- was never BUGGY relative to upstream' \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).