Bug 504778

Summary: FEAT RHEL4.9: Support new PCI IDS to support VX800 in via82cxxx
Product: Red Hat Enterprise Linux 4 Reporter: Bruce C. Chang <brucechang>
Component: kernelAssignee: Mauro Carvalho Chehab <mchehab>
Status: CLOSED ERRATA QA Contact: Red Hat Kernel QE team <kernel-qe>
Severity: high Docs Contact:
Priority: high    
Version: 4.8CC: brucechang, charles_rose, cward, HaraldWelte, lwang, martinez, matt_domsch, tao, wwlinuxengineering
Target Milestone: rcKeywords: FutureFeature, OtherQA
Target Release: 4.9   
Hardware: i686   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Enhancement
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2011-02-16 15:30:38 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 509418, 583726, 626414    
Attachments:
Description Flags
Backport VIA PCI ID's from upstream none

Description Bruce C. Chang 2009-06-09 11:47:09 UTC
Description of problem:
    Low Hard disk transfer rate for VX800 platform.

Version-Release number of selected component (if applicable):


How reproducible:
    It takes 2 hours to install the RHEL 4.7 into VIA VX800 platform + VIA Nano
1.3GHz CPU + IDE Harddisk. And after RHEL 4.7 installed, the IDE is running in
PIO mode only by hdparm command.

Actual results:


Expected results:


Additional info:
    After adding PCI IDs into via82cxxx.c/pci_ids.h(listed as below), rebuild kernel and set the HD to DMA mode, the performance has big improvement. Following is the patches:

--- a/drivers/ide/pci/via82cxxx.c	2009-06-09 18:42:27.000000000 +0800
+++ b/drivers/ide/pci/via82cxxx.c	2009-06-09 18:55:34.000000000 +0800
@@ -75,7 +75,11 @@
 	u8 rev_max;
 	u16 flags;
 } via_isa_bridges[] = {
+	{ "vx800",	PCI_DEVICE_ID_VIA_VX800,     0x00, 0x2f, VIA_UDMA_133 | VIA_BAD_AST },
+	{ "cx700",	PCI_DEVICE_ID_VIA_CX700,     0x00, 0x2f, VIA_UDMA_133 | VIA_BAD_AST },
 	{ "vt8251",	PCI_DEVICE_ID_VIA_8251,     0x00, 0x2f, VIA_UDMA_133 | VIA_BAD_AST },
+	{ "vt8237a",	PCI_DEVICE_ID_VIA_8237A,     0x00, 0x2f, VIA_UDMA_133 | VIA_BAD_AST },
+	{ "vt8237s",	PCI_DEVICE_ID_VIA_8237S,     0x00, 0x2f, VIA_UDMA_133 | VIA_BAD_AST },
 	{ "vt8237",	PCI_DEVICE_ID_VIA_8237,     0x00, 0x2f, VIA_UDMA_133 | VIA_BAD_AST },
 	{ "vt8235",	PCI_DEVICE_ID_VIA_8235,     0x00, 0x2f, VIA_UDMA_133 | VIA_BAD_AST },
 	{ "vt8233a",	PCI_DEVICE_ID_VIA_8233A,    0x00, 0x2f, VIA_UDMA_133 | VIA_BAD_AST },
@@ -628,6 +632,7 @@
 static struct pci_device_id via_pci_tbl[] = {
 	{ PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_82C576_1, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0},
 	{ PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_82C586_1, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0},
+	{ PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_SATA_EIDE, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0},
 	{ 0, },
 };
 MODULE_DEVICE_TABLE(pci, via_pci_tbl);
--- a/include/linux/pci_ids.h	2009-06-09 18:42:36.000000000 +0800
+++ b/include/linux/pci_ids.h	2009-06-09 13:49:18.000000000 +0800
@@ -1356,6 +1356,12 @@
 #define PCI_DEVICE_ID_VIA_8235_1	0xB168
 #define PCI_DEVICE_ID_VIA_838X_1	0xB188
 #define PCI_DEVICE_ID_VIA_83_87XX_1	0xB198
+#define PCI_DEVICE_ID_VIA_8237A		0x3337
+#define PCI_DEVICE_ID_VIA_8237S		0x3372
+#define PCI_DEVICE_ID_VIA_8251		0x3287
+#define PCI_DEVICE_ID_VIA_CX700		0x8324
+#define PCI_DEVICE_ID_VIA_VX800		0x8353
+#define PCI_DEVICE_ID_VIA_SATA_EIDE	0x5324
 
 #define PCI_VENDOR_ID_SIEMENS           0x110A
 #define PCI_DEVICE_ID_SIEMENS_DSCC4     0x2102

Comment 1 Bruce C. Chang 2009-06-09 11:53:24 UTC
sign-off by Joseph Chan <JosephChan.tw>

Comment 2 Prarit Bhargava 2009-06-09 12:52:45 UTC
Please be advised, that Bugzilla is not a support tool. It is an
Engineering and Community tool. So although all changes to Enterprise
Linux go through Bugzilla and Red Hat considers issues directly entered
into Bugzilla valuable feedback, there is no SLA around it.

If this is a production issue, please report it to your Red Hat Support contact.

Thank you.

Comment 3 Charles Rose 2009-06-09 14:51:22 UTC
Please treat this as a feature request for RHEL 4.9. We just want PCI IDs added to via82cxxx.c

Comment 6 Mauro Carvalho Chehab 2010-04-20 16:43:34 UTC
Created attachment 407869 [details]
Backport VIA PCI ID's from upstream

The proposed patch is incomplete and doesn't mention the upstream changesets. 

I've backported the relevant patches. Please test.

Comment 7 Chris Ward 2010-04-22 09:49:41 UTC
@Dell, @Via,

Please confirm that you will test these changes once we have a new kernel build ready.

Thanks

Comment 8 Chris Ward 2010-04-22 09:53:08 UTC
But before we can provide an update kernel build to test, we need to first confirm that the patch set provided in comment #6 works as expected.

Comment 10 Bruce C. Chang 2010-04-22 10:07:46 UTC
VIA is happy to test if we have the test build.....

Comment 11 Marizol Martinez 2010-04-22 17:44:00 UTC
Charles -- Can you please confirm that Dell will also be testing this item in RHEL 4.9? We need this confirmation to proceed with the evaluation of this request. Thanks!

Comment 13 Mauro Carvalho Chehab 2010-04-23 20:01:58 UTC
Two experimental kernels with the patch are available at:
   http://people.redhat.com/~mchehab/.bz504778/

Please test.

Comment 14 Bruce C. Chang 2010-04-27 04:34:16 UTC
Thank you very much for your help. I have downloaded it and waiting for the approval to download the RHEL 4.8 for applying this patch.
Regards

Comment 15 Bruce C. Chang 2010-04-30 09:35:32 UTC
Please be reported the test result as below:
1. x86_64
* before patch
> uname -a
Linux localhost.localdomain 2.6.9-78.EL #1 Wed Jul 9 15:26:38 EDT 2008 x86_64 x86_64 x86_64 GNU/Linux
> hdparm -tT /dev/hda
/dev/hda:
 Timing cached reads:   1780 MB in  2.00 seconds = 889.25 MB/sec
 Timing buffered disk reads:   14 MB in  3.24 seconds =   4.32 MB/sec
* after patch
> uname -a
Linux localhost.localdomain 2.6.9-78.16.EL #1 Fri Apr 23 15:04:20 EDT 2010 x86_64 x86_64 x86_64 GNU/Linux
> hdparm -tT /dev/hda
 Timing cached reads:   1560 MB in  2.00 seconds = 779.73 MB/sec
 Timing buffered disk reads:  194 MB in  3.01 seconds =  64.50 MB/sec

2. i686
* before patch
> uname -a
Linux localhost.localdomain 2.6.9-78.EL #1 Wed Jul 9 15:27:01 EDT 2008 i686 i686 i386 GNU/Linux
> hdparm -tT /dev/hda
/dev/hda:
 Timing cached reads:   3044 MB in  2.00 seconds = 1520.71 MB/sec
 Timing buffered disk reads:   14 MB in  3.22 seconds =   4.35 MB/sec
* after patch
> uname -a
Linux localhost.localdomain 2.6.9-78.16.EL #1 Fri Apr 23 15:04:16 EDT 2010 i686 i686 i386 GNU/Linux
> hdparm -tT /dev/hda
 Timing cached reads:   2736 MB in  2.00 seconds = 1367.52 MB/sec
 Timing buffered disk reads:  192 MB in  3.00 seconds =  63.97 MB/sec


This patch works well in my platform. And the performance has been improved after patch.

Thank you very much for your help.
Bruce C. Chang

Comment 18 Mauro Carvalho Chehab 2010-07-01 17:28:21 UTC
Patches post at rh Kernel ML at May, 1st. Still waiting for acks.

Comment 19 Vivek Goyal 2010-09-23 13:02:28 UTC
Committed in 89.37.EL . RPMS are available at http://people.redhat.com/vgoyal/rhel4/

Comment 21 errata-xmlrpc 2011-02-16 15:30:38 UTC
An advisory has been issued which should help the problem
described in this bug report. This report is therefore being
closed with a resolution of ERRATA. For more information
on therefore solution and/or where to find the updated files,
please follow the link below. You may reopen this bug report
if the solution does not work for you.

http://rhn.redhat.com/errata/RHSA-2011-0263.html