From owner-freebsd-ppc@freebsd.org Mon Feb 20 22:58:33 2017 Return-Path: Delivered-To: freebsd-ppc@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id D50EACE6D55 for ; Mon, 20 Feb 2017 22:58:33 +0000 (UTC) (envelope-from markmi@dsl-only.net) Received: from asp.reflexion.net (outbound-mail-210-74.reflexion.net [208.70.210.74]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 833D62B5 for ; Mon, 20 Feb 2017 22:58:32 +0000 (UTC) (envelope-from markmi@dsl-only.net) Received: (qmail 14672 invoked from network); 20 Feb 2017 22:58:26 -0000 Received: from unknown (HELO rtc-sm-01.app.dca.reflexion.local) (10.81.150.1) by 0 (rfx-qmail) with SMTP; 20 Feb 2017 22:58:26 -0000 Received: by rtc-sm-01.app.dca.reflexion.local (Reflexion email security v8.30.0) with SMTP; Mon, 20 Feb 2017 17:58:26 -0500 (EST) Received: (qmail 5815 invoked from network); 20 Feb 2017 22:58:26 -0000 Received: from unknown (HELO iron2.pdx.net) (69.64.224.71) by 0 (rfx-qmail) with (AES256-SHA encrypted) SMTP; 20 Feb 2017 22:58:26 -0000 Received: from [192.168.1.111] (c-67-170-167-181.hsd1.or.comcast.net [67.170.167.181]) by iron2.pdx.net (Postfix) with ESMTPSA id A8D59EC903F; Mon, 20 Feb 2017 14:58:25 -0800 (PST) Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 (Mac OS X Mail 10.2 \(3259\)) Subject: Re: svn commit: r313268 - head/sys/kern [through -r313271 for atomic_fcmpset use and later: fails on PowerMac G5 "Quad Core"; -r313266 works] From: Mark Millard In-Reply-To: <20170220191044.GA8526@dft-labs.eu> Date: Mon, 20 Feb 2017 14:58:24 -0800 Cc: mjg@freebsd.org, Justin Hibbits , svn-src-head@freebsd.org, FreeBSD PowerPC ML , FreeBSD Current , Nathan Whitehorn Content-Transfer-Encoding: 7bit Message-Id: <83428304-87BE-413C-BAB9-8FF218E7661C@dsl-only.net> References: <2FD12B8F-2255-470A-98D4-2DCE9C7495F5@dsl-only.net> <20170220191044.GA8526@dft-labs.eu> To: Mateusz Guzik X-Mailer: Apple Mail (2.3259) X-BeenThere: freebsd-ppc@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Porting FreeBSD to the PowerPC List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 20 Feb 2017 22:58:33 -0000 On 2017-Feb-20, at 11:10 AM, Mateusz Guzik wrote: > On Sat, Feb 18, 2017 at 04:18:05AM -0800, Mark Millard wrote: >> [Note: I experiment with clang based powerpc64 builds, >> reporting problems that I find. Justin is familiar >> with this, as is Nathan.] >> >> I tried to update the PowerMac G5 (a so-called "Quad Core") >> that I have access to from head -r312761 to -r313864 and >> ended up with random panics and hang ups in fairly short >> order after booting. >> >> Some approximate bisecting for the kernel lead to: >> (sometimes getting part way into a buildkernel attempt >> for a different version before a failure happens) >> >> -r313266: works (just before use of atomic_fcmpset) >> vs. >> -r313271: fails (last of the "use atomic_fcmpset" check-ins) >> >> (I did not try -r313268 through -r313270 as the use was >> gradually added.) >> >> So I'm currently running a -r313864 world with a -r313266 >> kernel. >> >> No kernel that I tried that was from before -r313266 had the >> problems. >> >> Any kernel that I tried that was from after -r313271 had the >> problems. >> >> Of course I did not try them all in other direction. :) >> > > I found that spin mutexes were not properly handling this, fixed in > r313996. > > Locally I added a if (cpu_tick() % 2) return (0); snipped to amd64 > fcmpset to simulate failures. Everything works, while it would easily > fail without the patch. > > That said, I hope this concludes the 'missing check for not-reread value > of failed fcmpset' saga. > > -- > Mateusz Guzik I tried to update from -r313864 to -r313999 in my amd64 context (a VirtualBox machine under macOS) but it now crashes late in the boot sequence (after it processes a dump if I make one but before I can log in). This update was via my usual explicit svnlite update; buildworld buildkernel; etc. production style build of world and kernel, including use of MALLOC_PRODUCTION. The window shows: _vm_map_lock+0xf vm_map_wire+0x32 rtROMemObjNativeLockInMap+0x8c rtROMemObjNativeLockUser+0x51 RTR0MemObjLockUserTag+0x231 vbglR0HGCMInternalPreprocessCall+0x65d vbglR0HGCMInternalCall+0x17c vgdrvIoCtl_HGCMCall+0x43f VGDrvCommonIoCtl+0x261 vgdrvFreeBSDIOCtl+0x2cd devfs_ioctl+0xae VOP_IOCTL_APV+0x88 vn_ioctl+0x161 devfs_ioctl_f+0x1f kern_ioctl+0x280 sys_ioctl+0x13f amd64_syscall+0x397 Xfast_syscall+0xfb === Mark Millard markmi at dsl-only.net