Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 31 Oct 2000 16:08:46 +0100
From:      Cejka Rudolf <cejkar@dcse.fee.vutbr.cz>
To:        freebsd-stable@freebsd.org
Subject:   Tagged queuing on ATA drives under heavy load
Message-ID:  <20001031160846.A5841@dcse.fee.vutbr.cz>

next in thread | raw e-mail | index | archive | help

Hi,
  I'm trying to test tagged queuing on ATA drives under heavy load
and there are some problems. My configuration is (fresh stable CVS):

FreeBSD 4.1.1-STABLE #0: Tue Oct 31 12:14:57 CET 2000
CPU: Pentium III/Pentium III Xeon/Celeron (737.02-MHz 686-class CPU)
  Origin = "GenuineIntel"  Id = 0x683  Stepping = 3
  Features=0x383f9ff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,MMX,FXSR,SSE>
real memory  = 134131712 (130988K bytes)
avail memory = 126414848 (123452K bytes)
atapci0: <Intel ICH2 ATA100 controller> port 0xa800-0xa80f at device 31.1 on pci0
ad0: 6149MB <QUANTUM FIREBALL CX6.4A> [13328/15/63] at ata0-master UDMA66
ad1: 14649MB <IBM-DTLA-307015> [29765/16/63] at ata0-slave tagged UDMA100
ad2: 14649MB <IBM-DTLA-307015> [29765/16/63] at ata1-master tagged UDMA100

Is it possible that source of problems is a combination of UDMA66 and
tagged UDMA100 on one channel?

My test script follows:

--
R="-a -v 3 -c 128 -n 8192"

for P in 1 2 3 4 5 6 8 10; do
	echo "disk_rawio_p_${P}" >&2
	sync ; sync ; sync
	rawio ${R} -p ${P} /dev/ad1s1e > disk_rawio_p_${P}_ad1.txt &
	rawio ${R} -p ${P} /dev/ad2s1e > disk_rawio_p_${P}_ad2.txt &
	wait
done
--

When I run only one rawio at a time (without "&" and "wait"), there is
not any problem. However, if I run this script with two parallel rawios
operating on different drives with increasing number of parallel processes
on each drive (-p), after some time kernel writes:

13:27:00 x /kernel: ad1: READ command timeout tag=0 serv=1 - resetting
13:27:00 x /kernel: ad1: invalidating queued requests
13:27:00 x /kernel: ata0: resetting devices .. ad1: invalidating queued requests
13:27:00 x /kernel: done
13:27:00 x /kernel: ad1: no request for this tag=0??
13:27:00 x /kernel: ad1: invalidating queued requests
13:27:10 x /kernel: ad1: READ command timeout tag=0 serv=1 - resetting
13:27:10 x /kernel: ad1: invalidating queued requests
13:27:10 x /kernel: ata0: resetting devices .. ad1: invalidating queued requests
13:27:10 x /kernel: done
13:27:10 x /kernel: ad1: no request for this tag=0??
13:27:10 x /kernel: ad1: invalidating queued requests
13:27:20 x /kernel: ad1: READ command timeout tag=0 serv=1 - resetting
13:27:20 x /kernel: ad1: invalidating queued requests
13:27:20 x /kernel: ata0: resetting devices .. ad1: invalidating queued requests
13:27:20 x /kernel: done
13:27:20 x /kernel: ad1: no request for this tag=0??
13:27:20 x /kernel: ad1: invalidating queued requests
13:27:30 x /kernel: ad1: READ command timeout tag=0 serv=1 - resetting
13:27:30 x /kernel: ad1: invalidating queued requests
13:27:30 x /kernel: ad1: trying fallback to PIO mode
13:27:30 x /kernel: ata0: resetting devices .. ad1: invalidating queued requests
13:27:30 x /kernel: done

Four times system continued in reduced mode for ad1 (third line
from bottom) and in fifth run kernel wrote some more messages with
another tags and stopped after writting

ad1: read interrupt arrived earlyad1: read error detected (too) late

The only possible thing to do were to type characters on concole,
but without any action. If you want, I can post full logs.

-- 
Rudolf Cejka   (cejkar@dcse.fee.vutbr.cz;  http://www.fee.vutbr.cz/~cejkar)
Brno University of Technology, Faculty of El. Engineering and Comp. Science
Bozetechova 2, 612 66  Brno, Czech Republic


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-stable" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20001031160846.A5841>