LinuxQuestions.org
Visit Jeremy's Blog.
Go Back   LinuxQuestions.org > Forums > Linux Forums > Linux - Hardware
User Name
Password
Linux - Hardware This forum is for Hardware issues.
Having trouble installing a piece of hardware? Want to know if that peripheral is compatible with Linux?

Notices


Reply
  Search this Thread
Old 05-16-2006, 10:04 PM   #1
Synesthesia
Member
 
Registered: Jan 2004
Location: the abyss
Posts: 209

Rep: Reputation: 30
Use of IDE busses = very sluggish system


Whenever I write CDs or DVDs, my system becomes sluggish to an unnecessary extent, although the cpu usage is never above 5% (and its SMP). Note that my hard drive is sata, and the burner is a PLEXTOR DVDR PX-716AL on an IDE channel by itself. I'm using 2.6.16.15, but as far as I can remember, the system has always been unusable during a write. What is causing this? Thanks.

Last edited by Synesthesia; 05-16-2006 at 10:07 PM.
 
Old 05-16-2006, 10:32 PM   #2
macemoneta
Senior Member
 
Registered: Jan 2005
Location: Manalapan, NJ
Distribution: Fedora x86 and x86_64, Debian PPC and ARM, Android
Posts: 4,593
Blog Entries: 2

Rep: Reputation: 344Reputation: 344Reputation: 344Reputation: 344
Usually there are two settings that will influence this: DMA and interrupt masking (parameters -d and -u on hdparm).
 
Old 05-16-2006, 11:09 PM   #3
Synesthesia
Member
 
Registered: Jan 2004
Location: the abyss
Posts: 209

Original Poster
Rep: Reputation: 30
I get this:

bash-3.00# hdparm /dev/hda

/dev/hda:
IO_support = 0 (default 16-bit)
unmaskirq = 0 (off)
using_dma = 0 (off)
keepsettings = 0 (off)
readonly = 0 (off)
readahead = 256 (on)
HDIO_GETGEO failed: Inappropriate ioctl for device

bash-3.00# hdparm -X -d1 /dev/hda

/dev/hda:
setting using_dma to 1 (on)
HDIO_SET_DMA failed: Operation not permitted
setting xfermode to 0 (default PIO mode)
using_dma = 0 (off)
 
Old 05-16-2006, 11:25 PM   #4
macemoneta
Senior Member
 
Registered: Jan 2005
Location: Manalapan, NJ
Distribution: Fedora x86 and x86_64, Debian PPC and ARM, Android
Posts: 4,593
Blog Entries: 2

Rep: Reputation: 344Reputation: 344Reputation: 344Reputation: 344
Well, that explains it. You can try:

- setting your drive to master (jumper on the drive)
- setting your drive to slave (jumper on the drive)
- putting the drive on another controller, even as a secondary on the same controller interface. I've encountered some controllers that just don't support optical drives properly.
- replace the ide cable
- buy a new drive

Last edited by macemoneta; 05-16-2006 at 11:26 PM.
 
Old 05-20-2006, 11:14 PM   #5
Synesthesia
Member
 
Registered: Jan 2004
Location: the abyss
Posts: 209

Original Poster
Rep: Reputation: 30
It still doesnt seem to work...
I have a GA-2CEWH board that has a nforce professional 2200 and 2050 chipset for 2 ide channels...

Thanks for your help
 
Old 05-20-2006, 11:48 PM   #6
macemoneta
Senior Member
 
Registered: Jan 2005
Location: Manalapan, NJ
Distribution: Fedora x86 and x86_64, Debian PPC and ARM, Android
Posts: 4,593
Blog Entries: 2

Rep: Reputation: 344Reputation: 344Reputation: 344Reputation: 344
OK... Make sure your BIOS is current. Make sure your nForce drivers are current. If possible, try borrowing an IDE controller card and running with that.
 
Old 05-21-2006, 12:07 PM   #7
Synesthesia
Member
 
Registered: Jan 2004
Location: the abyss
Posts: 209

Original Poster
Rep: Reputation: 30
My bios is the latest, nvidia doesnt make nforce professional drivers for linux (except for ethernet and audio specific), and most ide pci controllers I have seen only support hard drives (not cdroms).
 
Old 05-21-2006, 01:29 PM   #8
macemoneta
Senior Member
 
Registered: Jan 2005
Location: Manalapan, NJ
Distribution: Fedora x86 and x86_64, Debian PPC and ARM, Android
Posts: 4,593
Blog Entries: 2

Rep: Reputation: 344Reputation: 344Reputation: 344Reputation: 344
From the known problems for the nForce professional driver for Linux (at the nVidia driver download site):

Quote:

2. The IDE class driver will not be able to use DMA, which results in lower IDE performance. This can be worked around by patching the driver with the appropriate device IDs.

To patch the driver, two tables in the drivers/ide/pci/amd74xx.c driver need modification. The first table is an array of struct amd_ide_chip called amd_ide_chips. Each entry is of the following form:

{ PCI_DEVICE_ID_XXXXXXXXXXX, 0xXX, AMD_UDMA_100 },

If any of the following device IDs are missing from that table:

PCI_DEVICE_ID_NVIDIA_NFORCE3_IDE

PCI_DEVICE_ID_NVIDIA_NFORCE3S_IDE

PCI_DEVICE_ID_NVIDIA_NFORCE3S_SATA

PCI_DEVICE_ID_NVIDIA_NFORCE3S_SATA2



PCI_DEVICE_ID_NVIDIA_NFORCE_CK804_IDE

PCI_DEVICE_ID_NVIDIA_NFORCE_CK804_SATA

PCI_DEVICE_ID_NVIDIA_NFORCE_CK804_SATA2



PCI_DEVICE_ID_NVIDIA_NFORCE_MCP04_IDE

PCI_DEVICE_ID_NVIDIA_NFORCE_MCP04_SATA

PCI_DEVICE_ID_NVIDIA_NFORCE_MCP04_SATA2



then the amd74xx.c driver does not support the nForce3/4 IDE and SATA
controllers. To add support, make the following changes:

Step 1: Define PCI device ID macros.

Immediately before the amd_ide_chips table, add the following lines:

#define PCI_DEVICE_ID_NVIDIA_NFORCE3_IDE 0x00d5

#define PCI_DEVICE_ID_NVIDIA_NFORCE3S_IDE 0x00e5

#define PCI_DEVICE_ID_NVIDIA_NFORCE3S_SATA 0x00e3

#define PCI_DEVICE_ID_NVIDIA_NFORCE3S_SATA2 0x00ee



#define PCI_DEVICE_ID_NVIDIA_NFORCE_CK804_IDE 0x0053

#define PCI_DEVICE_ID_NVIDIA_NFORCE_CK804_SATA 0x0054

#define PCI_DEVICE_ID_NVIDIA_NFORCE_CK804_SATA2 0x0055



#define PCI_DEVICE_ID_NVIDIA_NFORCE_MCP04_IDE 0x0035

#define PCI_DEVICE_ID_NVIDIA_NFORCE_MCP04_SATA 0x0036

#define PCI_DEVICE_ID_NVIDIA_NFORCE_MCP04_SATA2 0x003e



Step 2: Add entries to the end of the amd_ide_chips table (but before the terminating entry "{ 0 },").

{ PCI_DEVICE_ID_NVIDIA_NFORCE3_IDE, 0x50, AMD_UDMA_133 },

{ PCI_DEVICE_ID_NVIDIA_NFORCE3S_IDE, 0x50, AMD_UDMA_133},

{ PCI_DEVICE_ID_NVIDIA_NFORCE3S_SATA, 0x50, AMD_UDMA_133},

{ PCI_DEVICE_ID_NVIDIA_NFORCE3S_SATA2, 0x50, AMD_UDMA_133 },

{ PCI_DEVICE_ID_NVIDIA_NFORCE_CK804_IDE, 0x50, AMD_UDMA_133},

{ PCI_DEVICE_ID_NVIDIA_NFORCE_CK804_SATA, 0x50, AMD_UDMA_133},

{ PCI_DEVICE_ID_NVIDIA_NFORCE_CK804_SATA2, 0x50, AMD_UDMA_133 },

{ PCI_DEVICE_ID_NVIDIA_NFORCE_MCP04_IDE, 0x50, AMD_UDMA_133},

{ PCI_DEVICE_ID_NVIDIA_NFORCE_MCP04_SATA, 0x50, AMD_UDMA_133},

{ PCI_DEVICE_ID_NVIDIA_NFORCE_MCP04_SATA2, 0x50, AMD_UDMA_133 },

Step 3: Add entries to the amd74xx_pci_tbl (but before the terminating entry "{ 0, },").

There is an array of struct pci_device_id called amd74xx_pci_tbl. Entries need to be added here for nForce3/nForce4 support.

{ PCI_VENDOR_ID_NVIDIA, PCI_DEVICE_ID_NVIDIA_NFORCE3_IDE, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 9 },

{ PCI_VENDOR_ID_NVIDIA, PCI_DEVICE_ID_NVIDIA_NFORCE3S_IDE, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 10 },

{ PCI_VENDOR_ID_NVIDIA, PCI_DEVICE_ID_NVIDIA_NFORCE3S_SATA, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 11 },

{ PCI_VENDOR_ID_NVIDIA, PCI_DEVICE_ID_NVIDIA_NFORCE3S_SATA2, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 12 },

{ PCI_VENDOR_ID_NVIDIA, PCI_DEVICE_ID_NVIDIA_NFORCE_CK804_IDE, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 13 },

{ PCI_VENDOR_ID_NVIDIA, PCI_DEVICE_ID_NVIDIA_NFORCE_CK804_SATA, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 14 },

{ PCI_VENDOR_ID_NVIDIA, PCI_DEVICE_ID_NVIDIA_NFORCE_CK804_SATA2, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 15 },

{ PCI_VENDOR_ID_NVIDIA, PCI_DEVICE_ID_NVIDIA_NFORCE_MCP04_IDE, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 16 },

{ PCI_VENDOR_ID_NVIDIA, PCI_DEVICE_ID_NVIDIA_NFORCE_MCP04_SATA, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 17 },

{ PCI_VENDOR_ID_NVIDIA, PCI_DEVICE_ID_NVIDIA_NFORCE_MCP04_SATA2, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 18 },

The number at the end of each entry (9 through 18) refers to the the corresponding entries (numbering starts with 0) in the amd_ide_chips table. For example, counting down in the amd_ide_chips table, the 9th entry (starting the count with 0) should correspond with the PCI_DEVICE_ID_NVIDIA_NFORCE3_IDE entry. If it doesn't correspond, the numbers in the entries of amd74xx_pci_tbl will need to be adjusted accordingly.

Step 4: Rebuild the kernel.
 
  


Reply


Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off



Similar Threads
Thread Thread Starter Forum Replies Last Post
System unresponsive during IDE access iantri Linux - Hardware 2 10-16-2004 01:50 PM
Can't find graphics card because greater than 64 PCI busses... how to fix? nirajpatel Linux - Hardware 1 07-26-2004 10:43 AM
ACPI to fix sluggish system after wlan0 install? lostlyre Linux - Wireless Networking 0 04-02-2004 05:32 PM
Error I can't find busses marouli Linux - Newbie 0 03-29-2004 03:23 PM
Red Hat 8.0 system becomes sluggish pdohman Linux - Software 4 11-13-2003 04:10 AM

LinuxQuestions.org > Forums > Linux Forums > Linux - Hardware

All times are GMT -5. The time now is 07:19 PM.

Main Menu
Advertisement
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
Open Source Consulting | Domain Registration