Re: Errors and later panics in 2.6.0-test11.

David Martínez Moreno
2003-12-04T12:55:59Z

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

El Miércoles, 3 de Diciembre de 2003 18:25, Linus Torvalds escribió:
> It might be more useful to leave it as RAID0, if you're willing to try out
> patches to try to debug this. The slab-debugging thing I sent out earlier
> is one such patch (but may well cause out-of-memory problems under load),
> and possibly the atomic-decrement checker patch (appended). And maybe Jens
> and Neil can come up with something..

Ok, Linus, I've rebooted the server with your patch applied. It'll be very
easy to check. People are hitting all the time the archive, downloading the
Debian CD images, so in several hours I'll tell you the result.

Thanks in advance,

Ender.

> ===== arch/i386/lib/dec_and_lock.c 1.1 vs edited =====
> --- 1.1/arch/i386/lib/dec_and_lock.c Tue Feb 5 09:40:21 2002
> +++ edited/arch/i386/lib/dec_and_lock.c Sun Nov 2 09:07:53 2003
> @@ -19,7 +19,7 @@
> counter = atomic_read(atomic);
> newcount = counter-1;
>
> - if (!newcount)
> + if (newcount <= 0)
> goto slow_path;
>
> asm volatile("lock; cmpxchgl %1,%2"
> ===== include/asm-i386/atomic.h 1.5 vs edited =====
> --- 1.5/include/asm-i386/atomic.h Mon Aug 18 19:46:23 2003
> +++ edited/include/asm-i386/atomic.h Sun Nov 2 09:40:42 2003
> @@ -2,6 +2,8 @@
> #define __ARCH_I386_ATOMIC__
>
> #include <linux/config.h>
> +#include <linux/kernel.h>
> +#include <asm/bug.h>
>
> /*
> * Atomic operations that C can't guarantee us. Useful for
> @@ -136,12 +138,17 @@
> */
> static __inline__ int atomic_dec_and_test(atomic_t *v)
> {
> - unsigned char c;
> + static int count = 2;
> + unsigned char c, neg;
>
> __asm__ __volatile__(
> - LOCK "decl %0; sete %1"
> - :"=m" (v->counter), "=qm" (c)
> + LOCK "decl %0; sete %1; sets %2"
> + :"=m" (v->counter), "=qm" (c), "=qm" (neg)
>
> :"m" (v->counter) : "memory");
>
> + if (count && neg) {
> + count--;
> + WARN_ON(neg);
> + }
> return c != 0;
> }

- --
Oh, I saw...Very American. Fire enough bullets and hope
they hit the target!
-- Allan Quatermain (The League of Extraordinary Gentlemen)
- --
Servicios de red - Network services
Centro de Comunicaciones CSIC/RedIRIS
Spanish Academic Network for Research and Development
Madrid (Spain)
Tlf (+34) 91.585.49.05
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.3 (GNU/Linux)

iD8DBQE/zy5eWs/EhA1iABsRAslYAKDP9AbmxeYkYMX1VDMbyQvLNhJzEQCgslrF
ZHEPuaAf52qTJ+hfOwZETIQ=
=VmD7
-----END PGP SIGNATURE-----