[1718] in linux-scsi channel archive

home help back first fref pref prev next nref lref last post

SYM53C875/Atlas I benchmarks + cache line size register.

daemon@ATHENA.MIT.EDU (Gerard Roudier)
Thu Apr 17 13:41:49 1997

Date: 	Thu, 17 Apr 1997 19:27:41 +0000 (GMT)
From: Gerard Roudier <groudier@club-internet.fr>
To: linux-scsi@vger.rutgers.edu, ncr53c810@colorado.edu


I just noticed that my BIOS sets the PCI cache line size register to 0, or 
just does not set it to the proper value.
This stuff should be fixed from the Linux PCI driver in order to make 
working all PCI optimisations based of this register value.

Recent SYMBIOS chips need this register to be properly set in order 
to perform optimizations based on the cache line size when accessing 
the main memory from the PCI bus.

Below are some benchmark results I got after having hacked manually the cache 
line size register of the 53C875 to the value 8. Is it correct?
I got this value from my weak knowledge of the Pentium architecture.
I would set it to 2 for a 486.

Hi PCI experts! can you, please, send us cache line sizes that shall be used 
for current hardwares?

Hardware: old Tomcat I / 512kB plb cache + old P133 + old Atlas I wide +
          Promise SCSI Ultra (875 rev. 3) + old 32 MB EDO memory.
Software: old Linux 2.0.29 + ncr53c8xx-1.18d 

----------------------------------------------------------------------

4k block ext2 file system.

              -------Sequential Output-------- ---Sequential Input-- --Random--
              -Per Char- --Block--- -Rewrite-- -Per Char- --Block--- --Seeks---
Machine    MB K/sec %CPU K/sec %CPU K/sec %CPU K/sec %CPU K/sec %CPU  /sec %CPU
          300  6032 94.2  7087 25.0  3233 24.3  5851 94.3  6675 22.2  86.3  3.1


Writing the 300 Megabyte file, 'iozone.tmp'...42.120000 seconds
Reading the file...48.690000 seconds

IOZONE performance measurements:
	7468490 bytes/second for writing the file
	6460727 bytes/second for reading the file

General information:
  Chip NCR53C875, device id 0xf, revision id 0x3
  IO port address 0x6000, IRQ number 11
  Using memory mapped IO at virtual address 0x2823000
  Synchronous period factor 12, max commands per lun 8
Profiling information:
  num_trans    = 33898
  num_kbytes   = 2510846
  num_disc     = 37437
  num_break    = 15581
  num_int      = 15612
  num_fly      = 33900
  ms_setup     = 41510
  ms_data      = 770420
  ms_disc      = 802860
  ms_post      = 1020

------------------------------------------------------------------------

1k block ext2 file system.

              -------Sequential Output-------- ---Sequential Input-- --Random--
              -Per Char- --Block--- -Rewrite-- -Per Char- --Block--- --Seeks---
Machine    MB K/sec %CPU K/sec %CPU K/sec %CPU K/sec %CPU K/sec %CPU  /sec %CPU
          300  5096 93.3  6642 40.5  2975 33.1  5151 88.6  6373 27.1  49.9  2.8


Writing the 300 Megabyte file, 'iozone.tmp'...44.130000 seconds
Reading the file...49.920000 seconds

IOZONE performance measurements:
	7128320 bytes/second for writing the file
	6301538 bytes/second for reading the file

General information:
  Chip NCR53C875, device id 0xf, revision id 0x3
  IO port address 0x6000, IRQ number 11
  Using memory mapped IO at virtual address 0x2823000
  Synchronous period factor 12, max commands per lun 8
Profiling information:
  num_trans    = 50955
  num_kbytes   = 2522829
  num_disc     = 50218
  num_break    = 6039
  num_int      = 6070
  num_fly      = 50954
  ms_setup     = 106430
  ms_data      = 612800
  ms_disc      = 840350
  ms_post      = 1810

-----------------------------------------------------------------------


 Gerard.


home help back first fref pref prev next nref lref last post