Bug 121539 - [ata] Interrupt storm booting 7.0-R/sparc64 on ultra5 [regression]
Summary: [ata] Interrupt storm booting 7.0-R/sparc64 on ultra5 [regression]
Status: Closed FIXED
Alias: None
Product: Base System
Classification: Unclassified
Component: sparc64 (show other bugs)
Version: 7.0-RELEASE
Hardware: Any Any
: Normal Affects Only Me
Assignee: freebsd-bugs (Nobody)
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2008-03-09 17:30 UTC by jpd
Modified: 2009-12-09 17:30 UTC (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description jpd 2008-03-09 17:30:01 UTC
Trying to boot FreeBSD 7.0R on an ultra5 resulted in the kernel failing
to proceed while displaying the following message:

  interrupt storm detected on "vec2016:"; throttling interrupt source


Fetched 7.0-RELEASE-sparc64-disc1.iso, put it on cd, checked md5 and
sha256 checksums, burned it successfully, and inserted it into my
ultra5. What follows is an edited script(1) transcript of the session
over serial, using tip(1) from another FreeBSD(/i386) system. Edited
are: removal of ^M and .^H sequences, and removal of duplicate lines
with edit note and count, masked mac addresses.

Shown is output of boot -v.


 Script started on Sun Mar  9 17:15:20 2008
 can't open log file /var/log/aculog.
 =07connected

 ok boot cdrom
 Initializing Memory [twirl]
 =20
 >> FreeBSD/sparc64 boot block
    Boot path:   /pci@1f,0/pci@1,1/ide@3/cdrom@2,0:f
    Boot loader: /boot/loader
 Consoles: Open Firmware console =20
 
 Booting with sun4u support.
 Boot path set to /pci@1f,0/pci@1,1/ide@3/cdrom@2,0:a
 
 FreeBSD/sparc64 bootstrap loader, Revision 1.0
 (root@obrian.cse.buffalo.edu, Sun Feb 24 17:36:50 UTC 2008)
 bootpath=3D"/pci@1f,0/pci@1,1/ide@3/cdrom@2,0:a"
 Loading /boot/defaults/loader.conf=20
 /boot/kernel/kernel data=3D0x6f0848+0x72c68 syms=3D[0x8+0x76920+0x8+0x6668e]
 
 Hit [Enter] to boot immediately, or any other key for command prompt.
 Booting [/boot/kernel/kernel] in 9 seconds...
 
 Type '?' for a list of commands, 'help' for more detailed help.
 OK boot -v
 nothing to autoload yet.
 jumping to kernel entry at 0xc0070000.
 Copyright (c) 1992-2008 The FreeBSD Project.
 Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
 	The Regents of the University of California. All rights reserved.
 FreeBSD is a registered trademark of The FreeBSD Foundation.
 FreeBSD 7.0-RELEASE #0: Mon Feb 25 09:35:41 UTC 2008
     root@obrian.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC
 Preloaded elf kernel "/boot/kernel/kernel" at 0xc0c44000.
 Preloaded mfs_root "/boot/mfsroot" at 0xc0c441c0.
 Timecounter "tick" frequency 360000000 Hz quality 1000
 real memory  =3D 536870912 (512 MB)
 avail memory =3D 502628352 (479 MB)
 machine: SUNW,Ultra-5_10
 cpu0: Sun Microsystems UltraSparc-IIi Processor (360.00 MHz CPU)
   mask=3D0x90 maxtl=3D5 maxwin=3D7
 wlan: <802.11 Link Layer>
 ath_rate: version 1.2 <SampleRate bit-rate selection algorithm>
 firmware: 'isp_1000' version 1: 20142 bytes loaded at 0xc0548bc0
 registered firmware set <isp_1000>
 firmware: 'isp_1040' version 1: 22944 bytes loaded at 0xc054da6e
 registered firmware set <isp_1040>
 firmware: 'isp_1040_it' version 1: 32942 bytes loaded at 0xc055340e
 registered firmware set <isp_1040_it>
 firmware: 'isp_1080' version 1: 31350 bytes loaded at 0xc055b4bc
 registered firmware set <isp_1080>
 firmware: 'isp_1080_it' version 1: 40644 bytes loaded at 0xc0562f32
 registered firmware set <isp_1080_it>
 firmware: 'isp_12160' version 1: 28050 bytes loaded at 0xc056cdf6
 registered firmware set <isp_12160>
 firmware: 'isp_12160_it' version 1: 40604 bytes loaded at 0xc0573b88
 registered firmware set <isp_12160_it>
 firmware: 'isp_2100' version 1: 76770 bytes loaded at 0xc057da24
 registered firmware set <isp_2100>
 firmware: 'isp_2200' version 1: 77214 bytes loaded at 0xc0590606
 registered firmware set <isp_2200>
 firmware: 'isp_2300' version 1: 105078 bytes loaded at 0xc05a33a4
 registered firmware set <isp_2300>
 firmware: 'isp_2322' version 1: 108856 bytes loaded at 0xc05bce1a
 registered firmware set <isp_2322>
 firmware: 'isp_2400' version 1: 172952 bytes loaded at 0xc05da9d4
 registered firmware set <isp_2400>
 random: <entropy source, Software, Yarrow>
 nfslock: pseudo-device
 mem: <memory>
 null: <null device, zero device>
 openfirm: <Open Firmware control device>
 ath_hal: 0.9.20.3 (AR5210, AR5211, AR5212, RF5111, RF5112, RF2413, RF5413, =
 REGOPS_FUNC)
 nexus0: <Open Firmware Nexus device>
 pcib0: <U2P UPA-PCI bridge> mem 0x1fe00000000-0x1fe0000ffff,0x1fe01000000-0=
 x1fe010000ff irq 2032,2030,2031,2021 on nexus0
 pcib0: Sabre, impl 0, version 0, IGN 0x1f, bus A
 initalizing intr_countp
 pcib0: [FILTER]
 pcib0: [FILTER]
 pcib0: [GIANT-LOCKED]
 pcib0: [ITHREAD]
 pcib0 dvma: DVMA map: 0xc0000000 to 0xc3ffffff
 pcib0: [FILTER]
 pci0: <OFW PCI bus> on pcib0
 pci0: domain=3D0, physical bus=3D0
 found->	vendor=3D0x108e, dev=3D0xa000, revid=3D0x00
 	domain=3D0, bus=3D0, slot=3D0, func=3D0
 	class=3D06-00-00, hdrtype=3D0x00, mfdev=3D0
 	cmdreg=3D0x0146, statreg=3D0x02a0, cachelnsz=3D0 (dwords)
 	lattimer=3D0x40 (1920 ns), mingnt=3D0x00 (0 ns), maxlat=3D0x00 (0 ns)
 found->	vendor=3D0x108e, dev=3D0x5000, revid=3D0x13
 	domain=3D0, bus=3D0, slot=3D1, func=3D1
 	class=3D06-04-00, hdrtype=3D0x01, mfdev=3D1
 	cmdreg=3D0x0147, statreg=3D0x02a0, cachelnsz=3D16 (dwords)
 	lattimer=3D0x20 (960 ns), mingnt=3D0x02 (500 ns), maxlat=3D0x00 (0 ns)
 found->	vendor=3D0x108e, dev=3D0x5000, revid=3D0x13
 	domain=3D0, bus=3D0, slot=3D1, func=3D0
 	class=3D06-04-00, hdrtype=3D0x01, mfdev=3D1
 	cmdreg=3D0x0147, statreg=3D0x02a0, cachelnsz=3D16 (dwords)
 	lattimer=3D0x20 (960 ns), mingnt=3D0x02 (500 ns), maxlat=3D0x00 (0 ns)
 pcib1: <APB PCI-PCI bridge> at device 1.1 on pci0
 pcib1:   domain            0
 pcib1:   secondary bus     1
 pcib1:   subordinate bus   1
 pcib1:   I/O decode        0xc00000-0xdfffff, 0xe00000-0xffffff
 pcib1:   memory decode     0xe0000000-0xffffffff
 pci1: <OFW PCI bus> on pcib1
 pci1: domain=3D0, physical bus=3D1
 found->	vendor=3D0x108e, dev=3D0x1000, revid=3D0x01
 	domain=3D0, bus=3D1, slot=3D1, func=3D0
 	class=3D06-80-00, hdrtype=3D0x00, mfdev=3D1
 	cmdreg=3D0x0146, statreg=3D0x0280, cachelnsz=3D16 (dwords)
 	lattimer=3D0x52 (2460 ns), mingnt=3D0x0a (2500 ns), maxlat=3D0x19 (6250 ns)
 	map[10]: type Memory, range 32, base rxf0000000, size 24, enabled
 pcib1: device (null)-1 requested decoded memory range 0xf0000000-0xf0ffffff
 	map[14]: type Memory, range 32, base rxf1000000, size 23, enabled
 pcib1: device (null)-1 requested decoded memory range 0xf1000000-0xf17fffff
 found->	vendor=3D0x108e, dev=3D0x1001, revid=3D0x01
 	domain=3D0, bus=3D1, slot=3D1, func=3D1
 	class=3D02-00-00, hdrtype=3D0x00, mfdev=3D1
 	cmdreg=3D0x0000, statreg=3D0x0280, cachelnsz=3D16 (dwords)
 	lattimer=3D0x52 (2460 ns), mingnt=3D0x0a (2500 ns), maxlat=3D0x05 (1250 ns)
 	map[10]: type Memory, range 32, base rxe0000000, size 15, memory disabled
 pcib1: device (null)-1 requested decoded memory range 0xe0000000-0xe0007fff
 found->	vendor=3D0x1002, dev=3D0x4750, revid=3D0x5c
 	domain=3D0, bus=3D1, slot=3D2, func=3D0
 	class=3D03-00-00, hdrtype=3D0x00, mfdev=3D0
 	cmdreg=3D0x0080, statreg=3D0x0280, cachelnsz=3D16 (dwords)
 	lattimer=3D0x42 (1980 ns), mingnt=3D0x08 (2000 ns), maxlat=3D0x00 (0 ns)
 	intpin=3Da, irq=3D255
 	map[10]: type Memory, range 32, base rxe1000000, size 24, memory disabled
 pcib1: device (null)-1 requested decoded memory range 0xe1000000-0xe1ffffff
 	map[14]: type I/O Port, range 32, base r, size  8, port disabled
 	map[18]: type Memory, range 32, base rxe2000000, size 12, enabled
 pcib1: device (null)-1 requested decoded memory range 0xe2000000-0xe2000fff
 found->	vendor=3D0x1095, dev=3D0x0646, revid=3D0x03
 	domain=3D0, bus=3D1, slot=3D3, func=3D0
 	class=3D01-01-8f, hdrtype=3D0x00, mfdev=3D0
 	cmdreg=3D0x0001, statreg=3D0x0280, cachelnsz=3D0 (dwords)
 	lattimer=3D0x10 (480 ns), mingnt=3D0x02 (500 ns), maxlat=3D0x04 (1000 ns)
 	intpin=3Da, irq=3D255
 	map[10]: type I/O Port, range 32, base rxc00000, size  3, enabled
 pcib1: device (null)-1 requested decoded I/O range 0xc00000-0xc00007
 	map[14]: type I/O Port, range 32, base rxc00008, size  2, enabled
 pcib1: device (null)-1 requested decoded I/O range 0xc00008-0xc0000b
 	map[18]: type I/O Port, range 32, base rxc00010, size  3, enabled
 pcib1: device (null)-1 requested decoded I/O range 0xc00010-0xc00017
 	map[1c]: type I/O Port, range 32, base rxc00018, size  2, enabled
 pcib1: device (null)-1 requested decoded I/O range 0xc00018-0xc0001b
 	map[20]: type I/O Port, range 32, base rxc00020, size  4, enabled
 pcib1: device (null)-1 requested decoded I/O range 0xc00020-0xc0002f
 ebus0: <PCI-EBus2 bridge> mem 0xf0000000-0xf0ffffff,0xf1000000-0xf17fffff a=
 t device 1.0 on pci1
 ebus0: Reserved 0x1000000 bytes for rid 0x10 type 3 at 0xf0000000
 ebus0: Reserved 0x800000 bytes for rid 0x14 type 3 at 0xf1000000
 auxio0: <Sun Auxiliary I/O> addr 0x1400726000-0x1400726003,0x1400728000-0x1=
 400728003,0x140072a000-0x140072a003,0x140072c000-0x140072c003,0x140072f000-=
 0x140072f003 on ebus0
 ebus0: <power> addr 0x1400724000-0x1400724003 irq 37 (no driver attached)
 ebus0: <SUNW,pll> addr 0x1400504000-0x1400504002 (no driver attached)
 scc0: <Siemens SAB 82532 dual channel SCC> addr 0x1400400000-0x140040007f i=
 rq 43 on ebus0
 scc0: not resetting hardware
 scc0: [FILTER]
 uart0: <SAB 82532 v3.2, channel A> on scc0
 uart0: [FILTER]
 uart0: CTS oflow
 uart0: fast interrupt
 uart0: console (9600,n,8,1)
 uart1: <SAB 82532 v3.2, channel B> on scc0
 uart1: [FILTER]
 uart1: CTS oflow
 uart1: fast interrupt
 scc0: fast interrupt
 uart2: <16550 or compatible> addr 0x14003083f8-0x14003083ff irq 41 on ebus0
 uart2: [FILTER]
 uart2: fast interrupt
 uart2: keyboard (1200,n,8,1)
 uart2: keyboard not present
 uart3: <16550 or compatible> addr 0x14003062f8-0x14003062ff irq 42 on ebus0
 uart3: [FILTER]
 uart3: fast interrupt
 ebus0: <ecpp> addr 0x14003043bc-0x14003043cb,0x140030015c-0x140030015d,0x14=
 00700000-0x140070000f irq 34 (no driver attached)
 ebus0: <fdthree> addr 0x14003023f0-0x14003023f7,0x1400706000-0x140070600f,0=
 x1400720000-0x1400720003 irq 39 (no driver attached)
 eeprom0: <EEPROM/clock> addr 0x1400000000-0x1400001fff on ebus0
 eeprom0: model mk48t59
 eeprom0: registered as a time-of-day clock (resolution 1000000us)
 eeprom0: current time: 1205079408.000000000
 ebus0: <flashprom> addr 0x1000000000-0x10000fffff (no driver attached)
 ebus0: <SUNW,CS4231> addr 0x1400200000-0x14002000ff,0x1400702000-0x14007020=
 0f,0x1400704000-0x140070400f,0x1400722000-0x1400722003 irq 35,36 (no driver=
  attached)
 hme0: <Sun HME 10/100 Ethernet> mem 0xe0000000-0xe0007fff at device 1.1 on =
 pci1
 hme0: Reserved 0x8000 bytes for rid 0x10 type 3 at 0xe0000000
 miibus0: <MII bus> on hme0
 nsphy0: <DP83840 10/100 media interface> PHY 1 on miibus0
 nsphy0:  10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
 hme0: bpf attached
 hme0: Ethernet address: xx:xx:xx:xx:xx:xx
 hme0: [MPSAFE]
 hme0: [ITHREAD]
 machfb0: <ATI 3D Rage Pro> mem 0xe1000000-0xe1ffffff,0xe2000000-0xe2000fff =
 at device 2.0 on pci1
 machfb0: Reserved 0x1000000 bytes for rid 0x10 type 3 at 0xe1000000
 machfb0: Reserved 0x1000 bytes for rid 0x18 type 3 at 0xe2000000
 machfb0: 16 MB aperture at 0xd5ad6000, 1 KB registers at 0xe17ffc00
 machfb0: 4096 KB SGRAM 98.924 MHz, maximum RAMDAC clock 230 MHz, DSP
 machfb0: resolution 800x600 at 8 bpp
 atapci0: <SiI CMD 646 WDMA2 controller> port 0xc00000-0xc00007,0xc00008-0xc=
 0000b,0xc00010-0xc00017,0xc00018-0xc0001b,0xc00020-0xc0002f at device 3.0 o=
 n pci1
 atapci0: Reserved 0x10 bytes for rid 0x20 type 4 at 0xc00020
 atapci0: [MPSAFE]
 atapci0: [ITHREAD]
 ata2: <ATA channel 0> on atapci0
 atapci0: Reserved 0x8 bytes for rid 0x10 type 4 at 0xc00000
 atapci0: Reserved 0x4 bytes for rid 0x14 type 4 at 0xc00008
 ata2: reset tp1 mask=3D03 ostat0=3D50 ostat1=3D00
 ata2: stat0=3D0x50 err=3D0x01 lsb=3D0x00 msb=3D0x00
 ata2: stat1=3D0x00 err=3D0x01 lsb=3D0x00 msb=3D0x00
 ata2: reset tp2 stat0=3D50 stat1=3D00 devices=3D0x1<ATA_MASTER>
 ata2: [MPSAFE]
 ata2: [ITHREAD]
 ata3: <ATA channel 1> on atapci0
 atapci0: Reserved 0x8 bytes for rid 0x18 type 4 at 0xc00010
 atapci0: Reserved 0x4 bytes for rid 0x1c type 4 at 0xc00018
 ata3: reset tp1 mask=3D03 ostat0=3D50 ostat1=3D00
 ata3: stat0=3D0x00 err=3D0x01 lsb=3D0x14 msb=3D0xeb
 ata3: stat1=3D0x00 err=3D0x00 lsb=3D0x00 msb=3D0x00
 ata3: reset tp2 stat0=3D00 stat1=3D00 devices=3D0x4<ATAPI_MASTER>
 ata3: [MPSAFE]
 ata3: [ITHREAD]
 pcib2: <APB PCI-PCI bridge> at device 1.0 on pci0
 pcib2:   domain            0
 pcib2:   secondary bus     2
 pcib2:   subordinate bus   2
 pcib2:   I/O decode        0x0-0x1fffff, 0x200000-0x3fffff, 0x400000-0x5fff=
 ff, 0x600000-0x7fffff, 0x800000-0x9fffff, 0xa00000-0xbfffff
 pcib2:   memory decode     0x0-0x1fffffff, 0x20000000-0x3fffffff, 0x4000000=
 0-0x5fffffff, 0x60000000-0x7fffffff, 0x80000000-0x9fffffff, 0xa0000000-0xbf=
 ffffff
 pci2: <OFW PCI bus> on pcib2
 pci2: domain=3D0, physical bus=3D2
 found->	vendor=3D0x1011, dev=3D0x0024, revid=3D0x03
 	domain=3D0, bus=3D2, slot=3D3, func=3D0
 	class=3D06-04-00, hdrtype=3D0x01, mfdev=3D0
 	cmdreg=3D0x0007, statreg=3D0x0290, cachelnsz=3D16 (dwords)
 	lattimer=3D0x00 (0 ns), mingnt=3D0x00 (0 ns), maxlat=3D0x00 (0 ns)
 	powerspec 1  supports D0 D3  current D0
 pcib3: <OFW PCI-PCI bridge> at device 3.0 on pci2
 pcib3:   domain            0
 pcib3:   secondary bus     3
 pcib3:   subordinate bus   3
 pcib3:   I/O decode        0x1000-0x1fff
 pcib3:   memory decode     0x100000-0x1fffff
 pcib3:   no prefetched decode
 pci3: <OFW PCI bus> on pcib3
 pci3: domain=3D0, physical bus=3D3
 found->	vendor=3D0x1011, dev=3D0x0019, revid=3D0x41
 	domain=3D0, bus=3D3, slot=3D4, func=3D0
 	class=3D02-00-00, hdrtype=3D0x00, mfdev=3D0
 	cmdreg=3D0x0000, statreg=3D0x0280, cachelnsz=3D16 (dwords)
 	lattimer=3D0xa5 (4950 ns), mingnt=3D0x14 (5000 ns), maxlat=3D0x28 (10000 n=
 s)
 	intpin=3Da, irq=3D255
 	map[10]: type I/O Port, range 32, base rx1000, size  7, port disabled
 pcib3: requested I/O range 0x1000-0x107f: in range
 pcib2: device (null)-1 requested decoded I/O range 0x1000-0x107f
 	map[14]: type Memory, range 32, base rx100000, size 10, memory disabled
 pcib3: requested memory range 0x100000-0x1003ff: good
 pcib2: device (null)-1 requested decoded memory range 0x100000-0x1003ff
 found->	vendor=3D0x1011, dev=3D0x0019, revid=3D0x41
 	domain=3D0, bus=3D3, slot=3D5, func=3D0
 	class=3D02-00-00, hdrtype=3D0x00, mfdev=3D0
 	cmdreg=3D0x0000, statreg=3D0x0280, cachelnsz=3D16 (dwords)
 	lattimer=3D0xa5 (4950 ns), mingnt=3D0x14 (5000 ns), maxlat=3D0x28 (10000 n=
 s)
 	intpin=3Da, irq=3D255
 	map[10]: type I/O Port, range 32, base rx1080, size  7, port disabled
 pcib3: requested I/O range 0x1080-0x10ff: in range
 pcib2: device (null)-1 requested decoded I/O range 0x1080-0x10ff
 	map[14]: type Memory, range 32, base rx102000, size 10, memory disabled
 pcib3: requested memory range 0x102000-0x1023ff: good
 pcib2: device (null)-1 requested decoded memory range 0x102000-0x1023ff
 found->	vendor=3D0x1011, dev=3D0x0019, revid=3D0x41
 	domain=3D0, bus=3D3, slot=3D6, func=3D0
 	class=3D02-00-00, hdrtype=3D0x00, mfdev=3D0
 	cmdreg=3D0x0000, statreg=3D0x0280, cachelnsz=3D16 (dwords)
 	lattimer=3D0xa5 (4950 ns), mingnt=3D0x14 (5000 ns), maxlat=3D0x28 (10000 n=
 s)
 	intpin=3Da, irq=3D255
 	map[10]: type I/O Port, range 32, base rx1400, size  7, port disabled
 pcib3: requested I/O range 0x1400-0x147f: in range
 pcib2: device (null)-1 requested decoded I/O range 0x1400-0x147f
 	map[14]: type Memory, range 32, base rx104000, size 10, memory disabled
 pcib3: requested memory range 0x104000-0x1043ff: good
 pcib2: device (null)-1 requested decoded memory range 0x104000-0x1043ff
 found->	vendor=3D0x1011, dev=3D0x0019, revid=3D0x41
 	domain=3D0, bus=3D3, slot=3D7, func=3D0
 	class=3D02-00-00, hdrtype=3D0x00, mfdev=3D0
 	cmdreg=3D0x0000, statreg=3D0x0280, cachelnsz=3D16 (dwords)
 	lattimer=3D0xa5 (4950 ns), mingnt=3D0x14 (5000 ns), maxlat=3D0x28 (10000 n=
 s)
 	intpin=3Da, irq=3D255
 	map[10]: type I/O Port, range 32, base rx1480, size  7, port disabled
 pcib3: requested I/O range 0x1480-0x14ff: in range
 pcib2: device (null)-1 requested decoded I/O range 0x1480-0x14ff
 	map[14]: type Memory, range 32, base rx106000, size 10, memory disabled
 pcib3: requested memory range 0x106000-0x1063ff: good
 pcib2: device (null)-1 requested decoded memory range 0x106000-0x1063ff
 dc0: <Intel 21143 10/100BaseTX> port 0x1000-0x107f mem 0x100000-0x1003ff at=
  device 4.0 on pci3
 dc0: Reserved 0x80 bytes for rid 0x10 type 4 at 0x1000
 pcib3: slot 4 INTA is routed to irq 24
 miibus1: <MII bus> on dc0
 ukphy0: <Generic IEEE 802.3u media interface> PHY 1 on miibus1
 ukphy0: OUI 0x080017, model 0x0001, rev. 0
 ukphy0:  10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
 dc0: bpf attached
 dc0: Ethernet address: xx:xx:xx:xx:xx:xx
 pcib0: installed DMA sync workaround for device 4.0 on bus 3
 dc0: [MPSAFE]
 dc0: [ITHREAD]
 dc1: <Intel 21143 10/100BaseTX> port 0x1080-0x10ff mem 0x102000-0x1023ff at=
  device 5.0 on pci3
 dc1: Reserved 0x80 bytes for rid 0x10 type 4 at 0x1080
 pcib3: slot 5 INTA is routed to irq 25
 miibus2: <MII bus> on dc1
 ukphy1: <Generic IEEE 802.3u media interface> PHY 1 on miibus2
 ukphy1: OUI 0x080017, model 0x0001, rev. 0
 ukphy1:  10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
 dc1: bpf attached
 dc1: Ethernet address: xx:xx:xx:xx:xx:xx
 pcib0: installed DMA sync workaround for device 5.0 on bus 3
 dc1: [MPSAFE]
 dc1: [ITHREAD]
 dc2: <Intel 21143 10/100BaseTX> port 0x1400-0x147f mem 0x104000-0x1043ff at=
  device 6.0 on pci3
 dc2: Reserved 0x80 bytes for rid 0x10 type 4 at 0x1400
 pcib3: slot 6 INTA is routed to irq 26
 miibus3: <MII bus> on dc2
 ukphy2: <Generic IEEE 802.3u media interface> PHY 1 on miibus3
 ukphy2: OUI 0x080017, model 0x0001, rev. 0
 ukphy2:  10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
 dc2: bpf attached
 dc2: Ethernet address: xx:xx:xx:xx:xx:xx
 pcib0: installed DMA sync workaround for device 6.0 on bus 3
 dc2: [MPSAFE]
 dc2: [ITHREAD]
 dc3: <Intel 21143 10/100BaseTX> port 0x1480-0x14ff mem 0x106000-0x1063ff at=
  device 7.0 on pci3
 dc3: Reserved 0x80 bytes for rid 0x10 type 4 at 0x1480
 pcib3: slot 7 INTA is routed to irq 27
 miibus4: <MII bus> on dc3
 ukphy3: <Generic IEEE 802.3u media interface> PHY 1 on miibus4
 ukphy3: OUI 0x080017, model 0x0001, rev. 0
 ukphy3:  10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
 dc3: bpf attached
 dc3: Ethernet address: xx:xx:xx:xx:xx:xx
 pcib0: installed DMA sync workaround for device 7.0 on bus 3
 dc3: [MPSAFE]
 dc3: [ITHREAD]
 syscons0: <System console> on nexus0
 syscons0: Unknown <16 virtual consoles, flags=3D0x100>
 syscons0: fb0, terminal emulator: sc (syscons terminal)
 procfs registered
 Timecounters tick every 1.000 msec
 lo0: bpf attached
 md0: Preloaded image </boot/mfsroot> 4194304 bytes at 0xc0840470
 ata2-master: pio=3DPIO4 wdma=3DWDMA2 udma=3DUDMA133 cable=3D80 wire
 ad0: setting PIO4 on CMD 646 chip
 ad0: setting WDMA2 on CMD 646 chip
 ad0: 194481MB <Maxtor 6Y200P0 YAR41VW0> at ata2-master WDMA2
 ad0: 398297088 sectors [395136C/16H/63S] 16 sectors/interrupt 1 depth queue
 ata3-master: pio=3DPIO4 wdma=3DWDMA2 udma=3DUDMA33 cable=3D40 wire
 GEOM: new disk ad0
 acd0: setting PIO4 on CMD 646 chip
 acd0: setting WDMA2 on CMD 646 chip
 acd0: <HL-DT-STDVD-ROM GDR8163B/0L14> DVDR drive at ata3 as master
 acd0: read 8958KB/s (8958KB/s) write 172KB/s, 256KB buffer, WDMA2
 acd0: Reads: CDDA
 acd0: Writes: CDR, CDRW, DVDR, DVDRAM, test write
 acd0: Audio: play, 256 volume levels
 acd0: Mechanism: ejectable tray, unlocked
 acd0: Medium: CD-ROM 120mm data disc
 interrupt storm detected on "vec2016:"; throttling interrupt source
 interrupt storm detected on "vec2016:"; throttling interrupt source
 interrupt storm detected on "vec2016:"; throttling interrupt source
 interrupt storm detected on "vec2016:"; throttling interrupt source
 interrupt storm detected on "vec2016:"; throttling interrupt source
 interrupt storm detected on "vec2016:"; throttling interrupt source
 interrupt storm detected on "vec2016:"; throttling interrupt source
 interrupt storm detected on "vec2016:"; throttling interrupt source
 interrupt storm detected on "vec2016:"; throttling interrupt source
 interrupt storm detected on "vec2016:"; throttling interrupt source
 interrupt storm detected on "vec2016:"; throttling interrupt source
 interrupt storm detected on "vec2016:"; throttling interrupt source
 interrupt storm detected on "vec2016:"; throttling interrupt source
 interrupt storm detected on "vec2016:"; throttling interrupt source
 interrupt storm detected on "vec2016:"; throttling interrupt source
 interrupt storm detected on "vec2016:"; throttling interrupt source
 interrupt storm detected on "vec2016:"; throttling interrupt source
 interrupt storm detected on "vec2016:"; throttling interrupt source
 interrupt storm detected on "vec2016:"; throttling interrupt source
 interrupt storm detected on "vec2016:"; throttling interrupt source
 interrupt storm detected on "vec2016:"; throttling interrupt source
 interrupt storm detected on "vec2016:"; throttling interrupt source
 interrupt storm detected on "vec2016:"; throttling interrupt source
 interrupt storm detected on "vec2016:"; throttling interrupt source
 interrupt storm detected on "vec2016:"; throttling interrupt source
 interrupt storm detected on "vec2016:"; throttling interrupt source
 interrupt storm detected on "vec2016:"; throttling interrupt source
 ata3: reiniting channel ..
 ata3: reset tp1 mask=3D03 ostat0=3D51 ostat1=3D00
 ata3: stat0=3D0x00 err=3D0x01 lsb=3D0x14 msb=3D0xeb
 ata3: stat1=3D0x00 err=3D0x00 lsb=3D0x00 msb=3D0x00
 ata3: reset tp2 stat0=3D00 stat1=3D00 devices=3D0x4<ATAPI_MASTER>
 acd0: setting PIO4 on CMD 646 chip
 acd0: setting WDMA2 on CMD 646 chip
 ata3: reinit done ..
 acd0: TIMEOUT - READ_BIG retrying (1 retry left)
 interrupt storm detected on "vec2016:"; throttling interrupt source
 [*** 26 duplicate lines snipped ***]
 ata3: reiniting channel ..
 ata3: reset tp1 mask=3D03 ostat0=3D51 ostat1=3D00
 ata3: stat0=3D0x00 err=3D0x01 lsb=3D0x14 msb=3D0xeb
 ata3: stat1=3D0x00 err=3D0x00 lsb=3D0x00 msb=3D0x00
 ata3: reset tp2 stat0=3D00 stat1=3D00 devices=3D0x4<ATAPI_MASTER>
 acd0: setting PIO4 on CMD 646 chip
 acd0: setting WDMA2 on CMD 646 chip
 ata3: reinit done ..
 acd0: TIMEOUT - READ_BIG retrying (0 retries left)
 interrupt storm detected on "vec2016:"; throttling interrupt source
 [*** 26 duplicate lines snipped ***]
 ata3: reset tp1 mask=3D03 ostat0=3D51 ostat1=3D00
 ata3: stat0=3D0x00 err=3D0x01 lsb=3D0x14 msb=3D0xeb
 ata3: stat1=3D0x00 err=3D0x00 lsb=3D0x00 msb=3D0x00
 ata3: reset tp2 stat0=3D00 stat1=3D00 devices=3D0x4<ATAPI_MASTER>
 acd0: setting PIO4 on CMD 646 chip
 acd0: setting WDMA2 on CMD 646 chip
 ata3: reinit done ..
 acd0: FAILURE - READ_BIG timed out
 GEOM_LABEL: Label for provider acd0 is iso9660/FreeBSD_Install.
 interrupt storm detected on "vec2016:"; throttling interrupt source
 [*** 26 duplicate lines snipped ***]
 interrupt storm detected on "vec2016:"; throttling interrupt source
 ata3: reiniting channel ..
 ata3: reset tp1 mask=3D03 ostat0=3D51 ostat1=3D00
 ata3: stat0=3D0x00 err=3D0x01 lsb=3D0x14 msb=3D0xeb
 ata3: stat1=3D0x00 err=3D0x00 lsb=3D0x00 msb=3D0x00
 ata3: reset tp2 stat0=3D00 stat1=3D00 devices=3D0x4<ATAPI_MASTER>
 acd0: setting PIO4 on CMD 646 chip
 acd0: setting WDMA2 on CMD 646 chip
 ata3: reinit done ..
 acd0: TIMEOUT - READ_BIG retrying (1 retry left)
 interrupt storm detected on "vec2016:"; throttling interrupt source
 [*** 26 duplicate lines snipped ***]
 ata3: reiniting channel ..
 ata3: reset tp1 mask=3D03 ostat0=3D51 ostat1=3D00
 ata3: stat0=3D0x00 err=3D0x01 lsb=3D0x14 msb=3D0xeb
 ata3: stat1=3D0x00 err=3D0x00 lsb=3D0x00 msb=3D0x00
 ata3: reset tp2 stat0=3D00 stat1=3D00 devices=3D0x4<ATAPI_MASTER>
 acd0: setting PIO4 on CMD 646 chip
 acd0: setting WDMA2 on CMD 646 chip
 ata3: reinit done ..
 acd0: TIMEOUT - READ_BIG retrying (0 retries left)
 interrupt storm detected on "vec2016:"; throttling interrupt source
 interrupt storm detected on "vec2016:"; throttling interrupt source
 interrupt storm detected on "vec2016:"; throttling interrupt source
 interrupt storm detected on "vec2016:"; throttling interrupt source
 interrupt storm detected on "vec2016:"; throttling interrupt source
 interrupt storm detected on "vec2016:"; throttling interrupt source
 interrupt storm detected on "vec2016:"; throttling interrupt source
 interrupt storm detected on "vec2016:"; throttling interrupt source
 interrupt storm detected on "vec2016:"; throttling interrupt source
 interrupt storm detected on "vec2016:"; throttling interrupt source
 ~
 [EOT]
 
 Script done on Sun Mar  9 17:20:08 2008

Fix: 

N/A
How-To-Repeat: See Description.
Comment 1 marius 2008-03-12 22:54:45 UTC
On Sun, Mar 09, 2008 at 06:07:28PM +0100, jpd@dsb.tudelft.nl wrote:

<...>

>  ata3: reiniting channel ..
>  ata3: reset tp1 mask=3D03 ostat0=3D51 ostat1=3D00
>  ata3: stat0=3D0x00 err=3D0x01 lsb=3D0x14 msb=3D0xeb
>  ata3: stat1=3D0x00 err=3D0x00 lsb=3D0x00 msb=3D0x00
>  ata3: reset tp2 stat0=3D00 stat1=3D00 devices=3D0x4<ATAPI_MASTER>
>  acd0: setting PIO4 on CMD 646 chip
>  acd0: setting WDMA2 on CMD 646 chip
>  ata3: reinit done ..
>  acd0: TIMEOUT - READ_BIG retrying (0 retries left)
>  interrupt storm detected on "vec2016:"; throttling interrupt source
>  interrupt storm detected on "vec2016:"; throttling interrupt source
>  interrupt storm detected on "vec2016:"; throttling interrupt source
>  interrupt storm detected on "vec2016:"; throttling interrupt source
>  interrupt storm detected on "vec2016:"; throttling interrupt source
>  interrupt storm detected on "vec2016:"; throttling interrupt source
>  interrupt storm detected on "vec2016:"; throttling interrupt source
>  interrupt storm detected on "vec2016:"; throttling interrupt source
>  interrupt storm detected on "vec2016:"; throttling interrupt source
>  interrupt storm detected on "vec2016:"; throttling interrupt source

Vector 2016 is the ATA controller and the ata(4)/acd(4) apparently
has some problems accessing the CD. Could you please check whether
the cabling and the drive are ok and functional?

Marius
Comment 2 jpd 2008-03-13 00:13:39 UTC
On Wed, Mar 12, 2008 at 23:54:45 +0100, Marius Strobl wrote:
[snip!]
> Vector 2016 is the ATA controller and the ata(4)/acd(4) apparently
> has some problems accessing the CD. Could you please check whether
> the cabling and the drive are ok and functional?

Apologies for the narrative. The answer to your question is in the next
and the paragraphs before the last interrupt storm. The rest is me
attempting to be thorough. In short: Yes, overall I think they're ok.


I just checked and the cable on the hard drive end said 'click' when I
pushed on it on the drive's side. A marginal connection seems likely.
The other connections seem to be ok, if old ata33-only cables. The cdrom
I swapped with a then-new dvd drive (IE it's not sun-original) and it
should be ok. It was used for installing 5.4 and solaris 10 from dvd a
while back. The system has been mostly offline in the meantime.

I'd like to note that booting 5.4 (which I did before and after trying
to boot 7.0 for the first time) didn't have the problem, but 7.0 did,
both while booting from cdrom and from hard drive, so whether that was
an actual marginal connection, I guess we'll find out next (see below).

I probably should've made the connection between the one and the
other notice, altough not knowing what vector 2016 was, I substituted
ignorance and went ahead. I noticed that *eventually* it'll go through,
maybe prodded along by sending a couple of breaks, at which point I
rolled a 7.0 base+man over the previous one. Once it booted it stopped
complaining, mostly.

Then I checked out src and built a custom kernel. Installing it would
get me DMA errors when it got to the twe module, altough (again) brute
force eventually got around it.

On a lark I checked out the relevant bits of ports and installed
smartmontools, and ran an offline test. The output looked all green
except for a non-zero but low (14) Reallocated_Event_Count. So I think
the hard disk drive and presumably the dvd drive are in reasonable
shape.

While I'm writing this the machine sat twirling away just as it did
before, *very slowly* twirling away loading the kernel (which it did do
much faster even with the interrupt storm messages coming up later) and
eventually getting to a bootstage, but it will then panic. If this keeps
up after I get a fresh image on it, I'll ask for help about that.

  Consoles: Open Firmware console  
  
  Booting with sun4u support.
  
  FreeBSD/sparc64 bootstrap loader, Revision 1.0
  (root@obrian.cse.buffalo.edu, Sun Feb 24 17:36:50 UTC 2008)
  bootpath="/pci@1f,0/pci@1,1/ide@3/disk@0,0:a"
  Loading /boot/defaults/loader.conf 
  /boot/kernel/kernel data=0x412648+0x5b2a8 syms=[0x8+0x59340+0x8+0x4e312]
  /
  Hit [Enter] to boot immediately, or any other key for command prompt.
  Booting [/boot/kernel/kernel]...               
  nothing to autoload yet.
  jumping to kernel entry at 0xc0060000.
  Copyright (c) 1992-2008 The FreeBSD Project.
  Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
          The Regents of the University of California. All rights reserved.
  FreeBSD is a registered trademark of The FreeBSD Foundation.
  FreeBSD 7.0-RELEASE #1: Tue Mar 11 21:11:39 UTC 2008
      root@aquablue.local:/usr/src/sys/sparc64/compile/AQUABLUE
  panic: trap: memory address not aligned
  Uptime: 1s

I might very well have forgotten something important in the compile,
but I can't help but wonder why it started to load so slowly after I
installed my custom kernel. Compile #0 worked, though. I'll see what
happens when I get it to boot GENERIC again, compile again, and so
forth.


Now, long story short: I double-checked the connections, closed up
the case, and booted GENERIC from the install cd again. Booting with
hw.ata.atapi_dma=0 and .ata_dma=0 makes the interrupt storm go away,
altough it will still complain:

acd0: FAILURE - READ_BIG ILLEGAL REQUEST asc=0x64 ascq=0x00 
GEOM_LABEL: Label for provider acd0 is iso9660/FreeBSD_Install.
acd0: FAILURE - READ_BIG ILLEGAL REQUEST asc=0x64 ascq=0x00 

Only three lines though. atapi_dma=0 and ata_dma=1 does the same.
atapi_dma=1 and ata_dma=0 brings the interrupt storms back again.

While in an emergency shell booted with hw.ata.atapi_dma=0 I managed to
trigger an interrupt storm by accessing the cdrom (`ls') anyway:

interrupt storm detected on "vec2016:"; throttling interrupt source
interrupt storm detected on "vec2016:"; throttling interrupt source
interrupt storm detected on "vec2016:"; throttling interrupt source
ata2: reiniting channel ..
ata2: reset tp1 mask=03 ostat0=51 ostat1=00
ata2: stat0=0x50 err=0x01 lsb=0x00 msb=0x00
ata2: stat1=0x00 err=0x01 lsb=0x00 msb=0x00
ata2: reset tp2 stat0=50 stat1=00 devices=0x1<ATA_MASTER>
ad0: setting PIO4 on CMD 646 chip
ad0: setting WDMA2 on CMD 646 chip
ata2: reinit done ..
ad0: TIMEOUT - READ_DMA retrying (1 retry left) LBA=376800
interrupt storm detected on "vec2016:"; throttling interrupt source
interrupt storm detected on "vec2016:"; throttling interrupt source
interrupt storm detected on "vec2016:"; throttling interrupt source
interrupt storm detected on "vec2016:"; throttling interrupt source
ata2: reiniting channel ..
ata2: reset tp1 mask=03 ostat0=51 ostat1=00
ata2: stat0=0x50 err=0x01 lsb=0x00 msb=0x00
ata2: stat1=0x00 err=0x01 lsb=0x00 msb=0x00
ata2: reset tp2 stat0=50 stat1=00 devices=0x1<ATA_MASTER>
ad0: setting PIO4 on CMD 646 chip
ad0: setting WDMA2 on CMD 646 chip
ata2: reinit done ..
ad0: TIMEOUT - READ_DMA retrying (0 retries left) LBA=376800
interrupt storm detected on "vec2016:"; throttling interrupt source
interrupt storm detected on "vec2016:"; throttling interrupt source
interrupt storm detected on "vec2016:"; throttling interrupt source
ata2: reiniting channel ..
ata2: reset tp1 mask=03 ostat0=51 ostat1=00
ata2: stat0=0x50 err=0x01 lsb=0x00 msb=0x00
ata2: stat1=0x00 err=0x01 lsb=0x00 msb=0x00
ata2: reset tp2 stat0=50 stat1=00 devices=0x1<ATA_MASTER>
ad0: setting PIO4 on CMD 646 chip
ad0: setting WDMA2 on CMD 646 chip
ata2: reinit done ..
ad0: FAILURE - READ_DMA timed out LBA=376800
g_vfs_done():ad0a[READ(offset=192921600, length=16384)]error = 5
interrupt storm detected on "vec2016:"; throttling interrupt source
interrupt storm detected on "vec2016:"; throttling interrupt source
interrupt storm detected on "vec2016:"; throttling interrupt source
ata2: reiniting channel ..
ata2: reset tp1 mask=03 ostat0=51 ostat1=00
ata2: stat0=0x50 err=0x01 lsb=0x00 msb=0x00
ata2: stat1=0x00 err=0x01 lsb=0x00 msb=0x00
ata2: reset tp2 stat0=50 stat1=00 devices=0x1<ATA_MASTER>
ad0: setting PIO4 on CMD 646 chip
ad0: setting WDMA2 on CMD 646 chip
ata2: reinit done ..
ad0: TIMEOUT - READ_DMA retrying (1 retry left) LBA=376800
interrupt storm detected on "vec2016:"; throttling interrupt source
interrupt storm detected on "vec2016:"; throttling interrupt source
interrupt storm detected on "vec2016:"; throttling interrupt source
interrupt storm detected on "vec2016:"; throttling interrupt source
ata2: reiniting channel ..
ata2: reset tp1 mask=03 ostat0=51 ostat1=00
ata2: stat0=0x50 err=0x01 lsb=0x00 msb=0x00
ata2: stat1=0x00 err=0x01 lsb=0x00 msb=0x00
ata2: reset tp2 stat0=50 stat1=00 devices=0x1<ATA_MASTER>
ad0: setting PIO4 on CMD 646 chip
ad0: setting WDMA2 on CMD 646 chip
ata2: reinit done ..
ad0: FAILURE - READ_DMA timed out LBA=376800
g_vfs_done():ad0a[READ(offset=192921600, length=16384)]error = 5
ls: firmware: Input/output error
ls: kernel.generic: Input/output error
ls: zfs: Input/output error
boot1           kernel/         loader.4th      loader.rc
defaults/       kernel.5.4/     loader.conf     modules/
device.hints    loader*         loader.help     support.4th
Fixit# mount
/dev/md0 on / (ufs, local)
devfs on /dev (devfs, local)
/dev/acd0 on /dist (cd9660, local, read-only)
/dev/ad0a on /mnt (ufs, local)
/dev/ad0d on /mnt/usr/local (ufs, local, soft-updates)
Fixit# 

I'm not sure why `zfs' reports an i/o error.
Comment 3 Marius Strobl freebsd_committer freebsd_triage 2008-03-17 20:59:42 UTC
Responsible Changed
From-To: freebsd-sparc64->sos


Assign to sos@; appears to be a problem with ata(4).
Comment 4 jpd 2008-09-21 21:25:04 UTC
On Thu, Mar 13, 2008 at 01:13:39 +0100, jpd@dsb.tudelft.nl wrote:
> I'm not sure why `zfs' reports an i/o error.

I plead the lateness of the hour. Anyway. Some updates.


I've updated the box from OBP 3.19 to 3.31, no change on booting from
the 7.0 CDROM used before: I'm still getting interrupt storms.

Booting over the network from a r/o nfs mounted 7.1-PRERELEASE-200809
image did away with the interrupt storms but still had both devices on
the ATA subsystem timeout on READ_BIG. Turning off dma for both gave:

ad0: 194481MB <Maxtor 6Y200P0 YAR41VW0> at ata2-master PIO4
acd0: DVDR <HL-DT-STDVD-ROM GDR8163B/0L14> at ata3-master PIO4
acd0: FAILURE - READ_BIG ILLEGAL REQUEST asc=0x64 ascq=0x00 
GEOM_LABEL: Label for provider acd0 is iso9660/FreeBSD_Install.
acd0: FAILURE - READ_BIG ILLEGAL REQUEST asc=0x64 ascq=0x00 

and when feeding ufs:ad0a to boot -a for root:

Loading configuration files.
ad0: FAILURE - READ_MUL status=59<READY,DSC,DRQ,ERROR> error=40<UNCORRECTABLE> LBA=376672
g_vfs_done():ad0a[READ(offset=192856064, length=16384)]error = 5
ad0: FAILURE - READ_MUL status=59<READY,DSC,DRQ,ERROR> error=40<UNCORRECTABLE> LBA=376672
g_vfs_done():ad0a[READ(offset=192856064, length=16384)]error = 5
ad0: FAILURE - READ_MUL status=59<READY,DSC,DRQ,ERROR> error=40<UNCORRECTABLE> LBA=376672
g_vfs_done():ad0a[READ(offset=192856064, length=16384)]error = 5
ad0: FAILURE - READ_MUL status=59<READY,DSC,DRQ,ERROR> error=40<UNCORRECTABLE> LBA=376672
g_vfs_done():ad0a[READ(offset=192856064, length=16384)]error = 5


With dma enabled:

ad0: 194481MB <Maxtor 6Y200P0 YAR41VW0> at ata2-master WDMA2
acd0: DVDR <HL-DT-STDVD-ROM GDR8163B/0L14> at ata3-master WDMA2
acd0: TIMEOUT - READ_BIG retrying (1 retry left)
acd0: TIMEOUT - READ_BIG retrying (0 retries left)
acd0: FAILURE - READ_BIG timed out
GEOM_LABEL: Label for provider acd0 is iso9660/FreeBSD_Install.
acd0: TIMEOUT - READ_BIG retrying (1 retry left)
acd0: TIMEOUT - READ_BIG retrying (0 retries left)
acd0: FAILURE - READ_BIG timed out

And it does much the same for ad0 when trying to access that. So, except
for the interrupt storm message going away, the ata system still isn't
usable for normal operation on this ultra5.


-- 
  j p d (at) d s b (dot) t u d e l f t (dot) n l .
Comment 5 Mark Linimon freebsd_committer freebsd_triage 2009-05-12 05:49:13 UTC
Responsible Changed
From-To: sos->freebsd-bugs

sos@ is not actively working on ATA-related PRs.
Comment 6 dfilter service freebsd_committer freebsd_triage 2009-12-05 13:41:05 UTC
Author: mav
Date: Sat Dec  5 13:40:51 2009
New Revision: 200121
URL: http://svn.freebsd.org/changeset/base/200121

Log:
  Do not ignore device interrupt if bus mastering is still active. It is
  normal in case of media read error and some ATAPI cases, when transfer size
  is unknown beforehand. PCI ATA BM specification tells that in case of such
  underrun driver should just manually stop DMA engine. DMA engine should
  same time guarantie that all bus mastering transfers completed at the moment
  of driver reads interrupt flag asserted.
  This change should fix interrupt storms and command timeouts in many cases.
  
  PR:		kern/103602, sparc64/121539, kern/133122, kern/139654

Modified:
  head/sys/dev/ata/ata-pci.c

Modified: head/sys/dev/ata/ata-pci.c
==============================================================================
--- head/sys/dev/ata/ata-pci.c	Sat Dec  5 13:12:04 2009	(r200120)
+++ head/sys/dev/ata/ata-pci.c	Sat Dec  5 13:40:51 2009	(r200121)
@@ -462,8 +462,7 @@ ata_pci_status(device_t dev)
 	 (ch->dma.flags & ATA_DMA_ACTIVE))) {
 	int bmstat = ATA_IDX_INB(ch, ATA_BMSTAT_PORT) & ATA_BMSTAT_MASK;
 
-	if ((bmstat & (ATA_BMSTAT_ACTIVE | ATA_BMSTAT_INTERRUPT)) !=
-	    ATA_BMSTAT_INTERRUPT)
+	if ((bmstat & ATA_BMSTAT_INTERRUPT) == 0)
 	    return 0;
 	ATA_IDX_OUTB(ch, ATA_BMSTAT_PORT, bmstat & ~ATA_BMSTAT_ERROR);
 	DELAY(1);
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscribe@freebsd.org"
Comment 7 dfilter service freebsd_committer freebsd_triage 2009-12-09 17:20:22 UTC
Author: mav
Date: Wed Dec  9 17:20:10 2009
New Revision: 200297
URL: http://svn.freebsd.org/changeset/base/200297

Log:
  MFC r200121:
  Do not ignore device interrupt if bus mastering is still active. It is
  normal in case of media read error and some ATAPI cases, when transfer size
  is unknown beforehand. PCI ATA BM specification tells that in case of such
  underrun driver should just manually stop DMA engine. DMA engine should
  same time guarantie that all bus mastering transfers completed at the moment
  of driver reads interrupt flag asserted.
  This change fixes interrupt storms and command timeouts in many cases.
  
  PR:             kern/103602, sparc64/121539, kern/133122, kern/139654

Modified:
  stable/8/sys/dev/ata/ata-pci.c
Directory Properties:
  stable/8/sys/   (props changed)
  stable/8/sys/amd64/include/xen/   (props changed)
  stable/8/sys/cddl/contrib/opensolaris/   (props changed)
  stable/8/sys/contrib/dev/acpica/   (props changed)
  stable/8/sys/contrib/pf/   (props changed)
  stable/8/sys/dev/xen/xenpci/   (props changed)

Modified: stable/8/sys/dev/ata/ata-pci.c
==============================================================================
--- stable/8/sys/dev/ata/ata-pci.c	Wed Dec  9 17:11:09 2009	(r200296)
+++ stable/8/sys/dev/ata/ata-pci.c	Wed Dec  9 17:20:10 2009	(r200297)
@@ -462,8 +462,7 @@ ata_pci_status(device_t dev)
 	 (ch->dma.flags & ATA_DMA_ACTIVE))) {
 	int bmstat = ATA_IDX_INB(ch, ATA_BMSTAT_PORT) & ATA_BMSTAT_MASK;
 
-	if ((bmstat & (ATA_BMSTAT_ACTIVE | ATA_BMSTAT_INTERRUPT)) !=
-	    ATA_BMSTAT_INTERRUPT)
+	if ((bmstat & ATA_BMSTAT_INTERRUPT) == 0)
 	    return 0;
 	ATA_IDX_OUTB(ch, ATA_BMSTAT_PORT, bmstat & ~ATA_BMSTAT_ERROR);
 	DELAY(1);
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscribe@freebsd.org"
Comment 8 dfilter service freebsd_committer freebsd_triage 2009-12-09 17:23:18 UTC
Author: mav
Date: Wed Dec  9 17:23:08 2009
New Revision: 200298
URL: http://svn.freebsd.org/changeset/base/200298

Log:
  MFC r200121:
  Do not ignore device interrupt if bus mastering is still active. It is
  normal in case of media read error and some ATAPI cases, when transfer size
  is unknown beforehand. PCI ATA BM specification tells that in case of such
  underrun driver should just manually stop DMA engine. DMA engine should
  same time guarantie that all bus mastering transfers completed at the moment
  when driver reads interrupt flag asserted.
  This change fixes interrupt storms and command timeouts in many cases.
  
  PR:             kern/103602, sparc64/121539, kern/133122, kern/139654

Modified:
  stable/7/sys/dev/ata/ata-pci.c
Directory Properties:
  stable/7/sys/   (props changed)
  stable/7/sys/contrib/pf/   (props changed)

Modified: stable/7/sys/dev/ata/ata-pci.c
==============================================================================
--- stable/7/sys/dev/ata/ata-pci.c	Wed Dec  9 17:20:10 2009	(r200297)
+++ stable/7/sys/dev/ata/ata-pci.c	Wed Dec  9 17:23:08 2009	(r200298)
@@ -445,8 +445,7 @@ ata_pci_status(device_t dev)
 		    (ch->dma->flags & ATA_DMA_ACTIVE))) {
 	int bmstat = ATA_IDX_INB(ch, ATA_BMSTAT_PORT) & ATA_BMSTAT_MASK;
 
-	if ((bmstat & (ATA_BMSTAT_ACTIVE | ATA_BMSTAT_INTERRUPT)) !=
-	    ATA_BMSTAT_INTERRUPT)
+	if ((bmstat & ATA_BMSTAT_INTERRUPT) == 0)
 	    return 0;
 	ATA_IDX_OUTB(ch, ATA_BMSTAT_PORT, bmstat & ~ATA_BMSTAT_ERROR);
 	DELAY(1);
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscribe@freebsd.org"
Comment 9 Alexander Motin freebsd_committer freebsd_triage 2009-12-09 17:24:26 UTC
State Changed
From-To: open->closed

tch merged to 7/8-STABLE.