From owner-freebsd-stable@FreeBSD.ORG Tue May 29 02:49:55 2012 Return-Path: Delivered-To: freebsd-stable@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id B9A2F106566C for ; Tue, 29 May 2012 02:49:55 +0000 (UTC) (envelope-from AVShutko@mail.khstu.ru) Received: from ns.khstu.ru (ns1.khstu.ru [85.142.70.3]) by mx1.freebsd.org (Postfix) with ESMTP id 0FEC48FC0A for ; Tue, 29 May 2012 02:49:54 +0000 (UTC) Received: from mail.khstu.ru (mail2.khstu.ru [85.142.70.15]) by ns.khstu.ru (8.13.8/8.13.8) with ESMTP id q4T2ngNb029311 for ; Tue, 29 May 2012 13:49:42 +1100 (VLAT) (envelope-from AVShutko@mail.khstu.ru) Received: from regress.domain.khstu.ru ([10.10.10.8]) by mail.khstu.ru with SMTP id 2012052913494254-3281 ; Tue, 29 May 2012 13:49:42 +1100 Date: Tue, 29 May 2012 13:55:02 +1100 From: "=?KOI8-R?Q?=E1=CC=C5=CB=D3=C1=CE=C4=D2_=F7._=FB=D5=D4=CB=CF?=" To: FreeBSD stable Message-Id: <20120529135502.febc8178.AVShutko@mail.khstu.ru> X-Mailer: Sylpheed 3.1.3 (GTK+ 2.10.14; i686-pc-mingw32) Mime-Version: 1.0 X-MIMETrack: Itemize by SMTP Server on mail.khstu.ru/Mail/Khstu/RU at 29.05.2012 13:49:42, Serialize by Router on mail.khstu.ru/Mail/Khstu/RU at 29.05.2012 13:49:42 Content-Type: text/plain; charset=KOI8-R Content-Transfer-Encoding: quoted-printable X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-3.0 (ns.khstu.ru [0.0.0.0]); Tue, 29 May 2012 13:49:42 +1100 (VLAT) X-Virus-Scanned: by amavisd-new Subject: FreeBSD 9.0-RELEASE amd64 strange interrupts behavior X-BeenThere: freebsd-stable@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Production branch of FreeBSD source code List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 29 May 2012 02:49:55 -0000 Hi, All. I can't get working Adaptec 6805 driver on 9.0 for unknown reason. I got Supermicro X8DTH-iF based server with two Xeon 5645 (6 cores x 2 thre= ads),=20 24Gb RAM, Adaptec sas 6805 raid. I downloaded 6805 driver code for FreeBSD = 8.3=20 from adaptec site and compiled it under fresh-installed FreeBSD 9.0-RELEASE= (amd64),=20 kldloaded it and got hung and timeouts: aacu0: mem 0xf8c00000-0xf8ffffff,0xf8bbc000-0xf8b= bc7ff, 0xf8bbe000-0xf8bbe0ff irq 50 at device 0.0 on pci132 aacu0: Enable Raw I/O aacu0: Enable 64-bit array aacu0: New comm. interface type1 enabled ioapic2: routing intpin 2 (PCI IRQ 50) to lapic 0 vector 50 aacu0: Adaptec 6805, aac driver 2.4.2-18668 aacu0: Supported Options=3D141f1d7c aacd0: on aacu0 aacd0: 2860022MB (5857325056 sectors) GEOM: new disk aacd0 pci133: driver added pci134: driver added pci254: driver added pci255: driver added aacp0: on aacu0 aacp1: on aacu0 aacp2: on aacu0 pci0: driver added aacu0: COMMAND 0xffffff8001fd08e8 TIMEOUT AFTER 40 SECONDS aacu0: COMMAND 0xffffff8001fd0ac8 TIMEOUT AFTER 40 SECONDS aacu0: COMMAND 0xffffff8001fd0ca8 TIMEOUT AFTER 40 SECONDS aacu0: COMMAND 0xffffff8001fd0e88 TIMEOUT AFTER 40 SECONDS aacu0: COMMAND 0xffffff8001fd1068 TIMEOUT AFTER 40 SECONDS aacu0: COMMAND 0xffffff8001fd1248 TIMEOUT AFTER 40 SECONDS aacu0: COMMAND 0xffffff8001fd1428 TIMEOUT AFTER 40 SECONDS aacu0: COMMAND 0xffffff8001fd1608 TIMEOUT AFTER 40 SECONDS aacu0: COMMAND 0xffffff8001fd17e8 TIMEOUT AFTER 40 SECONDS ..... Then I installed 8.3, compiled driver and it started without any problem.=20 After that I cvsup-ed FreeBSD10 code (head, 28.05.2012), compiled it,=20 booted new kernel (set module=5Fpath/boot clang), compiled driver and it=20 kldloaded again without any error (raid6 2.8Tb disk read-write speed good, = no errors). Here is kernel 10 aacu driver dmesg lines: aacu0: mem 0xf8c00000-0xf8ffffff, 0xf8bbc000-0xf8bbc7ff,0xf8bbe000-0xf8bbe0ff irq 50 at device 0.0 on pci132 aacu0: Enable Raw I/O aacu0: Enable 64-bit array aacu0: New comm. interface type1 enabled ioapic2: routing intpin 2 (PCI IRQ 50) to lapic 33 vector 49 aacu0: Adaptec 6805, aac driver 2.4.2-18668 aacu0: Supported Options=3D141f1d7c aacd0 on aacu0 aacd0: 2860022MB (5857325056 sectors) GEOM: new disk aacd0 pci133: driver added pci134: driver added ...... The problem exists only under 9.0-RELEASE. Interrupts doesn't work for this= =20 device at all. Driver makes device initialization using sync requests and=20 then hungs on first async io waiting interrupt. Driver interrupts install code looks good: sc->aac=5Firq=5Frid =3D 0; if ((sc->aac=5Firq =3D bus=5Falloc=5Fresource=5Fany(sc->aac=5Fdev, SYS=5FRE= S=5FIRQ, &sc->aac=5Firq=5Frid, RF=5FSHAREABLE | RF=5FACTIVE)) = =3D=3D NULL) { device=5Fprintf(sc->aac=5Fdev, "can't allocate interrupt\n"= ); return (EINVAL); } if (sc->flags & AAC=5FFLAGS=5FNEW=5FCOMM=5FTYPE1) { if (bus=5Fsetup=5Fintr(sc->aac=5Fdev, sc->aac=5Firq, INTR=5FMPSAFE|INTR=5FTYPE=5FBIO, NULL,. aac=5Fnew=5Fintr=5Ftype1, sc, &sc->aac=5Fintr)) { device=5Fprintf(sc->aac=5Fdev, "can't set up interrupt\n"); return (EINVAL); } I added "panic" call at the beginning of interrupt handler=20 "aac=5Fnew=5Fintr=5Ftype1()" and found it never called during driver=20 initialization on 9.0. Is this 9.0-RELEASE bug or future ? --=20 =E1=CC=C5=CB=D3=C1=CE=C4=D2 =F7. =FB=D5=D4=CB=CF =