From: Jens Axboe <axboe@suse.de>
To: Jurriaan on adsl-gate <thunder7@xs4all.nl>
Cc: neilb@suse.de, linux-raid@vger.kernel.org,
Linux Kernel <linux-kernel@vger.kernel.org>
Subject: Re: 2.6.15-mm3 hangs during boot (raid related?)
Date: Thu, 12 Jan 2006 19:05:41 +0100 [thread overview]
Message-ID: <20060112180541.GV3945@suse.de> (raw)
In-Reply-To: <20060112172900.GA3687@gates.of.nowhere>
On Thu, Jan 12 2006, Jurriaan on adsl-gate wrote:
> From: Neil Brown <neilb@suse.de>
> Date: Thu, Jan 12, 2006 at 05:36:42PM +1100
> Sent-To:
> > On Thursday January 12, thunder7@xs4all.nl wrote:
> > >
> > > 2.6.15-mm3 hangs during boot for me, after the lines
> > >
> > > ========
> > > md4: bitmap initialized from disk: read 15/15 pages, set 51 bits, status: 0
> > > created bitmap (224 pages) for device md4
> > > ========
> > >
> > > ctrl-alt-del to reboot works sometimes (2 out of 3). Below is complete
> > > dmesg (from 2.6.15-mm2, ver_linux output, .config and raid details).
> >
> > Yep, this is probably a known problem with recent changes to the
> > 'barrier' code.
> >
> > Try to convince md not to use barrier by changing md_super_write in
> > drivers/md/md.c. Simply remove
> >
> > if (!test_bit(BarriersNotsupp, &rdev->flags)) {
> > struct bio *rbio;
> > rw |= (1<<BIO_RW_BARRIER);
> > rbio = bio_clone(bio, GFP_NOIO);
> > rbio->bi_private = bio;
> > rbio->bi_end_io = super_written_barrier;
> > submit_bio(rw, rbio);
> > } else
> >
> > leaving the
> > submit_bio(rw, rbio);
> >
> > which comes after it.
> >
> With this patch, it boots and works just fine.
Please reverse that patch and try this on top of -mm2/3 instead (it's
the patch from Tejun to fix the actual issue, from another similar
thread):
diff --git a/block/elevator.c b/block/elevator.c
index 1b5b5d9..f905e47 100644
--- a/block/elevator.c
+++ b/block/elevator.c
@@ -615,23 +615,23 @@ void elv_completed_request(request_queue
* request is released from the driver, io must be done
*/
if (blk_account_rq(rq)) {
- struct request *first_rq = list_entry_rq(q->queue_head.next);
-
q->in_flight--;
+ if (blk_sorted_rq(rq) && e->ops->elevator_completed_req_fn)
+ e->ops->elevator_completed_req_fn(q, rq);
+ }
- /*
- * Check if the queue is waiting for fs requests to be
- * drained for flush sequence.
- */
- if (q->ordseq && q->in_flight == 0 &&
+ /*
+ * Check if the queue is waiting for fs requests to be
+ * drained for flush sequence.
+ */
+ if (unlikely(q->ordseq)) {
+ struct request *first_rq = list_entry_rq(q->queue_head.next);
+ if (q->in_flight == 0 &&
blk_ordered_cur_seq(q) == QUEUE_ORDSEQ_DRAIN &&
blk_ordered_req_seq(first_rq) > QUEUE_ORDSEQ_DRAIN) {
blk_ordered_complete_seq(q, QUEUE_ORDSEQ_DRAIN, 0);
q->request_fn(q);
}
-
- if (blk_sorted_rq(rq) && e->ops->elevator_completed_req_fn)
- e->ops->elevator_completed_req_fn(q, rq);
}
}
--
Jens Axboe
prev parent reply other threads:[~2006-01-12 18:05 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-01-12 6:23 2.6.15-mm3 hangs during boot (raid related?) Jurriaan on adsl-gate
2006-01-12 6:36 ` Neil Brown
2006-01-12 17:29 ` Jurriaan on adsl-gate
2006-01-12 18:05 ` Jens Axboe [this message]
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=20060112180541.GV3945@suse.de \
--to=axboe@suse.de \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-raid@vger.kernel.org \
--cc=neilb@suse.de \
--cc=thunder7@xs4all.nl \
/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
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.