Re: status of Linux on Alpha?

From: Dru
Date: Wed Apr 28 2004 - 08:16:08 EST


I've tested the patch on high loads and it handles it fine, its even
still very responsive under those loads (can't say the same for
my pentium4) Thanks a lot guys.

I'll put it though some more heavier tests over the next few days
to make certain its rock solid.

I did notice one other very minor issue, which was if i set it the alpha
system type to Nautilus instead of generic it doesnt boot.
It cycles lost interupt when detecting drives, it doesnt time out (each lost
intrupt times out but it keeps looking continally).




Marc Giger wrote:

Hi Ivan,

Cool!

I will try your patch after I finished moving to my new flat:-)

I wonder why it happens only with the XFS code. What I saw
rw_sem is used all over the place in the kernel.

Thank you and Dru for the work and hopefully it will fix my problem.

Regards

Marc


On Tue, 27 Apr 2004 21:55:14 +0400
Ivan Kokshaysky <ink@xxxxxxxxxxxxxxxxxxxx> wrote:



On Tue, Apr 27, 2004 at 06:51:24PM +0200, Marc Giger wrote:


What's the current status of the problem?


Hopefully resolved - thanks to Dru <andru@xxxxxxxxxxx>, who provided
an easy way to reproduce the problem.

What we have in lib/rwsem.c:__rwsem_do_wake():
int woken, loop;
^^^
and several lines below:
loop = woken;
woken *= RWSEM_ACTIVE_BIAS-RWSEM_WAITING_BIAS;
woken -= RWSEM_ACTIVE_BIAS;

However, rw_semaphore->count is 64-bit on Alpha, so
RWSEM_WAITING_BIAS has been defined as -0x0000000100000000L.
Obviously, this blows up in the write contention case.

Ivan.

--- linux.orig/lib/rwsem.c Mon Apr 26 20:11:36 2004
+++ linux/lib/rwsem.c Tue Apr 27 20:04:14 2004
@@ -40,8 +40,7 @@ static inline struct rw_semaphore *__rws
{
struct rwsem_waiter *waiter;
struct list_head *next;
- signed long oldcount;
- int woken, loop;
+ signed long oldcount, woken, loop;

rwsemtrace(sem,"Entering __rwsem_do_wake");






-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/