Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S263981AbTE1KFa (ORCPT ); Wed, 28 May 2003 06:05:30 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S264643AbTE1KF3 (ORCPT ); Wed, 28 May 2003 06:05:29 -0400 Received: from ns.virtualhost.dk ([195.184.98.160]:58329 "EHLO virtualhost.dk") by vger.kernel.org with ESMTP id S263981AbTE1KF0 (ORCPT ); Wed, 28 May 2003 06:05:26 -0400 Date: Wed, 28 May 2003 12:18:26 +0200 From: Jens Axboe To: Andrew Morton , m.c.p@wolk-project.de, kernel@kolivas.org, manish@storadinc.com, andrea@suse.de, marcelo@conectiva.com.br, linux-kernel@vger.kernel.org Subject: Re: 2.4.20: Proccess stuck in __lock_page ... Message-ID: <20030528101826.GP845@suse.de> References: <3ED2DE86.2070406@storadinc.com> <200305281713.24357.kernel@kolivas.org> <20030528071355.GO845@suse.de> <200305280930.48810.m.c.p@wolk-project.de> <20030528073544.GR845@suse.de> <20030528005156.1fda5710.akpm@digeo.com> <20030528101348.GA804@rz.uni-karlsruhe.de> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20030528101348.GA804@rz.uni-karlsruhe.de> Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1932 Lines: 51 On Wed, May 28 2003, Matthias Mueller wrote: > On Wed, May 28, 2003 at 12:51:56AM -0700, Andrew Morton wrote: > > It'd be interesting if any of these changes make a difference. > > > > > > drivers/block/ll_rw_blk.c | 7 > > fs/buffer.c | 3030 ++++++++++++++++++++++++++++++++++++++++++++++ > > 2 files changed, 3033 insertions(+), 4 deletions(-) > > > > diff -puN drivers/block/ll_rw_blk.c~a drivers/block/ll_rw_blk.c > > --- 24/drivers/block/ll_rw_blk.c~a 2003-05-28 00:48:09.000000000 -0700 > > +++ 24-akpm/drivers/block/ll_rw_blk.c 2003-05-28 00:50:02.000000000 -0700 > > @@ -590,10 +590,10 @@ static struct request *__get_request_wai > > register struct request *rq; > > DECLARE_WAITQUEUE(wait, current); > > > > - generic_unplug_device(q); > > - add_wait_queue_exclusive(&q->wait_for_requests[rw], &wait); > > + add_wait_queue(&q->wait_for_requests[rw], &wait); > > do { > > set_current_state(TASK_UNINTERRUPTIBLE); > > + generic_unplug_device(q); > > if (q->rq[rw].count == 0) > > schedule(); > > spin_lock_irq(&io_request_lock); > > @@ -829,8 +829,7 @@ void blkdev_release_request(struct reque > > */ > > if (q) { > > list_add(&req->queue, &q->rq[rw].free); > > - if (++q->rq[rw].count >= q->batch_requests && > > - waitqueue_active(&q->wait_for_requests[rw])) > > + if (++q->rq[rw].count >= q->batch_requests) > > wake_up(&q->wait_for_requests[rw]); > > } > > } > > > > Works fine on my notebook. Good throughput and no mouse hangs anymore. Could you possibly try just the last hunk of the patch, then? Ie just remove the waitqueue_active(&q->wait_for_requests[rw]) check, leave the rest as-is. -- Jens Axboe - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/