From owner-svn-src-head@freebsd.org Mon Oct 9 05:47:39 2017 Return-Path: Delivered-To: svn-src-head@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 AF58EE2616B; Mon, 9 Oct 2017 05:47:39 +0000 (UTC) (envelope-from truckman@FreeBSD.org) Received: from gw.catspoiler.org (unknown [IPv6:2602:304:b010:ef20::f2]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "gw.catspoiler.org", Issuer "gw.catspoiler.org" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id E0B1F7EB1A; Mon, 9 Oct 2017 05:47:38 +0000 (UTC) (envelope-from truckman@FreeBSD.org) Received: from FreeBSD.org (mousie.catspoiler.org [192.168.101.2]) by gw.catspoiler.org (8.15.2/8.15.2) with ESMTP id v995lRso069094; Sun, 8 Oct 2017 22:47:31 -0700 (PDT) (envelope-from truckman@FreeBSD.org) Message-Id: <201710090547.v995lRso069094@gw.catspoiler.org> Date: Sun, 8 Oct 2017 22:47:27 -0700 (PDT) From: Don Lewis Subject: Re: svn commit: r324313 - head/sys/amd64/amd64 To: kostikbel@gmail.com cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org In-Reply-To: <20171008083307.GG95911@kib.kiev.ua> MIME-Version: 1.0 Content-Type: TEXT/plain; charset=us-ascii X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 09 Oct 2017 05:47:40 -0000 On 8 Oct, Konstantin Belousov wrote: > On Sat, Oct 07, 2017 at 01:54:05PM -0700, Don Lewis wrote: >> On 7 Oct, Konstantin Belousov wrote: >> > On Sat, Oct 07, 2017 at 01:04:09PM -0700, Don Lewis wrote: >> >> On 5 Oct, Konstantin Belousov wrote: >> >> > Author: kib >> >> > Date: Thu Oct 5 12:50:03 2017 >> >> > New Revision: 324313 >> >> > URL: https://svnweb.freebsd.org/changeset/base/324313 >> >> > >> >> > Log: >> >> > Avoid a race betweem freeing LDT and context switches. >> >> > >> >> > cpu_switch.S uses curproc->p_md.md_ldt value as the flag indicating >> >> > presence of the process LDT. The flag is checked and then ldt segment >> >> > descriptor is copied into the CPU' GDT slot. >> >> > >> >> > Disallow context switches around clearing of the curproc LDT state by >> >> > performing the cleanup in critical section. Ensure that the md_ldt >> >> > flag is cleared before md_ldt_sd descriptor content is destroyed by >> >> > inserting fence between the operations. >> >> > >> >> > We depend on the x86 memory model strong ordering guarantees, in >> >> > particular, that cpu_switch.S observes the writes to md_ldt and >> >> > md_ldt_sd in the expected order. >> >> >> >> I don't know which of this series of commits is responsible, but I think >> >> that it fixed the build of lang/ghc on Ryzen. >> >> >> >> https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=221029#c102 >> > >> > Does ghc use LDT on amd64 ? This sounds unbelievable. >> >> I have no idea, but ghc would reliably fail to build on my Ryzen machine >> up through r323398, and at r324367 it seems to reliably build. > Could you try to bisect ? > > I reviewed all kernel changes and do not see anything which could be > marked as possible fix for whatever kernel issue causing usermode > fault. I need to bisect at least userland for another reason. I've recently been seeing sporadic build runaways when using poudriere to build ports. This has happened both on my replacement Ryzen CPU and also on my AMD FX-8320E, more frequently on the Ryzen. My reason for suspecting a userland problem is that I've only seen this when building ports in a 12.0-CURRENT jail, and not 10.4 or 11.1. I first started seeing this a couple weeks ago. This will be slow going because even on the Ryzen, my full package set builds take about nine hours and I don't see the failure every time. I'll also see if ghc is affected by the userland version.