Bug 62325 - Kernel oops, system hangs when starting tux on smp/bigmem kernels
Kernel oops, system hangs when starting tux on smp/bigmem kernels
Status: CLOSED RAWHIDE
Product: Red Hat Linux
Classification: Retired
Component: kernel (Show other bugs)
7.3
i386 Linux
medium Severity high
: ---
: ---
Assigned To: Arjan van de Ven
Brian Brock
:
Depends On:
Blocks:
  Show dependency treegraph
 
Reported: 2002-03-29 13:19 EST by David Morse
Modified: 2007-04-18 12:41 EDT (History)
1 user (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2002-04-04 17:49:39 EST
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)

  None (edit)
Description David Morse 2002-03-29 13:19:23 EST
Description of problem:
As soon as TUX is started on skipjack smp or bigmem kernels, I get a kernel BUG

Version-Release number of selected component (if applicable): 2.4.18-0.4


How reproducible:
Always

Steps to Reproduce:
1. Install skipjack on SMP box
2. Boot -smp or -bigmem kernel
3. service tux start


Actual Results:  2.4.18-0.4bigmem:

Starting tux: invalid operand: 0000
CPU:    2
EIP:   0010:[<f891f606>]  Not tainted
EFLAGS: 00010282
EIP is at __sys_tux [tux] 0x316
eax: 0000001b  ebx: f5d76000  ecx: c0314024  edx:00003864
esi: bfffe310  edi: f5d77f98  ebp: f8931240  esp:f5d77f64
ds: 0018  es: 0018  ss: 0018
Process tux (pid: 1465, stackpage=f5d77000)
Stack: f892d805 0000040b 00000010 00000004 00000002 f7040a04 ffffffff ffffffff
       ffffffff 00000000 00000004 f7ffa000 00000000 bfffe2f0 <4>------------[ main.c:e035--<4>kernel BUG at /usr/src/build/80758-i686/BUILD/kernel-2.4.18/linux/include/asm/spinlock.h:90!
-----------[ cut here ]------------
kernel BUG at main.c:1035!
TUX: thread 0 listens on http://0.0.0.0:80.

_________________

Here's the code where the oops occurs:

spinlock.h:
static inline void spin_unlock(spinlock_t *lock)
{
#if SPINLOCK_DEBUG
        if (lock->magic != SPINLOCK_MAGIC)
                BUG();
        if (!spin_is_locked(lock))
                BUG(); // line 90 where oops occurs
#endif
        __asm__ __volatile__(
                spin_unlock_string
        );
}
_____________________

Expected Results:  TUX: thread 0 listens on http://0.0.0.0:80.
TUX: thread 1 listens on http://0.0.0.0:80.
TUX: thread 2 listens on http://0.0.0.0:80.
TUX: thread 3 listens on http://0.0.0.0:80.


Additional info:

Doesn't occur on Skipjack UP kernel; it appears to be spinlock problem (SMP-specific).
Comment 1 David Morse 2002-04-04 17:49:35 EST
net/tux/main.c, line 1035 is the TUX_BUG() line of this section of code:

		case TUX_ACTION_STARTTHREAD:
		{
			int nr;

			ret = copy_from_user(&nr, &u_info->thread_nr,
						sizeof(int));
			if (ret)
				GOTO_ERR_no_unlock;
			if (nr >= nr_tux_threads)
				GOTO_ERR_no_unlock;
			ti = threadinfo + nr;
			if (ti->started)
				GOTO_ERR_unlock;
			current->tux_info = ti;
			current->tux_exit = tux_exit;
			if (ti->thread)
				TUX_BUG();
Comment 2 Ingo Molnar 2002-04-09 04:26:09 EDT
managed to reproduce this, next kernel should have the fix.

Note You need to log in before you can comment on or make changes to this bug.