Date: Sat, 08 Jul 2000 23:33:18 +0300 From: Nimrod Mesika <nimrodme@bezeqint.net> To: John Reynolds <jjreynold@home.com>, freebsd-stable@freebsd.org Subject: Re: SMP Busted? Message-ID: <3967900E.3268C8F4@bezeqint.net> References: <KJEDKFEKMMFFMPFPBLJHOELNCCAA.bonk1138@msn.com> <39675CEC.BE15E450@bezeqint.net> <14695.35795.462198.432825@whale.home-net>
next in thread | previous in thread | raw e-mail | index | archive | help
John Reynolds wrote: > last few days .... on my BP6 things seem to be OK (except for 'random' lockups > I've seen with massive disk I/O to ad4 during "-j16" buildworlds) as far as SMP I've had these random lockups myself on this BP6 board. Seems like bad hardware but very difficult to explain to the Windows-oriented salesmen... They'll tell you try Windows and when it crashes go complain to MS :) > goes. My uname output sez that I built and am running a kernel from Jul 5th if > that helps people track down what has gone haywire > > FreeBSD dolphin 4.0-STABLE FreeBSD 4.0-STABLE #0: Wed Jul 5 00:23:20 MST 2000 root@dolphin:/usr/src/sys/compile/DOLPHIN i386 I'm pretty sure the patches entered by David O'Brien on 7/7/2000 are the one to blame (I know he patched exception.s, apic_vector.s and maybe more). How does one use cvs to retrieve only those patches? I can't seem to be able to get the diffs between two different dates on RELENG_4, only on -current... David, if you're reading this... look at this example: This is from exception.s: IDTVEC(fpu) #if NNPX > 0 /* * Handle like an interrupt (except for accounting) so that we can * call npx_intr to clear the error. It would be better to handle * npx interrupts as traps. Nested interrupts would probably have * to be converted to ASTs. */ pushl $0 /* dummy error code */ pushl $0 /* dummy trap type */ pushal pushl %ds pushl %es /* now stack frame is a trap frame */ pushl %fs mov $KDSEL,%ax mov %ax,%ds mov %ax,%es MOVL_KPSEL_EAX mov %ax,%fs FAKE_MCOUNT(13*4(%esp)) And that's the code generated, as disassembled by gdb: (gdb) disassemble Xfpu Dump of assembler code for function Xfpu: 0xc020933c <Xfpu>: push $0x0 0xc020933e <Xfpu+2>: push $0x0 0xc0209340 <Xfpu+4>: pusha 0xc0209341 <Xfpu+5>: push %ds 0xc0209342 <Xfpu+6>: push %es 0xc0209343 <Xfpu+7>: push %fs 0xc0209345 <Xfpu+9>: mov $0x10,%ax 0xc0209349 <Xfpu+13>: mov %eax,%ds 0xc020934b <Xfpu+15>: mov %eax,%es 0xc020934d <Xfpu+17>: mov $0x18,%eax 0xc0209352 <Xfpu+22>: mov %eax,%fs 0xc0209354 <Xfpu+24>: lock incl 0xc02be6a4 0xc020935b <Xfpu+31>: call 0xc0215e54 <get_mplock> 0xc0209360 <Xfpu+36>: mov 0xc029551c,%eax 0xc0209365 <Xfpu+41>: push %eax 0xc0209366 <Xfpu+42>: push $0x0 0xc0209368 <Xfpu+44>: call 0xc0224ab0 <npx_intr> 0xc020936d <Xfpu+49>: incb 0xc0294e2c 0xc0209373 <Xfpu+55>: jmp 0xc020d440 <doreti> End of assembler dump. Does it make sense? (All these auto long/word selection seems fishy...) My 386 assembly needs serious refreshing I guess. -- Nimrod. To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-stable" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3967900E.3268C8F4>