<< | Thread Index | >> ]    [ << | Date Index | >> ]

Subject: Re: [PATCH 2.2.17] _SMP_ doesn't export tasklist_lock needed in cipe.h
From: ratz <ratz,AT,tac,DOT,ch>
Date: Tue, 28 Nov 2000 19:51:35 +0100
In-reply-to: <3A22A136.35147233@tac.ch>

Hi again,

DON'T try to run cipe-1.4.x on a SMP machine. It crashes really
badly. I try to reconstruct it but this will take some time.

There must be a problem with process locking on a SMP system. Basically
the ../include/asm/spinlock.h is causing the trouble:

#define RW_LOCK_UNLOCKED (rwlock_t) { 0, 0 }

/*
 * On x86, we implement read-write locks as a 32-bit counter
 * with the high bit (sign) being the "write" bit.
 *
 * The inline assembly is non-obvious. Think about it.
 */
#define read_lock(rw)   \
        asm volatile("\n1:\t" \
                     "lock ; incl %0\n\t" \
                     "js 2f\n" \
                     ".section .text.lock,\"ax\"\n" \
                     "2:\tlock ; decl %0\n" \
                     "3:\trep; nop\n\t" \
                     "cmpl $0,%0\n\t" \
                     "js 3b\n\t" \
                     "jmp 1b\n" \
                     ".previous" \
                     :"=m" (__dummy_lock(&(rw)->lock)))
#define read_unlock(rw) \
        asm volatile("lock ; decl %0" \
                :"=m" (__dummy_lock(&(rw)->lock)))

Are you sure about this, Olaf?

> This trivial patch includes it. However I ask the author to cross-
> check its correctness since I'm not sure if he really wanted it
> that way because I can load the module but I can't get a tunnel
> interface configured and running with ciped-cb -o myconfig. But
> this may also be due to my lack of knowledge about how cipe works.

Is Olaf reading this mailinglist or should I contact him privately?

-- 
mailto: `echo NrOatSz,AT,tPacA,DOT,cMh | sed 's/[NOSPAM]//g'`





<< | Thread Index | >> ]    [ << | Date Index | >> ]