From owner-freebsd-alpha Fri May 10 12:41:42 2002 Delivered-To: freebsd-alpha@freebsd.org Received: from cs.rice.edu (cs.rice.edu [128.42.1.30]) by hub.freebsd.org (Postfix) with ESMTP id 7AA8337B406 for ; Fri, 10 May 2002 12:41:34 -0700 (PDT) Received: from localhost (localhost [127.0.0.1]) by cs.rice.edu (Postfix) with ESMTP id C98124A9F7; Fri, 10 May 2002 14:41:33 -0500 (CDT) Received: by cs.rice.edu (Postfix, from userid 19572) id 4DB4C4A9A8; Fri, 10 May 2002 14:41:33 -0500 (CDT) Date: Fri, 10 May 2002 14:41:33 -0500 From: Alan Cox To: alpha@freebsd.org Cc: gallatin@cs.duke.edu Subject: Re: gcc3 & alpha kernels Message-ID: <20020510194133.GA13871@cs.rice.edu> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.3.28i X-Virus-Scanned: by AMaViS snapshot-20010714 Sender: owner-freebsd-alpha@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.org > I do NOT know if this was the fault of gcc3, but it smells like it. > According to nm, this address is in _vm_object_allocate(). A few > other times, it locked with an address in what looked like mlock(). A few days ago Jeff Robertson had a problem in this neighborhood on alpha triggered by an atomic_cmpset_int() that I had introduced in _vm_object_allocate(). He resolved with the following change to src/sys/alpha/include/atomic.h: Revision 1.12 / (download) - annotate - [select for diffs], Wed May 8 05:19:56 2002 UTC (2 days, 13 hours ago) by jeff Branch: MAIN CVS Tags: HEAD Changes since 1.11: +2 -1 lines Diff to previous 1.11 (colored) zapnot the signed bits in atomic_cmpset_32. Previously this did not work with negative values because the original value was sign extended but the compared value was not. If I'm not mistaken, prior to this change, he locked up in _vm_object_allocate() much as Andrew described. Alan To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-alpha" in the body of the message