Skip to contentSkip to conversation

make PIIX4 ide driver available for MIPS

PATCH In review Jun Sun 4 participants 6 messages Jul 24, 2002 MIPS

lore
Share & tools
lore

Jun Sun

author
#0 lore raw

PATCH 1/1 make PIIX4 ide driver available for MIPS

Malta uses this chip. The native driver does provide significant gain in performance. See attached bonnie++ test results.

Two separate patches for both linux_2_4 branch and trunk.

Jun

drivers/ide/Config.in renamed from drivers/ide/Config.in.orig +1 -1
diff -Nru link/drivers/ide/Config.in.orig link/drivers/ide/Config.in
@@ -72,7 +72,7 @@
   	    dep_bool '    HPT34X chipset support' CONFIG_BLK_DEV_HPT34X $CONFIG_BLK_DEV_IDEDMA_PCI
 	    dep_mbool '      HPT34X AUTODMA support (WIP)' CONFIG_HPT34X_AUTODMA $CONFIG_BLK_DEV_HPT34X $CONFIG_IDEDMA_PCI_WIP
 	    dep_bool '    HPT366/368/370 chipset support' CONFIG_BLK_DEV_HPT366 $CONFIG_BLK_DEV_IDEDMA_PCI
-	    if [ "$CONFIG_X86" = "y" -o "$CONFIG_IA64" = "y" ]; then
+	    if [ "$CONFIG_X86" = "y" -o "$CONFIG_IA64" = "y" -o "$CONFIG_MIPS" = "y" -o "$CONFIG_MIPS64" = "y" ]; then
 	       dep_mbool '    Intel PIIXn chipsets support' CONFIG_BLK_DEV_PIIX $CONFIG_BLK_DEV_IDEDMA_PCI
 	       dep_mbool '      PIIXn Tuning support' CONFIG_PIIX_TUNING $CONFIG_BLK_DEV_PIIX $CONFIG_IDEDMA_PCI_AUTO
 	    fi
drivers/ide/Config.in renamed from drivers/ide/Config.in.orig +1 -1
diff -Nru link/drivers/ide/Config.in.orig link/drivers/ide/Config.in
@@ -70,7 +70,7 @@
   	    dep_bool '    HPT34X chipset support' CONFIG_BLK_DEV_HPT34X $CONFIG_BLK_DEV_IDEDMA_PCI
 	    dep_mbool '      HPT34X AUTODMA support (WIP)' CONFIG_HPT34X_AUTODMA $CONFIG_BLK_DEV_HPT34X $CONFIG_IDEDMA_PCI_WIP
 	    dep_bool '    HPT366 chipset support' CONFIG_BLK_DEV_HPT366 $CONFIG_BLK_DEV_IDEDMA_PCI
-	    if [ "$CONFIG_X86" = "y" -o "$CONFIG_IA64" = "y" ]; then
+	    if [ "$CONFIG_X86" = "y" -o "$CONFIG_IA64" = "y" -o "$CONFIG_MIPS" = "y" -o "$CONFIG_MIPS64" = "y" ]; then
 	       dep_mbool '    Intel PIIXn chipsets support' CONFIG_BLK_DEV_PIIX $CONFIG_BLK_DEV_IDEDMA_PCI
 	       dep_mbool '      PIIXn Tuning support' CONFIG_PIIX_TUNING $CONFIG_BLK_DEV_PIIX $CONFIG_IDEDMA_PCI_AUTO
 	    fi

==========================
. bonnie++ test:

With PIIX4 controller code and turnning
---------------------------------------

Version 1.92 ------Sequential Output------ --Sequential Input- --Random-

                    -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks-- 

Machine Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP /sec %CP
10.0.18.6 300M 44 99 4969 73 2875 65 65 99 5219 70 117.0 20
Latency 186ms 342ms 476ms 138ms 12186us 2550ms
Version 1.92 ------Sequential Create------ --------Random Create--------
10.0.18.6 -Create-- --Read--- -Delete-- -Create-- --Read--- -Delete--

              files  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP 
                 16    83  99  1677 100  1158  98    87  99  1849 100   302  98 
Latency             25192us    2257us    2009us   45175us    1163us    9985us   

With PIIX4 controller code:
--------------------------

Version 1.92 ------Sequential Output------ --Sequential Input- --Random-

                    -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks-- 

Machine Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP /sec %CP
10.0.18.6 300M 44 99 4548 67 2517 56 65 99 5019 69 114.1 20
Latency 186ms 436ms 1652ms 147ms 14697us 2418ms
Version 1.92 ------Sequential Create------ --------Random Create--------
10.0.18.6 -Create-- --Read--- -Delete-- -Create-- --Read--- -Delete--

              files  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP 
                 16    83  99  1663  99  1141  98    87  99  1819 100   304  98 
Latency             32274us    1690us    2826us   37199us    1157us   10074us   

Use PCI generic code
--------------------
Version 1.92 ------Sequential Output------ --Sequential Input- --Random-

                    -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks-- 
Machine        Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP  /sec %CP 
10.0.18.6      300M    44  99  2433  35  1201  26    64  98  3101  44  85.5  14 
Latency               186ms    4190ms    2722ms     168ms   40544us    1922ms   
Version  1.92       ------Sequential Create------ --------Random Create-------- 
10.0.18.6           -Create-- --Read--- -Delete-- -Create-- --Read--- -Delete-- 
              files  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP 
                 16    83  99  1607  99  1115  95    87  99  1788 100   305  98 
Latency             24155us    2249us    2496us   33010us    1021us   10074us   
#1 lore raw
Quoted 4 lines · Jun Sun

Malta uses this chip. The native driver does provide significant gain in performance. See attached bonnie++ test results.

Two separate patches for both linux_2_4 branch and trunk.

CONFIG_MIPS is defined for both 32-bit and 64-bit kernel.

Ralf

Quoted 72 lines

diff -Nru link/drivers/ide/Config.in.orig link/drivers/ide/Config.in

drivers/ide/Config.in renamed from drivers/ide/Config.in.orig +1 -1
@@ -72,7 +72,7 @@
   	    dep_bool '    HPT34X chipset support' CONFIG_BLK_DEV_HPT34X $CONFIG_BLK_DEV_IDEDMA_PCI
 	    dep_mbool '      HPT34X AUTODMA support (WIP)' CONFIG_HPT34X_AUTODMA $CONFIG_BLK_DEV_HPT34X $CONFIG_IDEDMA_PCI_WIP
 	    dep_bool '    HPT366/368/370 chipset support' CONFIG_BLK_DEV_HPT366 $CONFIG_BLK_DEV_IDEDMA_PCI
-	    if [ "$CONFIG_X86" = "y" -o "$CONFIG_IA64" = "y" ]; then
+	    if [ "$CONFIG_X86" = "y" -o "$CONFIG_IA64" = "y" -o "$CONFIG_MIPS" = "y" -o "$CONFIG_MIPS64" = "y" ]; then
 	       dep_mbool '    Intel PIIXn chipsets support' CONFIG_BLK_DEV_PIIX $CONFIG_BLK_DEV_IDEDMA_PCI
 	       dep_mbool '      PIIXn Tuning support' CONFIG_PIIX_TUNING $CONFIG_BLK_DEV_PIIX $CONFIG_IDEDMA_PCI_AUTO
 	    fi

diff -Nru link/drivers/ide/Config.in.orig link/drivers/ide/Config.in

drivers/ide/Config.in renamed from drivers/ide/Config.in.orig +1 -1
@@ -70,7 +70,7 @@
   	    dep_bool '    HPT34X chipset support' CONFIG_BLK_DEV_HPT34X $CONFIG_BLK_DEV_IDEDMA_PCI
 	    dep_mbool '      HPT34X AUTODMA support (WIP)' CONFIG_HPT34X_AUTODMA $CONFIG_BLK_DEV_HPT34X $CONFIG_IDEDMA_PCI_WIP
 	    dep_bool '    HPT366 chipset support' CONFIG_BLK_DEV_HPT366 $CONFIG_BLK_DEV_IDEDMA_PCI
-	    if [ "$CONFIG_X86" = "y" -o "$CONFIG_IA64" = "y" ]; then
+	    if [ "$CONFIG_X86" = "y" -o "$CONFIG_IA64" = "y" -o "$CONFIG_MIPS" = "y" -o "$CONFIG_MIPS64" = "y" ]; then
 	       dep_mbool '    Intel PIIXn chipsets support' CONFIG_BLK_DEV_PIIX $CONFIG_BLK_DEV_IDEDMA_PCI
 	       dep_mbool '      PIIXn Tuning support' CONFIG_PIIX_TUNING $CONFIG_BLK_DEV_PIIX $CONFIG_IDEDMA_PCI_AUTO
 	    fi

==========================
. bonnie++ test:

With PIIX4 controller code and turnning
---------------------------------------

Version 1.92 ------Sequential Output------ --Sequential Input- --Random-

                    -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks-- 

Machine Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP /sec %CP
10.0.18.6 300M 44 99 4969 73 2875 65 65 99 5219 70 117.0 20
Latency 186ms 342ms 476ms 138ms 12186us 2550ms
Version 1.92 ------Sequential Create------ --------Random Create--------
10.0.18.6 -Create-- --Read--- -Delete-- -Create-- --Read--- -Delete--

              files  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP 
                 16    83  99  1677 100  1158  98    87  99  1849 100   302  98 
Latency             25192us    2257us    2009us   45175us    1163us    9985us   

With PIIX4 controller code:
--------------------------

Version 1.92 ------Sequential Output------ --Sequential Input- --Random-

                    -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks-- 

Machine Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP /sec %CP
10.0.18.6 300M 44 99 4548 67 2517 56 65 99 5019 69 114.1 20
Latency 186ms 436ms 1652ms 147ms 14697us 2418ms
Version 1.92 ------Sequential Create------ --------Random Create--------
10.0.18.6 -Create-- --Read--- -Delete-- -Create-- --Read--- -Delete--

              files  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP 
                 16    83  99  1663  99  1141  98    87  99  1819 100   304  98 
Latency             32274us    1690us    2826us   37199us    1157us   10074us   

Use PCI generic code
--------------------
Version 1.92 ------Sequential Output------ --Sequential Input- --Random-

                    -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks-- 
Machine        Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP  /sec %CP 
10.0.18.6      300M    44  99  2433  35  1201  26    64  98  3101  44  85.5  14 
Latency               186ms    4190ms    2722ms     168ms   40544us    1922ms   
Version  1.92       ------Sequential Create------ --------Random Create-------- 
10.0.18.6           -Create-- --Read--- -Delete-- -Create-- --Read--- -Delete-- 
              files  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP 
                 16    83  99  1607  99  1115  95    87  99  1788 100   305  98 
Latency             24155us    2249us    2496us   33010us    1021us   10074us   
#2 lore raw
In reply to Jun Sun

Algor p6032 board use it too. We have been using native driver for a
long time.

Quoted 76 lines · Jun Sun

Malta uses this chip. The native driver does provide significant gain in performance. See attached bonnie++ test results.

Two separate patches for both linux_2_4 branch and trunk.

Jun

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

diff -Nru link/drivers/ide/Config.in.orig link/drivers/ide/Config.in

drivers/ide/Config.in renamed from drivers/ide/Config.in.orig +1 -2
@@ -72,7 +72,7 @@
  	    dep_bool '    HPT34X chipset support' CONFIG_BLK_DEV_HPT34X $CONFIG_BLK_DEV_IDEDMA_PCI
 	    dep_mbool '      HPT34X AUTODMA support (WIP)' CONFIG_HPT34X_AUTODMA $CONFIG_BLK_DEV_HPT34X $CONFIG_IDEDMA_PCI_WIP
 	    dep_bool '    HPT366/368/370 chipset support' CONFIG_BLK_DEV_HPT366 $CONFIG_BLK_DEV_IDEDMA_PCI
-	    if [ "$CONFIG_X86" = "y" -o "$CONFIG_IA64" = "y" ]; then
+	    if [ "$CONFIG_X86" = "y" -o "$CONFIG_IA64" = "y" -o "$CONFIG_MIPS" = "y" -o "$CONFIG_MIPS64" = "y" ]; then
 	       dep_mbool '    Intel PIIXn chipsets support' CONFIG_BLK_DEV_PIIX $CONFIG_BLK_DEV_IDEDMA_PCI
 	       dep_mbool '      PIIXn Tuning support' CONFIG_PIIX_TUNING $CONFIG_BLK_DEV_PIIX $CONFIG_IDEDMA_PCI_AUTO
 	    fi
 
 
------------------------------------------------------------------------

diff -Nru link/drivers/ide/Config.in.orig link/drivers/ide/Config.in

drivers/ide/Config.in renamed from drivers/ide/Config.in.orig +1 -2
@@ -70,7 +70,7 @@
  	    dep_bool '    HPT34X chipset support' CONFIG_BLK_DEV_HPT34X $CONFIG_BLK_DEV_IDEDMA_PCI
 	    dep_mbool '      HPT34X AUTODMA support (WIP)' CONFIG_HPT34X_AUTODMA $CONFIG_BLK_DEV_HPT34X $CONFIG_IDEDMA_PCI_WIP
 	    dep_bool '    HPT366 chipset support' CONFIG_BLK_DEV_HPT366 $CONFIG_BLK_DEV_IDEDMA_PCI
-	    if [ "$CONFIG_X86" = "y" -o "$CONFIG_IA64" = "y" ]; then
+	    if [ "$CONFIG_X86" = "y" -o "$CONFIG_IA64" = "y" -o "$CONFIG_MIPS" = "y" -o "$CONFIG_MIPS64" = "y" ]; then
 	       dep_mbool '    Intel PIIXn chipsets support' CONFIG_BLK_DEV_PIIX $CONFIG_BLK_DEV_IDEDMA_PCI
 	       dep_mbool '      PIIXn Tuning support' CONFIG_PIIX_TUNING $CONFIG_BLK_DEV_PIIX $CONFIG_IDEDMA_PCI_AUTO
 	    fi
 
 
------------------------------------------------------------------------

==========================
. bonnie++ test:

With PIIX4 controller code and turnning
---------------------------------------

Version 1.92 ------Sequential Output------ --Sequential Input- --Random-

                   -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks-- 
Machine        Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP  /sec %CP 10.0.18.6      300M    44  99  4969  73  2875  65    65  99  5219  70 117.0  20 Latency               186ms     342ms     476ms     138ms   12186us    2550ms   Version  1.92       ------Sequential Create------ --------Random Create-------- 10.0.18.6           -Create-- --Read--- -Delete-- -Create-- --Read--- -Delete-- 
             files  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP 
                16    83  99  1677 100  1158  98    87  99  1849 100   302  98 

Latency 25192us 2257us 2009us 45175us 1163us 9985us

With PIIX4 controller code:
--------------------------

Version 1.92 ------Sequential Output------ --Sequential Input- --Random-

                   -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks-- 
Machine        Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP  /sec %CP 10.0.18.6      300M    44  99  4548  67  2517  56    65  99  5019  69 114.1  20 Latency               186ms     436ms    1652ms     147ms   14697us    2418ms   Version  1.92       ------Sequential Create------ --------Random Create-------- 10.0.18.6           -Create-- --Read--- -Delete-- -Create-- --Read--- -Delete-- 
             files  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP 
                16    83  99  1663  99  1141  98    87  99  1819 100   304  98 

Latency 32274us 1690us 2826us 37199us 1157us 10074us

Use PCI generic code
--------------------
Version 1.92 ------Sequential Output------ --Sequential Input- --Random-

                   -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks-- 
Machine        Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP  /sec %CP 10.0.18.6      300M    44  99  2433  35  1201  26    64  98  3101  44  85.5  14 Latency               186ms    4190ms    2722ms     168ms   40544us    1922ms   Version  1.92       ------Sequential Create------ --------Random Create-------- 10.0.18.6           -Create-- --Read--- -Delete-- -Create-- --Read--- -Delete-- 
             files  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP 
                16    83  99  1607  99  1115  95    87  99  1788 100   305  98 

Latency 24155us 2249us 2496us 33010us 1021us 10074us

#3 lore raw
In reply to Jun Sun
Quoted 2 lines · Jun Sun

Malta uses this chip. The native driver does provide significant gain in performance. See attached bonnie++ test results.

It's actually weird there are any CPU conditionals there at all. The
PIIX4 is a generic PCI-ISA bridge after all, so it can be used on any system equipped with a PCI bus. DEC Alpha systems used to use Intel's bridges for EISA and ISA busses as well.

Signature · 3 lines
+  Maciej W. Rozycki, Technical University of Gdansk, Poland   +
+--------------------------------------------------------------+
+        e-mail: [email protected], PGP key available        +
#4 lore raw
Quoted 7 lines · Maciej W. Rozycki
Quoted 2 lines

Malta uses this chip. The native driver does provide significant gain in performance. See attached bonnie++ test results.

It's actually weird there are any CPU conditionals there at all. The
PIIX4 is a generic PCI-ISA bridge after all, so it can be used on any system equipped with a PCI bus. DEC Alpha systems used to use Intel's bridges for EISA and ISA busses as well.

I bet it's historical reasons and the whole architecture conditional plain should go away ...

Ralf

#5 lore raw
Quoted 7 lines · Ralf Baechle
Quoted 4 lines

It's actually weird there are any CPU conditionals there at all. The
PIIX4 is a generic PCI-ISA bridge after all, so it can be used on any system equipped with a PCI bus. DEC Alpha systems used to use Intel's bridges for EISA and ISA busses as well.

I bet it's historical reasons and the whole architecture conditional plain should go away ...

The explicit support for the PIIX family is relatively new, IIRC. I
suppose it's rather the "it's an Intel, so obviously it works with an Intel only" thinking. I'm for the removal as well.

Signature · 3 lines
+  Maciej W. Rozycki, Technical University of Gdansk, Poland   +
+--------------------------------------------------------------+
+        e-mail: [email protected], PGP key available        +