3c59x with linuxppc

Donald Becker becker@scyld.com
Thu May 4 12:08:51 2000


On Thu, 4 May 2000, Bogdan Costescu wrote:

> On Thu, 4 May 2000, Andreas Tobler wrote:
> > The first(3c590) works with a minor modification with the stock sources,
> > the second (3c905b) works with no mods.
> > ...
> > Oops, nothing works anymore. A freeze occurs where I have to reboot.
> > Unforunately the freeze doesn't show me any crash dumps.
> 
> This is strange because the driver mainly was changed from cli/sti to
> spinlocks.

This is a significant change -- it's not a trivial modifications.

The (very old) 3c590 series is pretty ugly when it comes to SMP locking.
The windowing scheme, a architectual characteristic from its history as an
ISA design, interacts badly with SMP operations.  Combined with the single
bus master engine, you end up with either low performance or complications.
But since the 3c590 is old and rare, it's not worth providing more than
functional (not high performance) support.

The primary "gotcha" with the 3c905 is the rarely accessed media selection
and statistics.  Otherwise there should be no need for locks.  Given
that the media selection is rare, using cli()/sti() is a better choice
even if they are much more expensive than spinlocks on SMP machines.

> > After the leaving of vortex_open I get some more enter/leave of the
> > function set_rx_mode. After these messages the freeze occurs
> 
> Set_rx_mode should be called only once from vortex_open AFAIK. It is also
> called from vortex_error (so this can happen an unlimited number of

The set_rx_mode() is called a two or three times at initialization.  (The
'ifconfig' program doesn't group all of the flags that need to be set.)
It's also called whenever the multicast list or filtering mode changes.

> Yes, it's working for me on Intel SMP. However, I also have some
> hard-to-reproduce locks which seem to appear after more than 24h of
> continuous high load.
> 
> > I suppose I may have a problem with the spin_lock stuff.
> 
> AFAIK, spinlocks should work the same on different HW architectures; as
> they work for me and Andrew, I seriously doubt that they are guilty.

Load testing involves leaving several different machines running flat-out
for a few days.  Be sure to use different machine types e.g. an old P-100
era machine and a BX chipset, because the burst mode behavior is
dramatically different.


Donald Becker				becker@scyld.com
Scyld Computing Corporation
410 Severn Ave. Suite 210
Annapolis MD 21403


-------------------------------------------------------------------
To unsubscribe send a message body containing "unsubscribe"
to linux-vortex-request@beowulf.org