Subject: Patch applied - no improvement
To: None <port-macppc@netbsd.org>
From: Donald Lee <MacPPC1@caution.icompute.com>
List: port-macppc
Date: 03/13/2005 21:09:16
Well,

I put the patch (posted 7 Dec 04) into my 1.6.2 kernel, with a little massaging.
It didn't compile at first, but as soon as it compiled, my kernel seemed to
boot and work.  Unfortunately, it still has the same problems.  I'm
bummed.

Symptoms: This is true whether on a "stock" kernel and "stock" CPU
or with my "alternate" machine, with 1Ghz 7455 CPU, and my kernel.  dump(8)
runs particularly slowly, and pings are 10 ms (on the nose, except
the first one).  However, if I run a "nice -19" process that sits
in an endless loop - essentially a user-level idle loop - the symptoms
essentially go away.  pings go back to .15 ms.

I looked into why dump is slow.  For some reason, dump forks off 3 processes,
and they take turns doing I/O.  I think the idea is that it's trying to keep
multiple outstanding I/Os active at once.  The problem seems to be in the
semaphore operations that keep the dump procs synchronized.  If I don't
have the "while(1)" process running, the dump procs burn lots of CPU, and
don't move much data.  With the "while1()" proc, dump still is not
quite what it shoud be, but it runs OK.

The kernel with the interrupt patch may well not "miss" interrupts
anymore, but whatever is wrong with the kernel is still not quite right.

Anyone have any ideas on how to track this down?  I'm hoping that the
knowledge gained in fixing up -current can be pushed back into 1.6.2.

Many thanks.

-dgl-