Subject: Re: 3.0: a summary
To: None <wileyc@rezrov.net>
From: Izumi Tsutsui <tsutsui@ceres.dti.ne.jp>
List: port-sgimips
Date: 12/05/2005 22:06:21
In article <biwNVutD.1133769465.8148390.wileyc@localhost>
wileyc@rezrov.net wrote:

> > So far the only really 'stable' RC is RC2.
> 
> You're just getting lucky.

I think so because there is no kernel change except bge(4) driver
between RC2 and RC3.

>  There is a known design "feature" with the
> R10k when implemented in non-coherent I/O platforms (like the IP32) that
> makes it prone to reboot during I/O.  Executive summary is that all DMA
> buffers should be mapped into KSEG2 above 8MB; the current code doesn't
> do that.
> 
> (reference http://mail-index.netbsd.org/port-sgimips/2000/06/29/0006.html)

I've read this post before but I couldn't see the point
at that time. Now I see the problem is the race condition
between R10k's speculative store and DMA xfer.
(though I'm not sure if it could cause silent reboot. By watchdog?)

>> The kernel then maps all DMA buffers in K2, and
>> purges the mapping from the tlb while DMAs are
>> in flight.   Because you cannot get to this page
>> via K0 or K2 (speculation will not miss the tlb
>> if I recall correctly), the DMA operation is safe.

I wonder if this could work on all devices because
on some devices DMA completion is notified via
DMA descriptors, which also xfered by DMA...

The real problem is the SGI's design which implements
non coherent I/O on R10k systems??
---
Izumi Tsutsui