Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 24 Apr 2003 19:35:36 +0200 (CEST)
From:      Michal Mertl <mime@traveller.cz>
To:        vizion communication <vizion@ixpres.com>
Cc:        freebsd-smp@freebsd.org
Subject:   Re: Anyone please???? SMP health check!!
Message-ID:  <20030424191157.Q55270@prg.traveller.cz>
In-Reply-To: <00a901c30a64$c8101390$15b55042@vizion2000.net>
References:  <004e01c30a16$73999870$15b55042@vizion2000.net> <00a901c30a64$c8101390$15b55042@vizion2000.net>

next in thread | previous in thread | raw e-mail | index | archive | help
> Thanks very much for your comments -- they are really
> appreciated.
>
> OK is there any way I can check that SMP is performing
> properly??

You should see 8th column in top labeled C which shows on which processor
given process runs.

> I do not seem to be showing an increase in performance
> between single and smp processing.

SMP performs better only for some tasks. With some kind of load you can
get even worse performance than with UP kernel.

The reason is that with SMP kernel the kernel itself runs at any given
moment only on one processor. User level processing can run at the same
time on other ones though. With lots of user level processing you should
see much higher performance on SMP - try running dnetc or setiathome. It
shows almost linear increase in performance with added processors. If your
load in mostly in kernel (be it disk / network I/O, number of syscalls or
whatever) you wouldn't see much of an improvement, in rare cases even a
slowdown caused by more complex locking with SMP kernel.

There's another problem with SMP on 4.X and that's with multi-threaded
applications. libc_r library, which provides native FreeBSD threads on
4.X, can run only one thread at a time (runs all thread on the same
processor). What's also bad (I'm not 100% sure about this one) is that
whenever one thread blocks (e.g. wants disk I/O) the whole application
blocks.

So for some threaded applications (e.g. mysql) you should see better
performance with linuxthreads port which basically turns threads into
processes. You can then run more threads at the same time and the blocking
problem shouldn't occur either.


> What issues would not be revealed in Dmesg?

Don't know of any. If you see 'SMP: AP CPU #1 Launched!' in means the
system will be able to use second processor.


For the error (warning) message you got I thought if the system continued
booting it shouldn't be that bad. I seem to remember, that some warnings
like this affect performance though.

I've got a lot of SMP FreeBSD installations with different HW.

I don't get any warnings with 440BX based boards but get some with
ServerWorks boards (Xeon P4 and PIII).

Mostly the following one, but I think I saw some other on some of my
systems.

APIC_IO: Testing 8254 interrupt delivery
APIC_IO: Broken MP table detected: 8254 is not connected to IOAPIC #0 intpin 2
APIC_IO: routing 8254 via 8259 and IOAPIC #0 intpin 0


-- 
Michal Mertl
mime@traveller.cz



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20030424191157.Q55270>