Re: PCI-SCI Drivers v1.1-7 released

Jeff V. Merkey
2001-02-07T17:24:26Z

On Wed, Feb 07, 2001 at 09:22:43AM +0000, Alan Cox wrote:
> > kernel on gcc 2.91, running SCI benchmarks, then compiling on RedHat
> > 7.1 (Fischer) with gcc 2.96, the 2.96 build DROPPED 30% in throughput
> > from the gcc 2.91 compiled version on the identical SAME 2.4.1
> > source tree.
>
> 30% is too big to be caused by a compiler. Way too big.I suggest you review
> your code.

I went back and looked at what was being generated. for the sci copy testing,
the MTRR settings are changed to enable write combining, which causes the
PCI bus to burst data whenever the SCI mapped page hits a cache line
during copy operations -- speeds it up by 20-30% over DMA methods using
the same adapters.

I looked into this, and discovered that the gcc 2.96 compiler turned my
rep movsd code into a rep movsb (???) with some evil looking C++ style
jump table in the assembler code that jumped all over the place, which
is what caused the performance test numbers to drop. DMA numbers were
the same on both kernels with the dma_test benchmark -- they were not
with the sci_bench2 program.

They deviated by 30%, indicating that my MTRR write combining optimization
was not working properly in sci copy mode.

Jeff