From owner-freebsd-smp@FreeBSD.ORG Fri Jan 14 19:41:26 2005 Return-Path: Delivered-To: freebsd-smp@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id C735C16A4CE for ; Fri, 14 Jan 2005 19:41:26 +0000 (GMT) Received: from mail14.speakeasy.net (mail22.sea5.speakeasy.net [69.17.117.24]) by mx1.FreeBSD.org (Postfix) with ESMTP id 76C8A43D2D for ; Fri, 14 Jan 2005 19:41:26 +0000 (GMT) (envelope-from jhb@FreeBSD.org) Received: (qmail 11233 invoked from network); 14 Jan 2005 19:41:26 -0000 Received: from dsl027-160-063.atl1.dsl.speakeasy.net (HELO server.baldwin.cx) ([216.27.160.63]) (envelope-sender ) encrypted SMTP for ; 14 Jan 2005 19:41:25 -0000 Received: from [10.50.40.231] (gw1.twc.weather.com [216.133.140.1]) (authenticated bits=0) by server.baldwin.cx (8.12.11/8.12.11) with ESMTP id j0EJepMb042914; Fri, 14 Jan 2005 14:41:13 -0500 (EST) (envelope-from jhb@FreeBSD.org) From: John Baldwin To: freebsd-smp@FreeBSD.org Date: Fri, 14 Jan 2005 14:18:18 -0500 User-Agent: KMail/1.6.2 References: In-Reply-To: MIME-Version: 1.0 Content-Disposition: inline Content-Type: text/plain; charset="koi8-r" Content-Transfer-Encoding: 7bit Message-Id: <200501141418.18587.jhb@FreeBSD.org> X-Spam-Checker-Version: SpamAssassin 2.63 (2004-01-11) on server.baldwin.cx cc: Peter Trifonov cc: kris@obsecurity.org Subject: Re: Lost interrupts on SMP systems X-BeenThere: freebsd-smp@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: FreeBSD SMP implementation group List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 14 Jan 2005 19:41:27 -0000 On Friday 14 January 2005 01:17 pm, Peter Trifonov wrote: > Hello John, > > > > I have found two similar problem reports: > > > http://www.freebsd.org/cgi/query-pr.cgi?pr=i386/40274 > > > http://www.freebsd.org/cgi/query-pr.cgi?pr=i386/43852 > > > Some other bug reports also mention "device timeout", but > > > > they seem to > > > > > differ considerably from my case. > > > > Those two bug reports tend to focus on fxp(4) though and you > > have xl(4) cards. > > I had the same problem with fxp's. Initially I though that it was fxp > driver problem (because xl0 worked fine), > so I have replaced Intel NICs with 3COM ones, but nothing has changed. From > this I guess that the problem is not in the NIC drivers. Ok. > > I've gone ahead and committed the fix for the MPTable global > > entries btw. I don't think there is a routing or edge/level > > problem though because the devices do work until you do a > > ping flood. One thing we can try is that Linux has a > > IMPORTANT: I can do flood ping over either of them without any problems (at > least, if the system is booted with -p -v, I don't know why). > They break down ONLY if flood ping is SIMULTANEOUSLY performed over both > of them. More interrupt load that way, which would indicate maybe the bug Linux tries to work around except that your intpins are edge triggered. :( > > workaround for an undocumented errata in at least some older > > I/O APICs where a level triggered interrupt can accidentally > > be delivered as edge triggered and end up not being properly > > acknowledged. However, you don't have any level triggered > > interrupts, so I'm not sure that is applicable. > > Please let me know how can I help you with this problem. I've included a little test program below that you can run as root to do arbitrary port reads (inb). Please compile it and mail me the output of: inb 0x4d0 inb 0x4d1 Thanks. #include #include #include #include #include #include #include #include int main(int ac, char **av) { char repr[5]; char *cp; int fd, port, value; if (ac != 2) errx(1, "A single argument is required."); port = strtoul(av[1], &cp, 0); if (*cp != '\0' || port < 0 || port > 65535) errx(1, "Invalid port number %s.", av[1]); fd = open("/dev/io", O_RDONLY); if (fd < 0) err(1, "Failed to open /dev/io"); value = inb(port); close(fd); vis(repr, value, VIS_NL | VIS_NOSLASH, 0); printf("inb(%s) = 0x%x = %dd = '%s'\n", av[1], value, value, repr); return (0); } -- John Baldwin <>< http://www.FreeBSD.org/~jhb/ "Power Users Use the Power to Serve" = http://www.FreeBSD.org