2003-05-28 22:31:07

by Ian molton

[permalink] [raw]
Subject: CRASH 2.5.70

Hi.

Im getting a (pretty repeatable) hard lockup when I delete a LOT of
files in rox-filer.

sometimes random processes die just prior to the lockup. (xmms died just
prior to the last one)

there is no debug output at all.

other filesystem ops (eg. chmod/chown) dont seem to cause the lockups,
just delete.

I dont overclock this box, and it ran 2.4.<n> stably for months.

AthlonXP1800 on an Asus A7M266 with 256MB DDR memory.

--
Spyros lair: http://www.mnementh.co.uk/
Do not meddle in the affairs of Dragons, for you are tasty and good with
ketchup.

Systems programmers keep it up longer.


2003-05-28 22:36:01

by Ian molton

[permalink] [raw]
Subject: Re: CRASH 2.5.70

On Wed, 28 May 2003 23:44:22 +0100
Ian Molton <[email protected]> wrote:

> I dont overclock this box, and it ran 2.4.<n> stably for months.
>
> AthlonXP1800 on an Asus A7M266 with 256MB DDR memory.

addendum: ext3 filesystem on WD 120GB disc with 8M cache.


--
Spyros lair: http://www.mnementh.co.uk/
Do not meddle in the affairs of Dragons, for you are tasty and good with
ketchup.

Systems programmers keep it up longer.

2003-05-29 09:43:29

by Jens Axboe

[permalink] [raw]
Subject: Re: CRASH 2.5.70

On Wed, May 28 2003, Ian Molton wrote:
> On Wed, 28 May 2003 23:44:22 +0100
> Ian Molton <[email protected]> wrote:
>
> > I dont overclock this box, and it ran 2.4.<n> stably for months.
> >
> > AthlonXP1800 on an Asus A7M266 with 256MB DDR memory.
>
> addendum: ext3 filesystem on WD 120GB disc with 8M cache.

Does this make any difference...?

--- drivers/block/deadline-iosched.c~ 2003-05-28 10:46:38.678240272 +0200
+++ drivers/block/deadline-iosched.c 2003-05-28 10:43:13.994356952 +0200
@@ -121,6 +121,15 @@
__deadline_del_drq_hash(drq);
}

+static void
+deadline_remove_merge_hints(request_queue_t *q, struct deadline_rq *drq)
+{
+ deadline_del_drq_hash(drq);
+
+ if (q->last_merge == &drq->request->queuelist)
+ q->last_merge = NULL;
+}
+
static inline void
deadline_add_drq_hash(struct deadline_data *dd, struct deadline_rq *drq)
{
@@ -310,7 +319,7 @@
struct deadline_data *dd = q->elevator.elevator_data;

list_del_init(&drq->fifo);
- deadline_del_drq_hash(drq);
+ deadline_remove_merge_hints(q, drq);
deadline_del_drq_rb(dd, drq);
}
}

--
Jens Axboe