From owner-freebsd-amd64@freebsd.org Fri Mar 24 23:15:23 2017 Return-Path: Delivered-To: freebsd-amd64@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 099E7D1C021 for ; Fri, 24 Mar 2017 23:15:23 +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 D38DD1A39 for ; Fri, 24 Mar 2017 23:15:22 +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 v2ONFF0J091423 for ; Fri, 24 Mar 2017 16:15:19 -0700 (PDT) (envelope-from truckman@FreeBSD.org) Message-Id: <201703242315.v2ONFF0J091423@gw.catspoiler.org> Date: Fri, 24 Mar 2017 16:15:15 -0700 (PDT) From: Don Lewis Subject: Re: FreeBSD on Ryzen To: freebsd-amd64@FreeBSD.org In-Reply-To: <201703222030.v2MKUJJs026400@gw.catspoiler.org> MIME-Version: 1.0 Content-Type: TEXT/plain; charset=us-ascii X-BeenThere: freebsd-amd64@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Porting FreeBSD to the AMD64 platform List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 24 Mar 2017 23:15:23 -0000 On 22 Mar, Don Lewis wrote: > I put together a Ryzen 1700X machine over the weekend and installed the > 12.0-CURRENT r315413 snapshot on it a couple of days ago. The RAM is > DDR4 2400. > > First impression is that it's pretty zippy. Compared to my previous > fastest machine: > CPU: AMD FX-8320E Eight-Core Processor (3210.84-MHz K8-class CPU) > make -j8 buildworld using tmpfs is a bit more than 2x faster. Since the > Ryzen has SMT, it's eight cores look like 16 CPUs to FreeBSD, I get > almost a 2.6x speedup with -j16 as compared to my old machine. The reason that I put this machine together is for package building with poudriere. Unfortunately I don't see quite as much performance improvement there, possibly because I set ALLOW_MAKE_JOBS=yes, which can result in a *lot* of running processes at times and probably thrashes the caches pretty badly: last pid: 78855; load averages: 120.05, 106.95, 86.49 up 0+14:09:43 15:12:59 413 processes: 123 running, 281 sleeping, 1 stopped, 8 zombie CPU: 92.3% user, 0.0% nice, 7.7% system, 0.0% interrupt, 0.0% idle Mem: 5873M Active, 3662M Inact, 36G Laundry, 13G Wired, 4316M Free ARC: 9564M Total, 2577M MFU, 6739M MRU, 14M Anon, 162M Header, 72M Other Swap: 80G Total, 5336M Used, 75G Free, 6% Inuse, 132K In The high laundry and swap usage is due to cold data in tmpfs. For much of the run tmpfs helps avoid a lot of unnecessary I/O. It looks like I get about a 2X improvement vs. my FX-8320E, but I don't have an exact number because I'm seeing some consistent build breakage in a few of the ports that I build. I get SIGSEGV failures in lang/go and lang/ghc. I also get a compile failure in math/openblas due to what looks like an undefined preprocessor symbol. Continuing to investigate ... It would be nice if poudriere could balance threads between different build jails like make can do with parallel submakes ...