From owner-cvs-src@FreeBSD.ORG Fri Oct 1 04:24:30 2004 Return-Path: Delivered-To: cvs-src@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 72A2E16A4CE; Fri, 1 Oct 2004 04:24:30 +0000 (GMT) Received: from postal3.es.net (postal3.es.net [198.128.3.207]) by mx1.FreeBSD.org (Postfix) with ESMTP id 505A443D48; Fri, 1 Oct 2004 04:24:30 +0000 (GMT) (envelope-from oberman@es.net) Received: from ptavv.es.net ([198.128.4.29]) by postal3.es.net (Postal Node 3) with ESMTP (SSL) id IBA74465; Thu, 30 Sep 2004 21:24:30 -0700 Received: from ptavv (localhost [127.0.0.1]) by ptavv.es.net (Tachyon Server) with ESMTP id 9C7775D04; Thu, 30 Sep 2004 21:24:29 -0700 (PDT) To: S ren Schmidt In-reply-to: Your message of "Thu, 30 Sep 2004 21:29:19 -0000." <200409302129.i8ULTJnq059412@repoman.freebsd.org> Date: Thu, 30 Sep 2004 21:24:29 -0700 From: "Kevin Oberman" Message-Id: <20041001042429.9C7775D04@ptavv.es.net> cc: cvs-src@FreeBSD.org cc: src-committers@FreeBSD.org cc: cvs-all@FreeBSD.org Subject: Re: cvs commit: src/sys/dev/ata ata-all.c ata-all.h ata-chipset.c ata-disk.c ata-dma.c ata-lowlevel.c ata-pci.c ata-queue.c X-BeenThere: cvs-src@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: CVS commit messages for the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 01 Oct 2004 04:24:30 -0000 > From: Søren Schmidt > Date: Thu, 30 Sep 2004 21:29:19 +0000 (UTC) > Sender: owner-cvs-all@freebsd.org > > sos 2004-09-30 21:29:19 UTC > > FreeBSD src repository > > Modified files: (Branch: RELENG_5) > sys/dev/ata ata-all.c ata-all.h ata-chipset.c > ata-disk.c ata-dma.c ata-lowlevel.c > ata-pci.c ata-queue.c > Log: > MFC: > Remove the old ATA_*LOCK_CH macros that used atomic ops and use > mutexes instead. > This closes the last (known) race issues in ATA which should fix > the various hangs etc seen on heavy loaded systems. > > Change from using timeout functions to using callout functions in > the timeout code. This together with above closes the race that could > happen if timeout and device interrupt occured simultaniously. > > Also fix the possible recursion in ata_reinit() on very dodgy > devices that could take us down in the probe. > > Approved by: re@ (scottl) > > Revision Changes Path > 1.222.2.2 +117 -19 src/sys/dev/ata/ata-all.c > 1.81.2.2 +10 -19 src/sys/dev/ata/ata-all.h > 1.81.2.2 +6 -4 src/sys/dev/ata/ata-chipset.c > 1.175.2.2 +6 -6 src/sys/dev/ata/ata-disk.c > 1.129.2.2 +4 -4 src/sys/dev/ata/ata-dma.c > 1.44.2.2 +26 -69 src/sys/dev/ata/ata-lowlevel.c > 1.87.2.2 +2 -2 src/sys/dev/ata/ata-pci.c > 1.32.2.2 +111 -114 src/sys/dev/ata/ata-queue.c Thanks, Søren. I can confirm that I no longer see the problem on my ASUS P5A. -- R. Kevin Oberman, Network Engineer Energy Sciences Network (ESnet) Ernest O. Lawrence Berkeley National Laboratory (Berkeley Lab) E-mail: oberman@es.net Phone: +1 510 486-8634