Next-in-Thread Next Message

Question problem with IDE and Linux SMP 

Forum: PCMCIA ATA/IDE Device Issues
Date: 2000, Apr 24
From: Peter A. Castro doctor

About 6 months ago I added a second processor to my system and rebuilt a linux 2.2.14 kernel with SMP. I'd rebuild PCMCIA-CS 3.1.14 under this config. Since then, I've been experiencing hangs when I do large or continuous file copies from either a SanDisk PC Card II (ATA Flash) or a SanDisk CF in a SanDisk CF Adapter. Both appear to the system as ATA/IDE drives. At the moment I'm only reading data from these cards. I haven't tried writing to them for fear that they will be trashed. I've loaded a large file (test1.dat) onto the card from a friends machine for testing. This file is about 20Mb. I also have a bunch of smaller files (~512k) whose sum totals more that 20Mb. If I attempt to copy anything that takes more that 3-4 seconds or totals more than 8Mb in size, I get into a condition where the device no longer responds; the console keeps saying that some operation timed-out (see logs below) because the resource was busy. I also see in the process list what looks like an attempt by the system to umount the card! At this point, I must reboot to clear the condition, and because of the resource problem a clean shutdown isn't possible.

If I take the same kernel config and rebuild without SMP (and rebuild PCMCIA-CS under the non-SMP config) things work normally. Large copies complete without any problems.

Has anyone else experienced this? Any ideas as to what's going on? Below are logs of a copy of the large file. I suspect a race condition having to do with SMP, but where I couldn't really guess. I don't really want to have to go back to a single-processor config. Any help would be greatly appreciated!

The PCMCIA card reader is an Antec DataChute PCMCIA ISA reader/writer. It's based on the VIA83C469 chipset. As my config shows below, I use the i82365 module. I've tried every changing every config parameter available, in various combinations, for the i82365 without any real success.

My /etc/pcmcia.conf is pretty simple:
 ------------------------------------------------------------
 PCMCIA=yes
 PCIC=i82365
 PCIC_OPTS="irq_list=5"
 CARDMGR_OPTS="-v"
 ------------------------------------------------------------

Here's the syslog of what happened.  This card has always
reported a status=0x51 and error=0x04 apon insertion, but has
never given me any problems (under a UP kernel).  Any idea
what these errors represent??
 ------------------------------------------------------------
 Linux PCMCIA Card Services 3.1.14
   kernel build: 2.2.14 #3 SMP Sun Feb 27 19:54:47 PST 2000
   options:  [pci] [cardbus] [pnp]
 PnP: PNP BIOS installation structure at 0xc00f7430
 PnP: PNP BIOS version 1.0, entry at f0000:6d84, dseg at f0000
 Intel PCIC probe:
   VIA VT83C469 rev 00 ISA-to-PCMCIA at port 0x3e0 ofs 0x00
     host opts [0]: [ring]
     host opts [1]: [ring]
     ISA irqs (default) = 5 polling interval = 1000 ms
 cs: IO port probe 0x1000-0x17ff: clean.
 cs: IO port probe 0x0100-0x04ff: excluding 0x140-0x15f
 cs: memory probe 0x0d0000-0x0dffff: excluding 0xd0000-0xd3fff
 hde: SunDisk SDP3B-220, ATA DISK drive
 ide2 at 0x100-0x107,0x10e on irq 5
 hde: SunDisk SDP3B-220, 210MB w/1kB Cache, CHS=840/16/32
  hde: hde1
 ide_cs: hde: Vcc = 5.0, Vpp = 0.0
 VFS: Disk change detected on device ide2(33,0)
  hde: hde1
 hde: drive_cmd: status=0x51 { DriveReady SeekComplete Error }
 hde: drive_cmd: error=0x04 { DriveStatusError }
 VFS: Disk change detected on device ide2(33,1)
  hde: hde1
 VFS: Disk change detected on device ide2(33,1)
  hde: hde1
 hde: irq timeout: status=0xff { Busy }
 ide2: reset timed-out, status=0xff
 hde: status timeout: status=0xff { Busy }
 hde: drive not ready for command
 ide2: reset timed-out, status=0xff
 hde: status timeout: status=0xff { Busy }
 end_request: I/O error, dev 21:01 (hde), sector 68276
 hde: drive not ready for command
 hde: status timeout: status=0xff { Busy }
 hde: drive not ready for command
 ide2: reset timed-out, status=0xff
 hde: status timeout: status=0xff { Busy }
 hde: drive not ready for command
 ide2: reset timed-out, status=0xff
 hde: status timeout: status=0xff { Busy }
 end_request: I/O error, dev 21:01 (hde), sector 68277
 hde: drive not ready for command
 hde: status timeout: status=0xff { Busy }
 hde: drive not ready for command
 ide2: reset timed-out, status=0xff
 hde: status timeout: status=0xff { Busy }
 hde: drive not ready for command
 ide2: reset timed-out, status=0xff
 hde: status timeout: status=0xff { Busy }
 end_request: I/O error, dev 21:01 (hde), sector 68278
 hde: drive not ready for command
 hde: status timeout: status=0xff { Busy }
 hde: drive not ready for command
 ------------------------------------------------------------

Part of a process list at the time of the first Busy message:
 ------------------------------------------------------------
  433  ?  S    0:01 /sbin/cardmgr -v
  468   1 D    0:00 cp /pcmcia/test1.dat .
  469  ?  S    0:00 sh -c ./ide stop hde 2>&1
  470  ?  S    0:00 sh ./ide stop hde
  481  ?  D    0:00 umount -v /dev/hde1
 ------------------------------------------------------------

Next-in-Thread Next Message

Select this message: problem with IDE and Linux SMP

Messages Inline: 1 All Outline: 1 2 All

1. None I have not heard this one before by David Hinds, 2000, Apr 24
(_ None Have done extensive testing, still have problems. by Peter A. Castro, 2000, Apr 26
(_ None Re: Have done extensive testing, still have problems. by David Hinds, 2000, Apr 26
(_ Ok That works! by Peter A. Castro, 2000, May 02

Message Administration

This form allows you to delete, move, or copy one or more messages. You can move messages by copying and deleting the original. The action will be applied to the messages you select above and all replies to those selected messages.


If you want to copy or move messages, specify the HyperNews path of a destination forum or message that all messages will be copied or moved to. The destination must already exist, so maybe create it first.

Path of Destination (a Forum or Message): (e.g. "test")

Notify Subscribers at destination
NO


If you want to delete messages (the default), specify that here. If you want to move messages, you need to delete the original messages; placeholders will be left pointing to where they were moved.

Delete Messages
NO


Caution: After deleteing messages (the default), if you have not copied them (i.e. no destination above), then the selected messages are not be recoverable.

Members Subscribe No Admin Mode Show Frames Help for HyperNews at pcmcia-cs.sourceforge.net 1.10
[ Edit This Forum ]