Messages in this thread | | | Date | Wed, 20 Aug 2008 09:15:10 -0400 | From | "Michael Madore" <> | Subject | Re: INFO: task blocked for more than 120 seconds |
| |
>>> Committing a transaction would means writing rest of the meta-data in >>> the transaction. And that would imply forcing most of the buffer_heads >>> to disk in ordered mode. This can result a lot of seeks and make take >>> more thatn 120 seconds. >> >> >> Both Randy and Greg reported getting this for 2.6.27-rc but not >> for 2.6.26. >> >> Why are people getting such messages for 2.6.27-rc but not for 2.6.26? > > Hi, > > I have reported getting these messages on 2.6.26: > > http://marc.info/?l=linux-kernel&m=121796211813099&w=2 > > In addition to the system mentioned in that posting, I have just > reproduced it by stress testing a system with 2 Opteron processors, > 2GB of RAM and 2 SATA disks. > > Backing out this patch seems to help: > > commit cc19747977824ece6aa1c56a29e974fef5ec2b32 > Author: Jens Axboe <jens.axboe@oracle.com> > Date: Fri Apr 20 20:45:39 2007 +0200 > > cfq-iosched: tighten queue request overlap condition > > For tagged devices, allow overlap of requests if the idle window > isn't enabled on the current active queue. > > Signed-off-by: Jens Axboe <jens.axboe@oracle.com> > > diff --git a/block/cfq-iosched.c b/block/cfq-iosched.c > index a8237be..e859b49 100644 > --- a/block/cfq-iosched.c > +++ b/block/cfq-iosched.c > @@ -989,7 +989,8 @@ static struct cfq_queue *cfq_select_queue(struct > cfq_data *cfqd) > * flight or is idling for a new request, allow either of these > * conditions to happen (or time out) before selecting a new queue. > */ > - if (cfqq->dispatched || timer_pending(&cfqd->idle_slice_timer)) { > + if (timer_pending(&cfqd->idle_slice_timer) || > + (cfqq->dispatched && cfq_cfqq_idle_window(cfqq))) { > cfqq = NULL; > goto keep_queue; > }
Actually, I tested again with this commit reversed, and I'm still seeing the problem. Sorry for any confusion.
Mike
| |