Hi,

On Thu, Jun 29, 2000 at 07:09:22PM -0700, William Warner wrote:
> Here at U of M we have an 8 processor machine with about 3G of RAM. The
> following, _very_ simple program creates 90 threads, in each thread 10M
> is allocated and a simple pointless write is performed on the RAM 10x.
> Now, the program runs just fine on a 1 processor system, but on
> multiprocessors, memory is NOT allocated sometimes (NULL returned
> meaning that the kernel is not re-entrant).

This is interesting. Have you compiled your kernel with bigmem support
or with a 3GB/1GB split? If the latter, one mildly plausible explanation
for the memory issues might be that you cannot dynamically allocate more
than two thirds or so of the 1GB without twiggling a couple of things
in the kernel. 'Course, this is probably all irrelevant, obvious and
out of date, but... ;-)

> The REAL problem is with the execution speed. If this program is run on
> a multiprocessor system in the bg, and top is executed, the processes
> only get ~15% of the CPU time, and the system gets a whopping 400% and
> about 385% idle. (* processors - 800%).

Now *this* is weird! :-)  I seem to recall a discussion on the mysql
(which is threaded) mailing list about linux' tendency to *heavily*
penalise threads that spawned new threads too fast. Perhaps this is
what is happening to you? ISTR there's a patch for 2.2 included in
the mysql benchmarking package (mysql-bench?). This issue is also
probably fixed in recent 2.[34] kernels and /possibly/ in 2.2.16...?

All the best,
Wesley.
-
Linux SMP list: FIRST see FAQ at http://www.irisa.fr/prive/dmentre/smp-howto/
To Unsubscribe: send "unsubscribe linux-smp" to [EMAIL PROTECTED]

Reply via email to