[parisc-linux] 2.4.0-test6 lack of speed

Matthew Wilcox matthew@wil.cx
Wed, 30 Aug 2000 01:17:52 +0100


On Tue, Aug 29, 2000 at 05:23:08PM -0400, Matthew Wilcox wrote:
> > Helge Deller wrote some code in drivers/net/lasi_82596.c that plays
> > with %sr1 and uses FDC, FIC, PDC, SYNC, and SYNCDMA.

> #define kernel_fdc(addr) asm volatile("fdc 0(%%sr0,%0)" : : "r" (addr))
> 
> however, the resulting kernel wouldn't boot.  So let's take this a
> step at a time and see how far we can go towards eliminating the *E
> variants.  I've written a little rant on this suject which you can find
> in linux-2.3/Documentation/parisc/mm.  feel free to ignore it if you want.

ok.  we now have interfaces for flushing kernel dcache.  I'm assuming
that no-one is intending to dma to/from an instruction page, so i
haven't included an icache variant.  i'm not using sync or syncdma yet.
perhaps i should be.  are we out-of-order right now or have we told the
MMU to strongly order our writes?

Anyway, would either of Richard or Helge like to look over the lasi_82596
driver and convert it to use the flush_kernel_dcache_range() interface
or tell me why my code is no good and I suck?  Ditto the sim700 driver
actually.  Are there any other drivers which have simply taken the
lasi_82596 wback code and replicated it or are these the only two?