make PIIX4 ide driver available for MIPS
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
@@ -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
@@ -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 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_4branch 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 fidiff -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 9985usWith 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 10074usUse 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
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_4branch 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 98Latency 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 98Latency 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 98Latency 24155us 2249us 2496us 33010us 1021us 10074us
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 +
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
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 +